À̸§:¾ÆÈåÈï
Á¦¸ñ:Áö´ÉÇü ±âº»Àá±Ý ÇÁ·Î±×·¥ ÀÔ´Ï´Ù.



¿¹Àü¿£ ÀåÄ¡ÄÓ¶§ Àá±ÝÀ» °É¾î³õ°í ¿È´Ï¾Æ¸¦ ÄÓ¶§¸¶´Ù Àá±ÝÀ» ÇØÁ¦ Çߴµ¥

¿È´Ï¾Æ´Â Àü¿ø ¹öÆ°ÀÌ À۾Ƽ­ ÁÖ¸Ó´Ï ¼Ó¿¡¼­ ÀÚµ¿À¸·Î ÄÑÁúÀÏÀÌ ¾ø´õ±º¿ä.



´Ù¸¸ ÀüÈ­¸¦ ¸ø¹Þ¾ÒÀ»¶§³ª ¹®ÀÚ°¡ ¿ÔÀ»¶§ ÀÚµ¿À¸·Î ÄÑÁö¸é Àá±ÝÀÌ ¾È°á·ÁÀÖÀ»°æ¿ì

ÁÖ¸Ó´Ï ¼Ó¿¡¼­ »¹ÁþÀ» ÇÏ´Â°É ¹æÁöÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.



±â´ÉÀº ¹®ÀÚ°¡ ¿À°Å³ª ÀüÈ­¸¦ ¸ø¹Þ¾ÒÀ» °æ¿ì¿¡¸¸ ±âº» Àá±ÝÀÌ °É¸®µµ·Ï ÇÏ´Â ÇÁ·Î±×·¥ ÀÔ´Ï´Ù.

¸çÄ¥ ½áºÃ´Âµ¥ ¿Àµ¿ÀÛÇϰųª ÇÏ´Â ÀÏÀº ¾ø³×¿ä.



´å³Ý ÇÁ·Î¿¥웤 3.5ÀÌ»ó ±ò·Á ÀÖ¾î¾ß ÇÏ°í À§ ÇÁ·Î±×·¥À» À©µµ¿ì Æú´õÀÇ ½ÃÀÛ¸Þ´º¿¡ ³ÖÀº´ÙÀ½ ÀçºÎÆà ÇÏ¸é µË´Ï´Ù.

»èÁ¦ ÇϽǶ© ±×³É ÇÁ·Î±×·¥¸¸ »èÁ¦ ÇÏ¸é µË´Ï´Ù.



½º¸¶Æ®Æù¿ë ÇÁ·Î±×·¥À» óÀ½ ¸¸µé¾îºÁ¼­ ¾î¼³ÇÅ´Ï´Ù.

¼Ò½ºÄڵ嵵 °°ÀÌ ¿Ã¸®´Ï °³·®Çϰųª Âü°íÇÏ½Ç ºÐµéÀº ¸¾´ë·Î ¾²¼Åµµ µË´Ï´Ù.

VisualStudio 2008ÀÇ C#À¸·Î ÀÛ¼ºµÇ¾ú½À´Ï´Ù.

´É·ÂÀÚ ºÐµé²²¼­ ºÎµð ÈǸ¢ÇÑ ÇÁ·Î±×·¥À¸·Î Àç ź»ý Çϵµ·Ï ¼öÁ¤ÇØ Áֽøé ÁÁ°Ú½À´Ï´Ù.



¿ø·¡ »ý°¢ Çß´ø ±â´ÉÀº Æù »ç¿ëÁß ¹®ÀÚ°¡ ¿À¸é Àá±×Áö ¾Êµµ·Ï ÇÏ·Á°í ÇßÀ¸³ª ÀåÄ¡°¡ ¾ðÁ¦ Wake upÇß´ÂÁö

¾Ë¼ö°¡ ¾ø¾î¼­ »ç¿ëÁß¿¡ ¹®ÀÚ°¡ ¿À¸é ±âº» Àá±Ý ±â´ÉÀÌ ÀÛµ¿ µË´Ï´Ù.

