DOBON.NET DOBON.NETプログラミング掲示板過去ログ

別のウインドウを閉じたい

環境/言語:[VisualStudio 2003 WindowsXP SP1]
分類:[.NET]

VB.Net初心者です。電卓などの画面を
VB.Netで作成した画面で閉じたいのですが
なかなかうまくできません。

hwindow = FindWindowA(vbNullString, "閉じたいウインドウタイトル")
SetForegroundWindow(hwindow)
System.Windows.Forms.Form.ActiveForm.Close()

上記の様にしてハンドルはFindWindowで取得できているのですが
閉じ方がおかしい為かうまくクローズできません。
アドバイスをよろしくお願いします。
こんにちは、じゃんぬねっと です。

> 別のウインドウを閉じたい

正しくは「別のアプリケーションのウィンドウを閉じたい」ですね。

■No10065に返信(しまださんの記事)
> hwindow = FindWindowA(vbNullString, "閉じたいウインドウタイトル")
> SetForegroundWindow(hwindow)
> System.Windows.Forms.Form.ActiveForm.Close()

おかしなことやってますね。(ラスト 2 行)

API である FindWindow を使っても良いですが、
通常は Process クラスから探します。
http://jeanne.wankuma.com/tips/process/05-getprocesses.html

終了はこんな感じでやります。
http://jeanne.wankuma.com/tips/process/12-closemainwindow.html

これらの合わせ技でやりましょう。(^-^*)

    For Each hProcess As Diagnostics.Process In Diagnostics.Process.GetProcesses()
        If hProcess.MainWindowTitle = "電卓" Then
            If hProcess.CloseMainWindow() = False Then
                hProcess.Kill()
            End If
        End If
    Next hProcess
できましたできました!!
ありがとうございます!
おかしなやり方していたんですね・・・。
どうもすみませんでした。
ほんとどうもありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板