2012-08-31 40 views
-1

我可以訪問打印對話框並從Winforms以編程方式關閉它嗎? 這個打印對話框將被其他程序打開,如網絡瀏覽器,記事本或繪畫。C#Winforms訪問用另一個程序打開的打印對話框

例如,人員在Internet Explorer上,並在任何網站上點擊ctrl + p,然後打印對話框打開。我的控制檯/ winform應用程序會找到它並點擊確定或自動取消。

+0

爲什麼你要編寫軟件來做到這一點?這看起來是一個非常本地化的問題。 –

+0

@Teomanshipahi:我相信還有其他的原因,比如你所描述的近似病毒的行爲。 –

+0

所以棧溢出應該讓人們解釋什麼是倒票的原因。所以很多windows api相關的問題都可以視爲病毒相關的問題。根本沒有任何意義。 –

回答

-1

這是可能的。然而,你將不得不使用非託管代碼,我建議使用WinDows API來做到這一點。您可以使用FindWindow函數找到窗口句柄,然後您可以將相應的消息發佈到該窗口。或者您可以獲得該按鈕的座標,並在使該窗口處於活動狀態後按下該按鈕。

+0

世界上的「WinDows API」究竟是什麼?爲什麼這樣寫?你所提到的一切都可以完成,甚至不是他想要做的。他想關閉另一個進程的'Window'。我非常確定Windows會對此產生問題。 –

+0

@Ramhound首先,您可以使用.net託管代碼殺死進程,請參閱system.diagnostics命名空間。問題可能出現在以及使用Windows API時 - 這取決於您的系統設置而不是技術。其次,每個進程可能有多個窗口。所以我不確定你的評論是什麼意思,也不知道是什麼意思。 – seeker

+0

@seeker:代碼或這個答案沒有什麼價值。 –

0

如果你只想執行一個簡單的動作,像AutoHotkey這樣的程序可能是這種情況的理想選擇。它旨在幫助像這樣的小任務。它可以根據可見的窗口執行不同的操作。它可以執行擊鍵,在這種情況下可以是Enter,Escape或Alt-K。如果您想要與應用程序進行更多集成,這可能不是合適的解決方案。但是,如果你只是想增加自動化,我認爲它(或類似的解決方案)是完美的。

http://www.autohotkey.com/

+0

我想以編程方式編寫它,感謝信息。 –

相關問題