http://www.hatena.ne.jp/1121507757#
人力検索はてな - WindowsのアプリケーションをBorland C++ Builder で開発しています.本アプリケーションと同時にInternet Explorerを起動させておき、本アプリケーションからInteret Explo..
sendkeysでF5送るとか
http://www.hatena.ne.jp/1121507757
人力検索はてな - WindowsのアプリケーションをBorland C++ Builder で開発しています.本アプリケーションと同時にInternet Explorerを起動させておき、本アプリケーションからInteret Explo..
PostMessageを使い、WM_KEYDOWNでVK_F5をIEに送信したところ、上手くいきました。
以下、サンプルとして載せて起きます。
ドラッグした先のウィンドウにVK_F5を送信するようなプログラムの一部分です。
case WM_LBUTTONUP:
POINT point;
HWND targetWindow;
ReleaseCapture();
GetCursorPos(&point);
targetWindow = WindowFromPoint(point);
PostMessage(targetWindow, WM_KEYDOWN, VK_F5, 0);
return 0;
ありがとうございます!もう少し、詳しく質問させてください。
本アプリケーションは、自動的にインターネット上のファイルを定期的にチェックし、ファイルが更新されている場合、Internet Explorerで表示させているページを自動的に更新させる、という仕様にしたいのです。
ご教授いただいたプログラムに、「自動で起動させているIEを更新させる」という機能を付けるには、どのようにすればよろしいでしょうか?
よろしくお願いします!
「自動で起動させているIEを更新させる」というのは、どういう状態の事でしょうか。
現在起動しているすべてのIEのウィンドウハンドルを取得できれば良いのなら、例えば、、
EnumWindows関数を用いて、トップレベルウィンドウを全て取得し、それぞれのクラス名をGetClassName関数で取得してから、”IEFrame”(InternetExplorerのトップウィンドウのクラス名がこれでした。)と比較して・・・、
などでどうでしょうか。
・・・、なんか、ややこしいですが、ちょっとすぐにはこれが限界でした。^^;
もしかしたら、もっといい方法があるかもしれません。
IEのウィンドウが一つだけなら、FindWindowで探せるのですが。。
「自動的にインターネット上のファイルを定期的にチェックし、ファイルが更新されている場合」のチェックは別の方法で良いですね。何かいいライブラリがあるかもしれませんし、なかったら、WinSockなどで自力で・・・、でしょうか。
ちなみに、、もしかしたら、COMを用いればもっとスムーズに出来るかもしれません。
参考までに、VBScriptを用いて、IEを開き、はてなの質問一覧を開いたあと、10秒毎にリロードするものを書いてみました。(VBSやWSHはちゃんと知らないのでめちゃくちゃかも^^;)
[sample.vbs]
Dim objIE
Set objIE = CreateObject(”InternetExplorer.Application”)
objIE.Visible = True
objIE.Navigate(”http://www.hatena.ne.jp/list”)
Do While True
WScript.Sleep(10000)
objIE.Refresh()
Loop
[EOF]
2度目ですので、これでラストになります。
失礼しました。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | tonolove | 158回 | 138回 | 0回 | 2005-07-18 10:38:27 |
ありがとうございます!
ちなみに、Borland C++ Builderで、VBの「sendkeys」に相当するものはありますでしょうか。