Ȥ½Ã ¾ðÁ¦ ÀåÄ¡°¡ ±ú¾î ³µ´ÂÁö ¾Æ´Â ¹æ¹ýÀÌ ÀÖ´Ù¸é ¾Ë·Á ÁÖ½Ã¸é °¨»ç ÇÏ°Ú½À´Ï´Ù.



Àâ¼³ÀÌ ±æ¾ú½À´Ï´Ù.

¾Æ·¡´Â ¼Ò½ºÄÚµåÀ̱¸¿©, ¼Ö·ç¼Ç ÆÄÀÏÀº ÆÄÀÏ÷ºÎ ÇÏ°Ú½À´Ï´Ù.

p.s ÆÄÀÏÀÌ Çϳª¸¸ ¿Ã¶ó°¡³×¿ä. ±×·¡¼­ ¼Ò½º ÆÄÀÏÀ» ¸ù¶¥ ¿Ã·È½À´Ï´Ù.
¼Ò½º Äڵ尡 ÇÊ¿ä ¾øÀ¸½Å ºÐµéÀº ¾ÐÃà Ǫ½Ã°í binRelease¾È¿¡ ÀÖ´Â exeÆÄÀÏ Çϳª¸¸ ¾²½Ã¸é µË´Ï´Ù.



using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Microsoft.WindowsMobile.Status;

namespace IntelegentLocker
{
    public partial class MainForm : Form
    {
        private const string REG_KEY_UNREAD_SMS_COUNT = @HKEY_LOCAL_MACHINESystemStateMessagesSMSUnread;
        private const string REG_VALUE_UNREAD_SMS_COUNT = Count;

        RegistryState unreadSmsCountWatcher = null;
        SystemState missedCallCountWatcher = null;

        private int unreadSmsCount = 0;
        private int missedCallCount = 0;

        public MainForm()
        {
            InitializeComponent();
        }

        private void InializeObject()
        {
            unreadSmsCountWatcher = new RegistryState(REG_KEY_UNREAD_SMS_COUNT, REG_VALUE_UNREAD_SMS_COUNT);
            missedCallCountWatcher = new SystemState(SystemProperty.PhoneMissedCalls, true);
        }

        private void SetEventHandler()
        {
            unreadSmsCountWatcher.Changed += new ChangeEventHandler(UnreadSmsCountChanged);
            missedCallCountWatcher.Changed += new ChangeEventHandler(MissedCallCountChanged);
        }

        private void RunLockApplication()
        {
            //Àá±ÝÅ° ´©¸§
            SystemCalls.SendKey(SystemCalls.VK_F22);
        }

        private void UnreadSmsCountChanged(object sender, ChangeEventArgs args)
        {
            int newUnreadSmscount = 0;
            newUnreadSmscount = (int)args.NewValue;

            if (newUnreadSmscount > unreadSmsCount)
                RunLockApplication();

            unreadSmsCount = newUnreadSmscount;
        }

        private void MissedCallCountChanged(object sender, ChangeEventArgs args)
        {
            int newMissedCallCount = 0;
            newMissedCallCount = SystemState.PhoneMissedCalls;

            if (newMissedCallCount > missedCallCount)
                RunLockApplication();

            missedCallCount = newMissedCallCount;
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
            InializeObject();
            SetEventHandler();

            timer1.Interval = 1000;
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            this.Hide();
        }
    }

    public class SystemCalls
    {
        //See more at http://msdn2.microsoft.com/en-us/library/ms927178.aspx
        public const byte VK_NONAME = 0xFC;  // Do nothing
        public const byte VK_ESC = 0x1B;  // Smartphone back-button
        public const byte VK_F4 = 0x73;  // Home Screen
        public const byte VK_APP6 = 0xC6;  // Lock the keys on Smartphone
        public const byte VK_F22 = 0x85;  // Lock the keys on PocketPC (VK_KEYLOCK)
        public const byte VK_F16 = 0x7F;  // Toggle Speakerphone
        public const byte VK_OFF = 0xDF;  // Power button

