2009-07-24 12 views
0

私はC#を使用して勝利アプリケーションに取り組んでいます、私はcontrol + LとControl + cをfirefoxがアクティブなときに送信したい、addess barとURLをコピーしてクリップボードから情報を取得する。私はこれをやろうとしている。しかし、私は有効です。コントロール+ Lとコントロール+ Cを別のアプリケーションに送る方法は?

どうすればいいですか? Firefoxウィンドウをアクティブにし、Ctrl + L(アドレスバーをアクティブにする)、Ctrl + C(コピー選択、すなわちURLをクリップボードに送る)、クリップボードを読み込みます。

[リターン:MarshalAs(UnmanagedType.Bool)] [DLLIMPORT( "user32.dllの"、SetLastError =真)] 静的にextern BOOLのPostMessage(HWNDのIntPtr、UINTメッセージ、INT wParamに、INT lParamに)。

private const uint VK_CONTROL = 0x11; 
    private const uint VK_L = 0x4C; 
    private const uint VK_C = 0x43; 


if (hwndfirfox == Process.GetProcessesByName("firefox")[0].MainWindowTitle) 
     hwndfirfox = Process.GetProcessesByName("firefox")[0].MainWindowHandle; 

if (hwndfirfox != null) 
{ 
    PostMessage(hwndfirfox, VK_CONTROL, VK_L, 0); 
    PostMessage(hwndfirfox, VK_CONTROL, VK_C, 0); 
} 

このコードはエラーです。

答えて

2

PostMessageをキーボード入力のシミュレートに使用しないでください。hereというポストがあります。これにはSendKeysまたはSendInputを使用する必要があります。

0

CodeProjectでthis articleをお勧めします。 MSDNのSendKeys classは、現在アクティブなアプリケーションにキーストロークを送信できるようにしか見えません。

+0

私は同じコードプロジェクトの記事を提案しようとしていましたが、questinでコードを書式化しました:) – TheVillageIdiot

関連する問題