たとえば、DateTime
を貼り付けるアプリケーションを、アクティブなウィンドウに1つのボタンを押してコード化したいとします。例えばプログラムによってアプリケーションが所有していないアクティブなウィンドウにテキストを挿入
:私のアプリケーションは
- 私は「ニュース」と入力Google Chromeを使用して、世界中の
- が起こっていただきました!知りたいのです
F7
(または他のプログラムされたキー) - 私のアプリケーションでは、が押されたことを検出しました
Now.ToShortDateString
をGoogle Chrome のアクティブ
Cursor Position
に貼り付けました
これは可能ですか?私はすでにWindowsフォームAPIを使用して私のフォームbeeingを有効にしてKeyPressesをつかむ方法を見つけたuser32.dll
私はまた、clipboard
を避けたいと思います。
- :私が技術を切り替えることを決めた私自身の各キーストロークをシミュレートする必要があるようですので
: そうでなければ、例えば
Dim clipb As String= My.Computer.Clipboard.GetText() My.Computer.Clipboard.SetText(Now.ToShortDateString) 'simulate CTRL+V My.Computer.Clipboard.SetText(clipb)
UPDATEを使用することができますクリップボードを保存する
- クリップボードを上書きする
- シミュレートCTRL + V
- は、ユーザーがクリップボード
を復元私はそのために、次のコードを記述するために管理:
Dim UserClipboard As Object = My.Computer.Clipboard.GetDataObject()
My.Computer.Clipboard.SetText(Now.ToString)
System.Windows.Forms.SendKeys.Send("^(v)")
My.Computer.Clipboard.SetDataObject(UserClipboard)
それは、コピーしたファイルのために働いているようです。 代わりにMy.Computer.GetText()
とMy.Computer.SetText(UserText)
を使用した場合、Textではうまくいきます。どの機能を使うべきかをアプリケーションに伝える方法を理解できません。
はまた、このいずれかのWinWord
ソリューションでCTRL+V
doesntの仕事をシミュレートすること、そうです:私はテキストに下線を引くためWINWORD自身によって使用されkeysendsをシミュレートするためのCTRL + SHIFT +のUを使用していました。
Win32 SendMessage関数を使用します。 – Dai