2010-08-01 64 views
1

我認爲可以以某種方式掛鉤Windows環境(特別是explorer.exe)並觸發特定的事情,例如啓動控制面板並使用它,就好像我一樣有鼠標(這意味着我點擊代碼界面)。需要幫助,找到我想要做的具體事情的名稱

基本上我想要做的是自動執行一些多餘的任務,我經常做,只是我不知道它是如何完成的,甚至是如何調用。任何人都可以指引我正確的方向?

謝謝!

+3

是否需要Windows來控制光標?您可以繞過GUI並運行由控制面板訪問的應用程序。 – 2010-08-01 10:19:51

+0

不,我只是想盡一切辦法,如果使用鼠標(例如,如果我記錄鼠標序列或什麼 - 至少它是點擊) 。 編輯:對不起,你說得對,但控制面板只是一個簡單的啞巴例子。該應用程序可能是瀏覽器本身,就像進入它的視圖菜單或類似的東西。) – Johnny 2010-08-01 10:21:00

+0

我想你正在尋找鼠標/鍵盤宏。雖然我同意你可以通過調用應用程序來做你需要的一切。雖然也許不是 - 如果你需要鉤入DLL等等。 – 2010-08-01 10:37:47

回答

3

忘掉「自動點擊」。 GUI工具只是控制系統的前端。你可以像控制系統一樣控制系統,這會容易得多。

  1. 巨大的可能性可以給你Microsoft Management Console。每個「管理單元」都可以通過COM模型訪問。其中一些有GUI前端,查找並激發「* .msc」文件(Windows目錄中的某處)以嘗試它們。

  2. many command line tools即「網絡」命令有巨大的網絡能力。

  3. PowerShell可能是一個更好的選擇,而不是C#或C++,它是爲任務自動化設計的。如果你想主要是爲了發射控制面板,您可以使用現有的大多數控制面板小程序Rundll32的接口你可以很容易地使用COM,.NET,MMC ...

+0

我只是在尋找想法如何與系統做一些互動,這個答案是最全面的。儘管我會補充一點,對於接近這個問題的任何人來說,從下面的SendMessage()答案都可以派上用場。 – Johnny 2010-08-01 18:14:40

1

Windows資源管理器有一個COM object model,您可以從C#和C++調用。 (MSDN上的大多數示例都使用Javascript或VBScript,我猜這不是您選擇的語言,但它們證明了API可以直接調用。)

1

AutoHotKey是專門爲此類設計的腳本環境的任務

+1

問題是,我想自己做,否則這將是雅虎!我想的答案。我已經使用過,而且我嘗試重新創建類似的東西。 – Johnny 2010-08-01 10:20:00

+1

@Johnny:看看他們的文檔,看看他們是怎麼稱呼他們的,看他們的來源,看看他們是怎麼做到的...... – Gilles 2010-08-01 10:33:01

+0

我現在就要這麼做,不得不離開幾個小時。 這只是爲了實踐的目的,我認爲那可能只是一些技巧,而不是解決方法。 – Johnny 2010-08-01 18:11:59

1

。例如,參見http://www.osattack.com/windows-7/huge-list-of-windows-7-shell-commands/,http://support.microsoft.com/kb/167012http://www.winvistaclub.com/t57.html。相應的API請參閱http://support.microsoft.com/kb/164787

另一種選擇是使用control.exe(請參閱http://msdn.microsoft.com/en-us/library/cc144191.aspxhttp://vlaurie.com/computers2/Articles/control.htm)。

如果谷歌更多,你會發現更多的例子,你可以自動化很多東西沒有使用一些常規的方式來自動化GUI。

1

或多或少是Win32中的最低級別,您可以使用SendMessage() API將原始點擊消息發送到感興趣的窗口。這將取決於您打算推動的應用的許多侵入性知識。但是,您可以輕鬆實現一個「點擊錄音機」,該錄音機可以重播用戶交互中捕獲的點擊序列。