• ベストアンサー

VisualBasic.NETのSendKeyをVisual C++で実現したいのですが。

VisualBasic.NETでは SendKeys.Send("Hello") を実行すればメモ帳でもインターネットのテキストフレームにでも文字列を送り込むことはできますが、(フォームを隠しておきますが、、、)、 VisualC++ではどのAPI等を使えば、 まったく同じ機能を果たすことができますか? よろしくお願いします。 VisualC++ Win32アプリケーション WindowsXPです。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

keybd_eventか、SendInput

noname#16581
質問者

お礼

ありがとうございます。 できました。

その他の回答 (2)

回答No.3

確認するとSendMessageでテキストボックスへのデータ送信は可能でしたが、もとの質問の > VisualC++ではどのAPI等を使えば、 > まったく同じ機能を果たすことができますか? これに関するクリティカルな答えは#2氏の言われる通りであることと、SendInputをやめてSendMessageにする積極的な理由は無さそうですね。 # SendInputが駄目とするならSendMessageも駄目とすべきかと思うので >VisualBasic.NETのSendKeyでは可能ですが、 >どういう仕組みですか? SendKeysはキー入力なんで HelloはH,l,l,oとkey入力されたことになります。 仕組み=内部処理として言われているなら確かめていません。

回答No.1

SendMessageやPostMessageで可能かと思いますが

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cwnd.3a3a.sendmessage.asp
noname#16581
質問者

補足

こんな感じのことでしょうか? #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では可能ですが、 どういう仕組みですか?

関連するQ&A