C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.65239 の関連記事表示

<< 0 >>
■65239  【VB2005】デバッグ時のFindWindowについて
□投稿者/ コンバート後に悩む人 -(2013/02/14(Thu) 18:42:31)

    分類:[VB.NET/VB2005 以降] 

    VB2005
    .net framework sp2

    VB2005で作成したA画面とB画面を同時にデバッグ実行した場合に
    WinAPIのFindWindow関数でプロセス存在確認をしたところ
    戻り値がゼロになるのですが、デバッグ実行時はハンドルが取得できないのでしょうか。

    よろしくお願いします。

    ・B画面デバッグ実行中(フォーム起動してるのみ程度の画面)
    ・A画面から以下をステップ実行でhwndをみると、ゼロが返却されてしまう。

    hwnd = FindWindow(Nothing, "B画面")
親記事 /過去ログ110より / 関連記事表示
削除チェック/

■65242  Re[1]: 【VB2005】デバッグ時のFindWindowについて
□投稿者/ コンバート後に悩む人 -(2013/02/14(Thu) 20:44:35)
    じゃんぬさんのサイトを参考に、以下のコードで実現はできたのですが、
    実行時、デバッグ実行時にFindWindowだと取得できる場合、できない場合があるようですが
    こういう仕様なのでしょうか。
    お分かりになる方、おられましたらよろしくお願いします。

    ' 実行中のすべてのプロセスを取得する
    Dim hProcesses As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
    Dim stPrompt As String = String.Empty

    ' 取得できたプロセスからプロセス名を取得する
    For Each hProcess As System.Diagnostics.Process In hProcesses
    If Strings.InStr(1, hProcess.ProcessName, strProsessName) > 0 Then
    getFindWindow = hProcess.Handle
    Exit For
    End If

    Next hProcess

記事No.65239 のレス /過去ログ110より / 関連記事表示
削除チェック/

■65245  Re[1]: 【VB2005】デバッグ時のFindWindowについて
□投稿者/ 魔界の仮面弁士 -(2013/02/15(Fri) 02:13:18)
記事No.65239 のレス /過去ログ110より / 関連記事表示
削除チェック/

■65251  Re[2]: 【VB2005】デバッグ時のFindWindowについて
□投稿者/ コンバート後に悩む人 -(2013/02/15(Fri) 09:48:10)
    No65245 (魔界の仮面弁士 さん) に返信
    > 試していませんが、Visual Studio ホストプロセスを無効化してみてはどうでしょう。
    > もしかしたら、*.vshost.exe が何か邪魔をしてしまうのかも。
    > http://www.atmarkit.co.jp/fdotnet/dotnettips/410vshost/vshost.html
    > http://bbs.wankuma.com/index.cgi?mode=al2&namber=62203&KLOG=104

    言葉足らずでしたすみません。上記のことは試してみました。

    フォームにボタンを配置し、FindWindowを実行するだけのプログラムを作成し
    もう一方のフォームは何も配置せずにホストプロセスを無効化のみ
    プロジェクト作成時からのデフォルト設定を変えた状態で実行しました。

    そのときのタスクマネージャは、
    WindowsApplication1.exe
    WindowsApplication2.exe
    と見えていますが、FindWindowを実行するとゼロが返ってくる状況です。

    ホストプロセスを無効化すると
    WindowsApplication1.vshost.exe
    WindowsApplication2.vshost.exe
    とタスクマネージャには見えていますが、実行結果は同じです。

    ※FindWindowの宣言はSendMessageのスレッドと同じ宣言しています。

    dim hwnd as IntPtr
    hwnd = FindWindow(Nothing, "WindowsApplication2")

記事No.65239 のレス /過去ログ110より / 関連記事表示
削除チェック/

■65260  Re[3]: 【VB2005】デバッグ時のFindWindowについて
□投稿者/ コンバート後に悩む人 -(2013/02/15(Fri) 13:27:18)
    FindWindowに渡すべき値は、EXE名だとてっきり思っていましたが、
    フォーム名を渡すのですね。(迂闊でした・・・)
    
    dim hwnd as IntPtr
    hwnd = FindWindow(Nothing, "フォーム名")
    
    お騒がせしました。
    
    
    
記事No.65239 のレス / END /過去ログ110より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -