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£¨ÓÃÒÔ»ñµÃÈ
Ïà¹ØÎĵµ£º
ö¾ÙÀàÐÍ
¡¡¡¡Pascal³ÌÐò²»½öÓÃÓÚÊýÖµ´¦Àí£¬»¹¸ü¹ã·ºµØÓÃÓÚ´¦Àí·ÇÊýÖµµÄÊý¾Ý¡£ÀýÈ磬ÐÔ±ð¡¢Ô·ݡ¢ÐÇÆÚ¼¸¡¢ÑÕÉ«¡¢µ¥Î»Ãû¡¢Ñ§Àú¡¢Ö°ÒµµÈ¡£
1¡¢Ã¶¾ÙÀàÐ͵͍Òå
¸ñʽ:¡¡type ö¾ÙÀàÐͱêʶ·û=(±êʶ·û1,±êʶ·û2,¡,±êʶ·ûn)
2¡¢Ã¶¾ÙÀàÐÍÊý¾ÝÌØµã
¢Ù ö¾ÙÔªËØÖ»ÄÜÊDZêʶ·û£»
ÀýÈ磬ÏÂÁÐÀàÐͶ¨ÒåÊǺϷ¨µÄ£º
¡¡ ......
ÀàµÄʼþ
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)
......
1¡¢ÏÈÓÃConst ¶¨ÒåÒ»¸ö³£Á¿£¬ÀýÈç const WM_MyMessage=WM_USER+$200;
2¡¢ÔÚҪʵÏÖµÄunitÖж¨ÒåÒ»¸ö˽Óз½·¨
procedure doMyMessage(var msg:TMessage);message WM_MyMessage;
3¡¢ÊµÏÖÕâ¸ö˽Óз½·¨
procedure TForm1.doMyMessage(var msg:TMessage);
begin
//
if msg. ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TlHelp32;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Pub ......
¼¼Êõ½»Á÷,DH½²½â. Ê×ÏÈÎÒÃÇÒªÖªµÀʲôÊÇÊý×é?Êý×éÊÇÒ»¶ÑÏàÍ¬ÌØÐÔÊý¾ÝµÄÒ»¸ö¼¯ºÏ,Ò²¾ÍÊÇÿ¸öÔªËØµÄÀàÐͱØÐëÊÇÒ»ÑùµÄ,µ±È»ÔÚÆäËûһЩÈõÓï·¨µÄÓïÑÔÀïÃæ,Êý×éµÄÔªËØ¿ÉÒÔÇ§Ææ°Ù¹Ö.
Àý×Ó: Var
A: Array[ 0..2 ] Of Integer ;
Begin
A[ 0 ] := 1 ;
A[ 1 ] := 1.0 ; //ÕâÀïÊÇ´íµÄ,ÒòΪÿ¸öÔªËØ¶¼±ØÐëÊÇIntegerÀàÐ ......