2011-06-20 63 views
3

我試圖在工作中自動化許多重複性任務,這個小問題讓我難倒了。與其他應用程序交互(如單擊按鈕)

我們正在使用一個應用程序打印出聯機訂單的標籤,這個過程就像這樣。

  1. 點擊定單
  2. 檢查訂單的詳細信息,並點擊「完成」程序計算
  3. 確認的
  4. 5秒您想要打印標籤
  5. 標籤打印和你」重做

在忙碌的日子裏,我們必須通過這個過程超過500個訂單,因爲這個任務因爲步驟3消耗大量無用的時間。用戶必須等待這些5秒鐘才能點擊「打印」按鈕。假設我們有500個訂單,即5秒500次,大約40分鐘。整個發送過程花費2個小時,因此有33%的時間因爲等待點擊按鈕而丟失。

我試圖找到一種方式來自動化步驟4中,使用戶可以在完成步驟後,停止與應用程序交互2

那麼,有沒有使用C#單擊從另一種形式的按鈕方式不同的應用?當確認屏幕彈出時,必須觸發事件。請注意,此確認屏幕不是默認的Windows打印對話框,而是應用程序的一部分,因此不會混淆偏好。

回答

5

我想你應該看看UI腳本工具,如AutoItAutoHotkey,而不是自己寫。

+0

是的我猜第三方工具也沒問題。讓我試試看。 – Pieter888

+0

謝謝!我使用了AutoIt,這是一種容易學習的語言,它完成了工作。現在我開始啓動宏,它等待打開所需的窗口,按下回車鍵,然後重複該過程。 – Pieter888

0

如果您知道表單句柄,則可以使用User32 dll單擊窗體上的按鈕。

我用PInvoke.net查找方法

爲了制定出屏幕是否已經打開/關閉時,您可以創建當屏幕打開或關閉觸發一個窗鉤。你將需要一個C++庫來做到這一點,因爲它不可能在C#中,但你只需要創建一個小的C++程序集,然後從你的C#引用它。您可以在打開窗口時查看窗口的標題,以查看窗口是否需要,然後可以獲取窗口句柄並查看窗口何時關閉。

有關如何實現掛鉤的一些信息可以在這裏找到。

http://www.voidnish.com/Articles/ShowArticle.aspx?code=manipwindows

的C++組件我用一次被稱爲GlobalCBTHook。

下面是從代碼項目的另一個鏈接,顯示全局窗口鉤子

http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx

上面的鏈接是,讓我開始

相關問題