線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2408
推到 Plurk!
推到 Facebook!

SendMessage問題-幫安裝程式自動輸入值

尚未結案
ckrl933
一般會員


發表:16
回覆:15
積分:6
註冊:2005-01-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-19 09:32:58 IP:61.220.xxx.xxx 未訂閱
我想由我的程式呼叫起MySQL的安裝程式, WinExec("../mysql/bin/winmysqladmin.exe",SW_HIDE); 但執行完後, 都會跑出一個輸入User name : Password :畫面, 然後才會產生 WINDIR\my.ini 可以由我的程式幫它自動輸入我要的user name及password嗎?? 用以下方式可以找到那個視窗的HWND, HWAND hwnd_admin = FindWindow(0,"WinMySQLadmin Quick Setup") 但想在兩個Edit中, 輸入值都失敗了, 我用SendMessage WM_CHAR WM_KEYDOWN WM_SETTEXT 方式都不行 甚至WM_SETTEXT把這個視窗的Caption改成我的字串, 因為不曉得這兩個Edit的Handle, 但它執行時已經將第一個Edit SetFocus 想說靠著WM_SETTEXT或WM_CHAR來輸入值 WM_KEYDOWN來輸入TAB Enter 不曉得我觀念哪裡錯了, 例: SendMessage(hwnd_admin, WM_CHAR, 0x63, 0); SendMessage(hwnd_admin, WM_KEYDOWN, VK_TAB, 0); SendMessage(hwnd_admin, WM_SETTEXT, 0, (lPARM)&CharArrary)
enter2004
初階會員


發表:51
回覆:94
積分:34
註冊:2005-04-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-21 12:47:44 IP:140.113.xxx.xxx 未訂閱
在NT4,2000,XP中 我寫了一個這樣的函數 void SendKeys(char *str) { LPINPUT myInput; int i; AnsiString AStemp(str); wchar_t unicodeWord[512]; StringToWideChar( AStemp , unicodeWord , 512 ); myInput= new INPUT ; for( i=0 ; unicodeWord[i]!=0 ; i ){ myInput->type =INPUT_KEYBOARD; myInput->ki.wVk =0; myInput->ki.wScan =unicodeWord[i]; myInput->ki.dwFlags = KEYEVENTF_UNICODE; myInput->ki.time = 1000; myInput->ki.dwExtraInfo = GetMessageExtraInfo(); SendInput( 1, myInput , sizeof(INPUT) ); myInput->ki.dwFlags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP; SendInput( 1, myInput , sizeof(INPUT) ); } delete myInput; } 我寫好了 這就是模擬sendkeys 應該不會有亂碼出現的情況(支援中文英文) 用法 SendKeys("今天天氣很好!!nice!") ; 會傳到前景視窗中 應該可以成功傳出字串到其他應用程式,希望對您有幫助
------
人生就像泡泡一樣,乘著風被吹著跑,等你發現時已經消失了。
就在快要消失的瞬間,希望能再飛高一點,
但是回神時總是慢了一步。
ckrl933
一般會員


發表:16
回覆:15
積分:6
註冊:2005-01-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-22 11:10:40 IP:61.220.xxx.xxx 未訂閱
enter2004 好厲害唷!! 看了一下winuuser.h 它有WIN32_WINNT >= 0x0500的限制 自己再加上一個 SendKeys2(int vk_key)就可以傳tab和enter ^.^y~謝謝
enter2004
初階會員


發表:51
回覆:94
積分:34
註冊:2005-04-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-22 12:17:38 IP:140.113.xxx.xxx 未訂閱
嗨, 我在想什麼是WIN32_WINNT...因為我api還不熟 我只是個初學者而已..= =" 還有你寫的sendkey2 跟win32_winnt這個常數有什麼關係嗎? ^_^
------
人生就像泡泡一樣,乘著風被吹著跑,等你發現時已經消失了。
就在快要消失的瞬間,希望能再飛高一點,
但是回神時總是慢了一步。
系統時間:2024-04-29 10:43:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!