請問如何由程式輸入字串??? |
|
jamliu2
一般會員 發表:1 回覆:0 積分:0 註冊:2002-03-19 發送簡訊給我 |
|
lee
站長 發表:55 回覆:173 積分:45 註冊:2002-02-27 發送簡訊給我 |
引言: 如題,但不是用SetWindowText 或是送訊息(wm_char)的方式來設定字串,因為這些方式都太麻煩了(需知道HWND),而且會有相容性的問題(如:遊戲),不知有沒有函式可直接設定當前的程式的字串,就像輸入法輸入字串一樣,謝謝!!!試看看下面的程式 Procedure PostKeyEx32( key: Word; Const shift: TShiftState; specialkey: Boolean ); Type TShiftKeyInfo = Record shift: Byte; vkey : Byte; End; byteset = Set of 0..7; Const shiftkeys: Array [1..3] of TShiftKeyInfo = ((shift: Ord(ssCtrl); vkey: VK_CONTROL ), (shift: Ord(ssShift); vkey: VK_SHIFT ), (shift: Ord(ssAlt); vkey: VK_MENU )); Var flag: DWORD; bShift: ByteSet absolute shift; i: Integer; Begin For i := 1 To 3 Do Begin If shiftkeys[i].shift In bShift Then keybd_event( shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0); End; { For } If specialkey Then flag := KEYEVENTF_EXTENDEDKEY Else flag := 0; keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 ); flag := flag or KEYEVENTF_KEYUP; keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 ); For i := 3 DownTo 1 Do Begin If shiftkeys[i].shift In bShift Then keybd_event( shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), KEYEVENTF_KEYUP, 0); End; { For } End; { PostKeyEx32 } procedure TForm1.SpeedButton1Click(Sender: TObject); begin PostKeyEx32(ord('A'),[],true); PostKeyEx32(ord('B'),[],true); PostKeyEx32(ord('C'),[],true); end;這樣咧? ~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~ |
danielx2000
一般會員 發表:29 回覆:33 積分:22 註冊:2002-09-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |