重複の可能性:フックを介してキーストロークを別のプロセスに直接送信する
質問の口調が少し悪い場合はお詫び申し上げます。私は正しいことを知って立ち往生しています。さて、私はWPFアプリケーションからVB6アプリケーションとWebページの両方にデータを転送するプログラムの作成に取り組んでいます。構成に応じて、データを投稿するためのプロシージャが呼び出されます。私はすでにVB6側を終了しましたが、次の理由からWebページに大きな問題があります。
- この手順は、すべての既知のブラウザで機能する必要があります。
- Webリクエストとしてデータを送信することは許可されていません。
- 使用するWebサイトを制御できません。
- また、サードパーティのソフトウェアを使用することは許可されていません
私はすでに次のことを試しました:
- タブキーと文字キーのキーアップとキーダウンを含むメッセージを送信します
- 送信する文字列のpostmessageを含むSendmessage
- 上記のメッセージ後のバージョン
- データをHTMLドキュメントとして送信するためのMSHTML
- SendKeys(まだ詳しく調べていませんが)
これがsendmessageのコードです(私のすべての試みに最も近い)
IntPtr window = User32_Methods.FindWindow(null, "Test Site");
if(window!=IntPtr.Zero)
{
MessageBox.Show("asdasd");
User32_Methods.SendMessage(window, Send_Message_Constants.WM_LBUTTONDOWN, IntPtr.Zero, IntPtr.Zero);
User32_Methods.SendMessage(window, Send_Message_Constants.WM_LBUTTONUP, IntPtr.Zero, IntPtr.Zero);
for (int count = 0; count < 15;count++)
{
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYDOWN, (IntPtr) Send_Message_Constants.VK_TAB, IntPtr.Zero);
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYUP, (IntPtr)Send_Message_Constants.VK_TAB, IntPtr.Zero);
foreach(char a in "adasdasdasd")
{
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYDOWN, (IntPtr)Send_Message_Constants.VK_A, IntPtr.Zero);
User32_Methods.PostMessage(window, Send_Message_Constants.WM_KEYUP, (IntPtr)Send_Message_Constants.VK_A, IntPtr.Zero);
}
}
}
私がここで問題にしている質問のほとんどをあなたが解決したので、スタックの皆さんにお願いしたいと思います。