2009-10-10 203 views
0

我想製作一個簡單的java程序,它將一些文本插入當前光標位置。該光標位置可以在任何文本編輯器中,例如記事本。這可能嗎?Java粘貼到當前光標位置

回答

1

這是一個黑客攻擊,但看看java.awt.Robot。它可讓您以編程方式進行鼠標點擊和按鍵,以及許多其他有用的功能。所以,我們要做一個方式,它是:

  1. 使用Atmocreations'的文章把文本放在剪貼板
  2. 當你要粘貼,使用機器人點擊在當前位置(如果你需要給該場焦點)
  3. 使用機器人按Ctrl-V(或任何你的系統要求爲糊狀)

就像我說的,這根本不是一個乾淨的解決方案,但它會在緊要關頭。

+0

我正在使用: robot = new Robot(); \t robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); 它的工作原理。謝謝。 P.S.我試着用robot.keyRelease(KeyEvent.VK_PASTE);但它會拋出一個錯誤 – dede

+0

@peri:即使焦點位於不同的窗口上,它也能工作嗎? – Atmocreations

+0

不,它只適用於窗口焦點 – dede

1

使用this article作爲複製/粘貼的基礎,您可能會看到只能將某些內容放到剪貼板上,而不能直接更改外部過程文本框的內容。

您可能想要獲取該窗口的窗口句柄並使用Windows API向其發送消息。這隻適用於Windows,我不知道在Mac OS/Linux上是否有相同的方法。也許這甚至不直接從java工作。您需要鍵入一些C/C++ - 代碼,並使用Java Native Interface (JNI)

問候

+0

謝謝。我會嘗試與JNI – dede

0

如果妳所要求的當前光標位置,我覺得你應該這樣做:

Display.getCurrent().getCursorLocation() 

具有光標位置,接下來要做什麼需要更多細節。如果你想自動將一些文本寫入外部應用程序,如Word或記事本,這聽起來更像是一種病毒..

+0

是的,我想寫入任何文本編輯器(如記事本),我做了像剪貼板實用程序(類似於http://www.deepskyblue.net/software/sanvient/en/) 。我無法弄清楚這個程序如何寫入任何文本輸入。 – dede

相關問題