ä¸ãå¨VBä¸å£°æAPIå½æ°æ两ç§æ¹æ³ï¼å¦ææ们åªå¨æ个çªä½ä¸ä½¿ç¨APIå½æ°ï¼æ们å¯ä»¥å¨çªä½ä»£ç çGeneralé¨å声æå®ï¼
声æçè¯æ³æ¯ï¼
Private Declare Function ...
Private Declare Sub.....
è¿éå¿
é¡»éç¨Private声æï¼å 为è¿ä¸ªAPIå½æ°åªè½è¢«ä¸ä¸ªçªä½å
çç¨åºæè°ç¨ã
å¦ææ们çç¨åºæå¤ä¸ªçªä½ææï¼èä¸æ们éè¦å¨å¤ä¸ªçªä½ä¸ä½¿ç¨åä¸ä¸ªAPIå½æ°ï¼å°±éè¦å¨æ¨¡åä¸å£°æäºã
å
æ·»å ä¸ä¸ªæ¨¡åï¼å¦å¾ç¤ºï¼ï¼
ç¶åéç¨å¦ä¸è¯æ³å£°æï¼
Public Declare Function....
Public Declare Sub....
Public声æçå«ä¹æ¯æAPIå½æ°ä½ä¸ºä¸ä¸ªå
Œ
±å½æ°æè¿ç¨ï¼å¨ä¸ä¸ªå·¥ç¨ä¸çä»»ä½ä½ç½®ï¼å
æ¬ææççªä½å模åï¼é½è½ç´æ¥è°ç¨å®ã 声æå®æ¯æ们就è½å¨ç¨åºä¸ä½¿ç¨æ¤APIå½æ°äºã
äºãå¯éç¨ä»¥ä¸å ç§æ¹å¼ä½¿ç¨APIå½æ°ï¼ä»¥SetWindowPoså½æ°ä¸ºä¾ï¼
ï¼1ï¼å¿½ç¥å½æ°è¿åå¼çè°ç¨ï¼
SetWindowPos Form1.hWnd, -2 ,0 ,0 ,0, 0, 3
注ææ¤æ¶å½æ°çåæ°æ¯ä¸å æ¬å·çã
ï¼2ï¼Callæ¹æ³è°ç¨ï¼
Call SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
注æè¿ééè¦å ä¸æ¬å·ï¼ä½æ们ä¸ååå½æ°çè¿åå¼ã
ï¼3ï¼åå¾å½æ°è¿åå¼çè°ç¨ï¼
MyLng = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
æ¤æ¶éè¦å ä¸æ¬å·ï¼èä¸æ们å¿
é¡»äºå
å®ä¹ä¸ä¸ªåéï¼åéçç±»åä¸å½æ°è¿åå¼ç±»åç¸åï¼æ¥åå¨APIå½æ°çè¿åå¼ã
ä¸ãå 个é®é¢ç说æï¼
ï¼1ï¼å£°æä¸çLib å Alias æ¯æä¹åäº
ä¸è¬æ
åµä¸WIN32APIå½æ°æ»æ¯å
å«å¨WINDOWSç³»ç»èªå¸¦çææ¯å
¶å®å
¬å¸æä¾çå¨æè¿æ¥åºDLLä¸ï¼èDeclareè¯å¥ä¸çLibå
³é®åå°±ç¨æ¥æå®DLLï¼å¨æè¿æ¥åºï¼æ件çè·¯å¾ï¼è¿æ ·VBæè½æ¾å°è¿ä¸ªDLLæ件ï¼ç¶åæè½ä½¿ç¨å
¶ä¸çAPIå½æ°ãå¦ææ们åªæ¯ååºDLLæ件åèä¸æåºå
¶å®æ´çè·¯å¾çè¯ï¼VBä¼èªå¨å°.EXEæ件æå¨ç®å½ãå½åå·¥ä½ç®å½ãWINDOWS\SYSTEMç®å½ãWINDOWSç®å½ä¸æ寻è¿ä¸ªDLLæ件ãæ以å¦ææè¦ä½¿ç¨DLLæ件ä¸å¨ä¸è¿°å 个ç®å½ä¸çè¯ï¼æ们åºè¯¥ææå
¶å®æ´è·¯å¾ã
Aliasç¨äºæå®APIå½æ°çå«åï¼å¦ææ们è°ç¨çAPIå½æ°è¦ä½¿ç¨å符串ï¼åæ°ä¸å
å«Stringåï¼çè¯ï¼Aliaså
³é®åæ¯å¿
é¡»çãè¿æ¯å 为å¨ANSIåUnicodeå符éä¸åä¸APIå½æ°çå称å¯è½æ¯ä¸ä¸æ ·çï¼ä¸ºäºä¿è¯ä¸åºç°å£°æé误ï¼æ们使ç¨Aliaså
³é®åæåºAPIå½æ°çå«åï¼ä¸è¬æ¥è¯´å¨WIN9Xå¹³å°ä¸æ们æAPIå½æ°ååå ä¸ä¸ªå¤§åAä½ä¸ºå«åå³å¯ã
ï¼2ï¼å¸¸è§çAPIåæ°ç±»åç说æ
APIå½æ°çåæ°ä¸æ常è§çæ¯é¿æ´Longåæ°æ®ç±»åï¼ä¾å¦APIä¸çå¥æãä¸äºç¹å®ç常éãå½æ°çè¿åå¼é½æ¯æ¤ç±»å çå¼ï¼å¦å¤å ç§å¸¸è§çåæ°ç±»åæï¼æ´åIntegerãByteåãStringåçã
ï¼3ï¼å£°æä¸çByValæ¯ä½ä»ä¹ç¨ç
è¿è·VBçåæ°ä¼ éæ¹å¼æå
³ï¼å¨é»è®¤æ
åµä¸VBæ¯éè¿å°åä¼ éæ¹å¼ä¼ éå½æ°çåæ°ãèæäºAPIå½æ°è¦æ±å¿
é¡»éç¨ä¼ å¼æ¹å¼æ¥ä¼ éå½æ°åæ°ï¼è¿ä¸¤ç§åæ°ä¼ éæ¹å¼æ¯ä¸åçï¼åè
ä¼ éçæ¯ä¸ä¸ªæéï¼èåè
è¦æ±æ¯åæ°çå®çå¼ï¼ãè¿æ ·å°±ä¼åçé误ï¼è§£å³çåæ³æ¯å¨APIå½æ°åæ°å£°æçåé¢å ä¸ByValå
³é®åï¼è¿æ ·VBå°±éç¨ä¼ å¼æ¹å¼ä¼ éåæ°äºã
Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As
Integer, ByVal Source As Integer, ByVal Length As Integer)
MoveMemoryå½æ°
温馨提示:答案为网友推荐,仅供参考