2013-07-31 11 views
-1

我想要一個沒有任何可查看錶單的應用程序(僅用於在系統托盤中運行)。 現在,當用戶按下熱鍵(例如「F11」)時,將選定的文本從應用程序複製到剪貼板中,然後我想以定義的格式打印文本。 現在我不知道我該怎麼做。在系統托盤中運行應用程序並設置熱鍵以拷貝到剪貼板

請幫我...

非常感謝

+0

檢查了這一點http://stackoverflow.com/questions/12423207/maximize-c-sharp-application-from-system-tray-using-keyboard-shortcut –

+1

投票關閉既然你有沒有顯示你嘗試過什麼或失敗的地方。檢查清單以獲取更多信息:http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist – Default

回答

1

你需要使用掛鉤,包含3個主要部分:

  • 一個系統鉤子允許你插入一個回調函數, 截取某些Windows消息(例如,鼠標相關的消息)。

  • 本地系統掛鉤是一個系統掛鉤,僅在指定消息由單個線程處理時才被調用。

  • 全局系統掛鉤是一個系統掛鉤,當指定的郵件是由整個系統上的任何應用程序處理的 時被調用。

除了您的要求,您需要使用全局系統鉤子。你可以使用這個有用的link

UPDATE:

我覺得這是故事的簡單側檢測鍵盤按鍵,或將在系統托盤中的無形的應用程序(谷這LINK),你也可以輕鬆地設置文本使用到剪貼板System.Windows.Forms.Clipboard.SetText("Hello, clipboard");但是,什麼文字?這是興趣點。如果您想從任何包含可選文本的打開應用程序中獲取選定的文本,則需要採用其他方式。我已經搜索了一下,得到了這個可敬的LINK

再次更新:

正如你在評論中提到,鏈接的指南不正確的工作爲您的需求。我幾分鐘前就測試過它,並使用它編寫了一個示例應用程序。我已經從活動窗口中選擇了控制文本作爲結果,這意味着它也不會有幫助。

一點再次搜查,結果如下:

  • 這是不可能的,一般是能夠得到,因爲一個事實,即程序可以重新「任何」所選文本的價值, - 以他們認爲合適的方式實現他們自己的Win32控件版本,並且你的程序不可能期望與它們一起工作。

  • 您可以使用Microsoft UI Automation這是Microsoft Windows新的輔助功能框架,在所有操作系統上使用。 UI Automation提供對桌面上大多數用戶界面(UI)元素的編程訪問,使屏幕閱讀器等輔助技術產品能夠向最終用戶提供關於UI的信息,並通過標準輸入以外的方式操作UI。UI Automation還允許自動測試腳本與UI進行交互。

注:正如我周圍的樣品和問題中看到的,這個解決方案不是很冷靜,除了其他的實驗中,它不會對所有的應用程序(如Firefox等工作)。

任何有用的引用將添加到答案。這是我所能爲你做的一切。

幸運

+0

想要討論代碼?添加一些... –

+0

感謝您的回覆,我試圖在第二個鏈接的情況下獲得選定的文本,但它沒有working.do你有任何其他方式做到這一點? –

相關問題