下面是我正在做的事情:控制外部對話框
我的應用程序具有允許生成文檔傳真的功能。此功能將文檔打印到作爲傳真打印機在系統中設置的打印機。它是一位兄弟,打印機名稱是Brother PC-FAX。目前,當啓動打印作業時,打印驅動程序打開一個對話框,用於輸入傳真號碼,封面選項以及不包含的內容。與文檔關聯的傳真號碼被存儲。我正在嘗試設置我的應用程序爲用戶注入傳真號碼,然後單擊「開始」按鈕。 該對話框有快捷鍵,它最初會聚焦一個按鈕,用戶可以按Shift + TAB鍵進入數字輸入控件,然後接受Ctrl + V進行粘貼。然後用戶可以按下Alt + O來激活「開始」按鈕。我以前的應用程序版本只是將傳真號碼複製到剪貼板,並將粘貼並單擊操作留給用戶,但我試圖進一步自動化。我目前的做法是
- 劫持的WndProc回答WM_ACTIVATE消息
- 如果窗口的標題是 「兄弟PC-FAX」,然後
- 使用SendKeys.Send()發送 「+ {TAB}」 ,「^ V」和「%O」
這將工作,除非實際的傳真對話框似乎不註冊爲實際的窗口,如在,也許它只是一個對話框的子打印形式驅動程序。我想出的唯一窗口標題是「打印」框,它是在任何打印機上每次打印時彈出的小窗口。這不允許SendKeys函數通過。
有關我應該如何處理的任何想法?如果驅動程序和SDK可以允許自定義的命令調用,但它不會。