DelphiÄ£Äâ¼üÅÌ¿ØÖÆCaps Lock(keybd_event)
ÒÔCaps Lock¼ü¾ÙÀý£¬ÆäËü(VK_NUMLOCK),Ààͬ£º
ÅжÏ״̬£º
·½·¨1
Level: integer;
Level := GetKeyState(VK_CAPITAL);
if Level = 0 then
//ûÁÁ
else
//ÁÁÁË(1)
·½·¨2
KeyState : TKeyBoardState;
GetKeyboardState(KeyState);
if KeyState[VK_CAPITAL] = 0 then
//ûÁÁ
else
//ÁÁÁË(1)
ÉèÖÃ״̬£º
keybd_event(VK_CAPITAL, MapVirtualkey(VK_CAPITAL,0), 0, 0); //Caps Lock¼ü°´ÏÂ
//ÈçÐèͬʱ°´ÏÂÁ½¼ü£¬ÔÚÖмä¼ÓÉϼ´¿É
keybd_event(VK_CAPITAL, MapVirtualkey(VK_CAPITAL,0), KEYEVENTF_KEYUP, 0); //Caps Lock¼üËÉ¿ª
--------------------------------------------------------------------------------
±¸×¢£º
keybd_event
¡¡¡¡º¯Êý¹¦ÄÜ£º¸Ãº¯ÊýºÏ³ÉÒ»´Î»÷¼üʼþ¡£ÏµÍ³¿ÉʹÓÃÕâÖֺϳɵĻ÷¼üʼþÀ´²úÉúWM_KEYUP»òWM_KEYDOWNÏûÏ¢£¬¼üÅÌÇý¶¯³ÌÐòµÄÖжϴ¦Àí³ÌÐòµ÷ÓÃkeybd_eventº¯Êý¡£ÔÚWindows NTÖиú¯Êý¼º±»Ê¹ÓÃSendInputÀ´Ìæ´úËü¡£
¡¡¡¡º¯ÊýÔÐÍ£»VOID keybd_event£¨BYTE bVk£¬BYTE bScan£¬DWORD dwFlags£¬DWORD dwExtralnfo£©£»
¡¡¡¡²ÎÊý£º
¡¡¡¡bVk£º¶¨ÒåÒ»¸öÐé¾ÝÄâ¼üÂë¡£¼üÂëÖµ±ØÐëÔÚ1¡«254Ö®¼ä¡£
¡¡¡¡bScan:¶¨Òå¸Ã¼üµÄÓ²¼þɨÃèÂë¡£
¡¡¡¡dwFlags:¶¨Ò庯Êý²Ù×÷µÄÃû¸ö·½ÃæµÄÒ»¸ö±ê־λ¼¯¡£Ó¦ÓóÌÐò¿ÉʹÓÃÈçÏÂһЩԤ¶¨Òå³£ÊýµÄ×éºÏÉèÖñê־λ¡£
¡¡¡¡KEYEVENTF_EXETENDEDKEY£ºÈôÖ¸¶¨¸ÃÖµ£¬ÔòɨÃèÂëǰһ¸öֵΪOXEO£¨224£©µÄǰ׺×Ö½Ú¡£KEYEVENTF_KEYUP£ºÈôÖ¸¶¨¸ÃÖµ£¬¸Ã¼ü½«±»ÊÍ·Å£»Èôδָ¶¨¸ÃÖµ£¬¸Ã¼ü½»±»½ÓÏ¡£dwExtralnfo£º¶¨ÒåÓë»÷¼üÏà¹ØµÄ¸½¼ÓµÄ32λֵ¡£
¡¡¡¡·µ»ØÖµ£º¸Ãº¯ÊýÎÞ·µ»ØÖµ¡£
¡¡¡¡±¸×¢£º¾¡¹Ükeybd_event´«µÝÒ»¸öÓëOEMÏà¹ØµÄÓ²¼þɨÃèÂë¸øÏµÍ³£¬µ«Ó¦ÓóÌÐò²»ÄÜÓôËɨÃèÂ롣ϵͳÔÚÄÚ²¿½«É¨ÃèÂëת»»³ÉÐéÄâ¼üÂ룬²¢ÇÒÔÚ´«Ë͸øÓ¦ÓóÌÐòǰÇå³ý¼üÂëµÄUP/downλ¡£Ó¦ÓóÌÐò¿ÉÒÔÃþÄâPRINTSCREEN¼üµÄ°´ÏÂÀ´»ñµÃÒ»¸öÆÁÄ»¿ìÕÕ£¬²¢°ÑËü´æ·Åµ½¼ôÇаåÖС£ÈôÒª×öµ½ÕâÒ»µã£¬ÔòÒª½«keybd_eventµÄbVk²ÎÊýÖÃΪVK_SNAPSHOT,bScan²ÎÊýÖÃΪ0£¨ÓÃÒÔ»ñµÃÈ
Ïà¹ØÎĵµ£º
Ãû³Æ ¡¡ ÀàÐÍ ¡¡¡¡¡¡ËµÃ÷
--------------------------------------------------------- ......
½áºÏDelphi
¿Í»§¶Ë×ÀÃæ¿ª·¢µÄÓÅÊÆºÍJavaµÄÎȽ¡Ç¿×³ÌØÐÔ£¬²ÉÓÃDelphi
Client + Java ServerµÄϵͳ¼Ü¹¹Ó¦¸ÃÊǺÜÓÐÊг¡µÄ£¬¾¹ýÒ»¶Îʱ¼äµÄʵ¼ÊÏîĿʵ¼ù£¬ÊµÏּܹ¹ÊÇÕâôʵÏֵ쬹©ÌÖÂÛ£º
1.ºǫ́ӦÓ÷þÎñ²ã¿É²ÉÓûùÓÚSpring+HibernateµÄÇáÁ¿¼¶J2EEʵÏÖ£¬²¢Ê¹ÓÃApache XML-RPC
Ìṩ¿Í»§¶Ëµ÷Óýӿڣ»
2.ǰ̨²ÉÓà Delphi
......
ÀàµÄʼþ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyEvent = procedure of object; //²»´ø²ÎÊýµÄ¹ý³Ì
TMyEventExt = procedure(AName: string) of object; //´ø²ÎÊýµÄ¹ý³Ì
TForm1 = class(TForm)
......
²éÕÒÁíÍâÒ»¸ö´°¿ÚµÄ¾ä±ú£º handle := FindWindow(nil,PChar('´°¿ÚµÄ±êÌâ'));//²éµ½´°Ìå¾ä±ú
²éÕÒ×Ó´°Ì壺childHandle := FindWindowEx(handle,0,'×Ó´°ÌåÀà','×Ó´°Ìå±êÌâ');
ÁíÍâÓиöö¾Ù×Ó´°ÌåµÄAPI£¬EnumChildWindows(Ö÷´´Ìå¾ä±ú,@»Øµ÷º¯Êý,Óû§²ÎÊý);
ÓÃÕâ¸öº¯ÊýÐèÒª×Ô¼ºÐ´Ò»¸ö»Øµ÷µÄº¯Êý£¬±ÈÈ磺
function EnumChil ......
1. ×Ö·û´®Á¬½ÓÖ±½ÓÓÃ+£¬ÓëJavaºÍPythonÖеÄÏàͬ
2. Ö´ÐÐÍⲿÃüÁîʹÓÃwinexec£¬ShellExecute
eg. ShellExecute(0, 'open', 'jre/bin/java', '-lang zh-CN', 'E:\myfolder', SW_SHOW);
3. ÅжÏÎļþ¡¢Îļþ¼ÐÊÇ·ñ´æÔÚ
FileExists('C:\Users\bill\somefile.txt')
......