我有做過 跟你類似的事
因為大陸工廠的作業員看不懂英文 燒錄的時後常常亂按
也不懂的看燒錄的結果對不對 所以我當時寫了一個外掛的程式
第一個就是使用 FindWindow 去抓取Handle
我第二個是去搜尋記憶體 去找物件記憶體的位置 如你輸出的字串 label1.text=XXXX
基本上label1的記憶體位置在這台電腦上每次開啟來都是一樣的 但在不同的電腦 會不一樣
所以我在初始化會去搜尋一下
找到的話就能去判斷訊息 接下來就是送出你要的字串
Dim WindowsHandle As IntPtr = FindWindow(vbNullString, "MPLAB IDE v8.56 - [Output]")
GetWindowThreadProcessId(WindowsHandle, Process_ID)
Process_Handle = OpenProcess(PROCESS_ALL_ACCESS, False, Process_ID)
h = Form1.ReadProcessMemory(Form1.Process_Handle, j, buffer, buffer.Length, bytesRead)
(J就是你搜尋到的啟始位置) 把它讀出來做比對 在送出你要的字串
(因為它的編譯器可能是16位元或32位元的 所以要試一下)
SetForegroundWindow(WindowsHandle)
SendKeys.SendWait("%G")
你會用到的應該就這幾個API 其它自己去完成吧
--------------------------------------------------------------
Visual Basic .NET 編譯器選項
- 輸出檔案 -
/out:<file> 指定輸出檔名稱。
/target:exe 建立主控台應用程式 (預設)。 (簡短形式: /t)
/target:winexe 建立 Windows 應用程式。
/target:library 建立程式庫組件。
/target:module 建立可以加入組件的模組。
- 輸入檔 -
/addmodule:<file> 從指定的模組來參考中繼資料。
/recurse:<wildcard> 根據萬用字元的指定來加入目前目錄和子目錄中所有檔案。
/reference:<file_list> 從指定的組件來參考中繼資料。 (簡短形式: /r)
- 資源 -
/linkresource:<resinfo> 連結指定的檔案當作外部組件資源。 resinfo:<file>[,<name>[,public|private]] (簡短形式: /linkres)
/resource:<resinfo> 加入指定的檔案當作內嵌的組件資源。 resinfo:<file>[,<name>[,public|private]] (簡短形式: /res)
/win32icon:<file> 指定某一個 Win32 圖示檔 (.ico) 給預設的 Win32 資源。
/win32resource:<file> 指定 Win32 資源檔案 (.res)。
- 程式碼產生 -
/optimize[+|-] 啟用最佳化。
/removeintchecks[+|-] 不檢查整數。預設是關閉的。
/debug[+|-] 發出偵錯資訊。
/debug:full 發出完整偵錯資訊 (預設)。
/debug:pdbonly 只發出 PDB 檔案。
- 錯誤和警告 -
/nowarn 關閉警告。
/warnaserror[+|-] 警告視為錯誤。
- 語言 -
/define:<symbol_list> 宣告全域條件式編譯符號。 symbol_list:name=value,... (簡短形式: /d)
/imports:<import_list> 在參考的中繼資料檔案中宣告命名空間的全域匯入。 import_list:namespace,...
/optionexplicit[+|-] 變數必須宣告。
/optionstrict[+|-] 強制採用嚴格的語意。
/rootnamespace:<string> 指定所有型別宣告的根命名空間。
/optioncompare:binary 採用二進位樣式來比較字串。這是預設值。
/optioncompare:text 採用文字樣式來比較字串。
- 其他 -
/help 顯示此用法訊息。 (簡短形式: /?)
/nologo 不要顯示編譯器著作權橫幅。
/quiet 無對話輸出模式。
/verbose 顯示詳細訊息。
- 進階 -
/baseaddress:<number> 程式庫或模組 (十六進位) 的基底位址。
/bugreport:<file> 建立錯誤報告檔案。
/delaysign[+|-] 只使用強式名稱金鑰的公開金鑰延遲組件的簽名。
/keycontainer:<string> 指定強式名稱金鑰容器。
/keyfile:<file> 指定強式名稱金鑰檔。
/libpath:<path_list> 搜尋中繼資料參考的目錄清單。(以分號區隔。)
/main:<class> 指定包含 Sub Main 的 Class 或 Module。它也可以是繼承自 System.Windows.Forms.Form 的 Class。 (簡短形式: /m)
/netcf 以 .NET Compact Framework 為目標。
/sdkpath:<path> .NET Framework SDK 目錄 (mscorlib.dll) 的位置。
/utf8output[+|-] 以 UTF8 字元編碼發出編譯器輸出。
@<file> 將文字檔內容設定為命令列的設定。
-----------------------------------------------------------------------
devenv /build Debug "yourApplication.vbproj" |