我正在運行一個小工具(在Windows 7,32位),我想看看在另一個應用程序中打開了哪個文檔,我試過這個,它適用於Windows上的NotePad。爲什麼另一個應用程序窗口的標題文本不正確?
var myProcess = Process.GetProcessesByName("NotePad");
string title = myProcess[0].MainWindowTitle;
MessageBox.Show(title);
輸出爲:
"New Text Document - Notepad"
現在,如果我嘗試另一個應用程序它並不總是給我正確的標題,但我注意到,大多數Microsoft應用程序似乎要被罰款 - 記事本,寫字板,EXCEL等。這是另一個軟件,這是一個問題。它有一個很長的標題,但只是返回一個非常簡單的名字。
這是我從我的應用程序,它具有processName = 「FooBar的」 實際運行窗口有這件事上得到:
「FooBar的軟件爾鬆1.2 - 結果」
和我的代碼給出:
「FooBar」
有什麼想法嗎?
[編輯] 2012-11-19 這個問題的關鍵在於我試圖從窗口中獲取打開文件的名稱。現在看來,我正在使用的軟件沒有顯示在那裏。我發現一個名爲「AutoIT3 Window Spy」的程序可以獲取我需要的文本,因爲打開文件的文本位於窗口中,而不僅僅是標題中。我下載了源代碼(它是http://www.autohotkey.com/的一部分,它是開源的,似乎依賴於已經提出的許多建議,但目前我還無法弄清楚)。我正在查看的源代碼是C++而坐落在這裏https://github.com/AutoHotkey/AutoHotkey
所以我認爲,解決我的問題可能會在別的地方。這一個可以置之不理。
你能看到窗口本身或者是我的「Foobar」的代碼來設置過程描述嗎?我可以訪問編寫它的人,以便他們能夠調整它以使用我的工具? – Sisyphus
實際的描述說明了完全不同的東西。它說「對於Anothe程序v 1.3」 – Sisyphus
你現在在我的示例代碼中放置了「Foobar」,它現在有「記事本」。這應該給你一個指針。 – ScottRFrost