        /// <summary>
        /// Puts  key  into to global keyboard buffer
        /// </summary>
        /// <param name=key></param>
        public static void SendKey(byte key)
        {
            const int KEYEVENTF_KEYUP = 0x02;
            const int KEYEVENTF_KEYDOWN = 0x00;
            keybd_event(key, 0, KEYEVENTF_KEYDOWN, 0);
            keybd_event(key, 0, KEYEVENTF_KEYUP, 0);
        }

        [DllImport(coredll, SetLastError = true)]
        private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
    }
}






Ãßõ:£Í£ã£è£é£ð
¾Æ¸ð½º
Á¤º¸·Â:0
Ä£Àýµµ:
¿ÀǼҽº Á¤½ÅÀÌ ÈǸ¢ÇϽó׿ä. ´ëÇ¥ÀûÀÎ ½© ÇÁ·Î±×·¥ÀÎ S2U2µµ óÀ½¿£ ´Ü¼ø Àá±Ý ÇÁ·Î±×·¥À¸·Î ½ÃÀÛÇß´õ·¨ÁÒ. ^^  
(2009-11-13 19:17:45
)
Ahha
Á¤º¸·Â:0
Ä£Àýµµ:
µü Á¦°¡ ã´ø ÇÁ·Î±×·¥ÀÌ³×¿ä °¨»çÇÕ´Ï´Ù^^  
(2009-11-14 00:38:52
)
beeho
Á¤º¸·Â:0
Ä£Àýµµ:
Á¦ ºí·Î±×¿¡ ÆÛ°¥²²¿ä °¨»çÇÕ´Ï´Ù.  
(2009-11-22 00:50:01
)
ÀÌÈ÷
Á¤º¸·Â:0
Ä£Àýµµ:
Á¦ ºí·Î±×¿¡ ´ã¾Ò½À´Ï´Ù. ÁÁÀº±Û °¨»çÇÕ´Ï´Ù.^^  
(2009-11-29 07:21:59
)
Çǵå¹é
Á¤º¸·Â:0
Ä£Àýµµ:
Á¦ ºí·Î±×¿¡ ´ã¾Ò½À´Ï´Ù. ÁÁÀº±Û °¨»çÇÕ´Ï´Ù.^^  
(2009-12-15 19:23:39
)
¿ïÆ®¶ó ÇÚ¼¶
Á¤º¸·Â:0
Ä£Àýµµ:
Á¦ ºí·Î±×¿¡ ÆÛ°¥²²¿ä °¨»çÇÕ´Ï´Ù.  
(2009-12-21 17:59:50
)
¸ÓƲµµ»ç
Á¤º¸·Â:0
Ä£Àýµµ:
Á¦ ºí·Î±×¿¡ ´ã¾Ò½À´Ï´Ù. ÁÁÀº±Û °¨»çÇÕ´Ï´Ù.^^  
(2009-12-31 11:18:11
)
£Í£ã£è£é£ð
Á¤º¸·Â:0
Ä£Àýµµ:
°¨»çÇÕ´Ï´Ù... ã°íÀÖ´ø ÇÁ·Î±×·¥À̳׿ä...  
(2010-01-27 11:55:21
)
£Í£ã£è£é£ð
Á¤º¸·Â:0
Ä£Àýµµ:
Á¦ ºí·Î±×¿¡ ÆÛ°¥²²¿ä °¨»çÇÕ´Ï´Ù.  
(2010-01-27 11:55:29
)
ÁÖ»ç
Á¤º¸·Â:0
Ä£Àýµµ:
Á¦ ºí·Î±×¿¡ ÆÛ°¥²²¿ä °¨»çÇÕ´Ï´Ù.  
(2010-10-12 11:30:34
)

Name
Password
Comment
¡å