2013-04-22 124 views
0

我剛剛繼承了C#windows應用程序代碼庫。這是一個相對較大的應用程序,其中包含大量的用戶界面「元素」,我相信這些元素可能是以前的開發人員添加的,幾乎沒有與實際客戶端進行交互。這個應用程序是一個機器人控制系統,它運行在一個製造工廠,它有一些我見過的最複雜的用戶界面(表格裏面的標籤元素內部的表單等等)。剖析用戶如何與C#Windows應用程序交互

其中之一我想要做的第一件事是瞭解實際的工廠現場員工如何與此應用程序進行交互。我已經向不同的主管發出了一份調查報告,但我也希望獲得一些經驗數據。

我想這樣做:

我想以某種方式,捕捉每一個用戶按下一個按鈕,控制等時間......和其記錄到文件中。一些簡單的像:

時間戳,控制的名稱,任何其他很酷的數據我可以捕獲(程序運行狀態,例如。)

困難的是,我不是一個真正的C#專家在這一點上,並且我找不出適當的方式將某種全局行爲添加到執行此操作的應用程序中,並且不會影響現有功能。任何建議將不勝感激。

+0

至於按下鍵盤按鍵你有沒有想過一個[全局鍵盤鉤子](http://stackoverflow.com/questions/13998131/get-key-from-any-process)? – phadaphunk 2013-04-22 17:42:09

+0

http://www.manning.com/hazzard/的第7章有關於IL重寫的章節。您可以使用它在每個點擊處理程序的開始處插入日誌記錄語句。雖然可能有一個更簡單的方法... – mydogisbox 2013-04-22 17:43:25

+0

@mydogisbox IL注入可能比做簡單的鉤子需要更多的努力。 – danish 2013-04-22 18:13:52

回答

0

全局鍵盤和鼠標掛鉤將是一條路。除非有人徹底瞭解設計,並且可以評論如何擴展現有功能。它會有點困難。

+0

我非常樂意從全局鍵盤和鼠標鉤子開始。有什麼機會可以讓我指出我將如何去做這件事的例子? :) – earino 2013-04-22 17:46:06

+0

@earino請參考我以前的問題。我在你的問題的評論中發佈了一個鏈接。它清楚地解釋永久存在,它正在工作。 **請記住**全局鉤子將捕獲**所有**輸入。即使是你的應用程序沒有關注的時候。 – phadaphunk 2013-04-22 17:55:41