あるアプリがSendMessage等の仮想キーイベントを無効にしているのですが
スクリーンキーボードからだとそのアプリにもキーがおくれるので
自アプリ→スクリーンキーボード→目的のアプリ
を行いたくスクリーンキーボードにキーを送っても反応がありません
もしかしてスクリーンキーボードには送れないのでしょうか?
以下ソース
例としてエンターを送信
procedure TForm1.Timer1Timer(Sender: TObject);
var hw :HWND;
begin
hw := FindWindow(nil,'スクリーン キーボード');
if hw <> 0 then
begin
SendMessage(hw,WM_KEYDOWN,VK_RETURN,0);
SendMessage(hw,WM_KEYUP,VK_RETURN,0);
end;
end;
スクリーンキーボードはマウスで操作してキー出力を生成するツールですから、キー入力を送りつけても無意味だと思います。
あるアブリというのが具体的に何をしているのか知りませんが、keybd_eventとかSendInputは試してみましたか?
PostMessageでどうでしょう。
それと、lParamは省略しては駄目かもしれません。
ツイート | ![]() |