FC2ブログ
現役プログラマー村健の、投資に役立つプログラムを作るための勉強ブログです。 自動売買、システムトレードに挑戦!します。 勉強と習得の成果を記録です。
本ブログについて
本ブログは、プログラマー観点で投資への対費用効果を上げるために何ができるか?を考えていくブログです。
基本的には、ツール作成・公開、投資に関わるプログラム情報、最終的には 完全なる自動売買を目指しています。

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
昨日から挑んでました、ページへの自動ログイン問題ですが、
(セキュリティ警告ダイアログが表示されて、それ以降進めない)
何とか解決のめどは見えそうです。

うろ覚えの知識として、警告ダイアログに「OKボタンを押したぞ」
というメッセージを送信すればできる、という気がしていました。

そこで、これもうろ覚えだったのですが、Windowsのメッセージを
見ることができるツールで、MicrosoftVisualStudio6.0ツールの
spy++というのがあった事を思い出しました。

Spy++ は、ウィンドウ クラス、スタイル、およびメッセージなどのWin32 の情報を表示します。

まず、インターネットエクスプローラーが何のプロセス名で起動しているかを調べました。
これはタスクマネージャを起動して、プロセスタブを見ます。
すると、iexploreというプロセスが起動しています。
試しにこのプロセスを終了させてみると、
インターネットエクスプローラーが終了しましたので、
これで確定です。
spy++で、IEのプロセスを開くと、iexploreがありました。
その中で警告ダイアログのウィンドウがありましたので、
メッセージを監視に設定して、
例の警告ダイアログをOK押してみました。
すると、
WM_COMMAND wNotifyCode:BN_CLICKED wID;IDYES hwndCtl:000306C0
が送られていることがわかりました。

次にネットで調べ、数あるプロセスからIEのプロセスを検出する方法
を見つけました。



Dim ps() As System.Diagnostics.Process = _
     System.Diagnostics.Process.GetProcesses()

'配列から1つずつ取り出す
Dim p As System.Diagnostics.Process

For Each p In ps
    If p.ProcessName = "iexplore" Or p.ProcessName = "IEXPLORE" Then

    End If
Next

IEが起動されていれば、上記のIF文中に入ります。

あと、該当するプロセスがPOPUPウィンドウを取得するのが
APIのGetLastActivePopupです。

このウィンドウに対して、spy++で求めたパラメータ
をSendMessageのAPIで送りました。

これで何とかOKで閉じてくれました。。。
まだわからずに使ってる処理がおおく、ベストのロジックではないのですが、
とりあえず動いています。
時間があるときにそれぞれの意味をくわしく調べてみます。

これを調べるのに3時間・・・よくやりますわ。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://investprogrammers.blog70.fc2.com/tb.php/29-0944f604
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。