星期二, 10月 09, 2007

模擬按鍵

今天剛好有需要自動執行程式,但因為需要登入動作,所以就得寫一個能對視窗上模擬按鍵的動作。嗯...按鍵精靈要錢,又怕有後門,於是先找自己以前用VC寫的半成品。結果..因為新電腦還沒申請,這台NB上沒有,就先找網路上的範例。

結果找到比較完整的是 Send Keystrokes to Applications Using Windows' API SendInput ,我拿裏面DoDucTruong的程式來改最方便,這是VB6的程式,改一下就解決我的問題。DoDuc的程式裏找HWND的部份可能會有問題,不是每個視窗用名稱都找得到(或是名稱不對?),我是用Spy++直接找Class Name填進去找HWND,需要的人可能得用FindWindowEx去試試,這方面在下不行。

過程中有許多程式碼都是VB5或更舊,居然都得修改才能執行,有點出乎意料。BTW,找API用法中,發現一堆討論區都有Kuon兄出現,他果然是高手,有問題請直接問他XD

4 則留言:

Kun-Yi 提到...

也許 http://www.autohotkey.com/
是更好的選擇?

鳥毅 提到...

非常感謝,雖然我已經改好程式,還是會試試 AutoHotkey。

Kuon 提到...

以前沒用 VB 寫 資料庫, 都在用 VB+SDK 玩系統:)
自從會C+ASM後就沒用VB了..:)

Kuon 提到...

"某長官實在太看得起在下,居然要在下把沒有source code的vb6 dll裝起來,再瞭解其運作原理。"

看到您的microblog, 這問題好像是在挖洞讓我跳~~ccc

說明一下好了, VB6 編出來有兩種, 您所看到的 VB Decompiler 多數解的是 pseudo bytecode. 另外一種編出來的是 Native code, 那要拿 x86 Disassembler 來解; but ... VB5/6 stub 比起 VC 編出來的, 該 stub 是個特製版:P