- ベストアンサー
VisualBasic.NETのSendKeyをVisual C++で実現したいのですが。
VisualBasic.NETでは SendKeys.Send("Hello") を実行すればメモ帳でもインターネットのテキストフレームにでも文字列を送り込むことはできますが、(フォームを隠しておきますが、、、)、 VisualC++ではどのAPI等を使えば、 まったく同じ機能を果たすことができますか? よろしくお願いします。 VisualC++ Win32アプリケーション WindowsXPです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
keybd_eventか、SendInput
その他の回答 (2)
- DRAGON_TAIL
- ベストアンサー率48% (27/56)
確認するとSendMessageでテキストボックスへのデータ送信は可能でしたが、もとの質問の > VisualC++ではどのAPI等を使えば、 > まったく同じ機能を果たすことができますか? これに関するクリティカルな答えは#2氏の言われる通りであることと、SendInputをやめてSendMessageにする積極的な理由は無さそうですね。 # SendInputが駄目とするならSendMessageも駄目とすべきかと思うので >VisualBasic.NETのSendKeyでは可能ですが、 >どういう仕組みですか? SendKeysはキー入力なんで HelloはH,l,l,oとkey入力されたことになります。 仕組み=内部処理として言われているなら確かめていません。
- DRAGON_TAIL
- ベストアンサー率48% (27/56)
SendMessageやPostMessageで可能かと思いますが
補足
こんな感じのことでしょうか? #include<windows.h> int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { Sleep(3000); HWND hWnd; hWnd=GetForegroundWindow(); hWnd=FindWindowEx(hWnd,NULL,"EDIT",NULL); SendMessage(hWnd,WM_SETTEXT,0,(LPARAM)"Hello"); return 0; } でも、これだと、 インターネットエクスプローラーのテキストボックスに 文字列を流し込めないのですが、 どうすればいいですか? VisualBasic.NETのSendKeyでは可能ですが、 どういう仕組みですか?
お礼
ありがとうございます。 できました。