開発環境:
Windows10 Pro
Visual Studio Community 2019
開発言語:
VB.NET FrameWork4.7.2

まだ、梅雨なのに朝から暑かった。
ミーは一日エアコンの中だから、いいけど。
帰った時、ミー部屋は涼しかったので、思わず寝そうになった。
ミーは夕方涼しくなってから、お散歩に・・・。


外部アプリがどんな状態であってもアクティブ化しないといけないアプリの開発を受けてしまいました。
起動やアクティブ化は.NETで実現可能ですが、最小化されているかどうかの判断と最小化されている場合、元のサイズに戻す処理には、Windows APIを使う必要がありました。

    '''API宣言
    <dllimport("user32.dll")>
    Private Shared Function SetForegroundWindow(hWnd As IntPtr) As <marshalas(unmanagedtype.bool)> Boolean
    End Function

    <dllimport("user32.dll")>
    Private Shared Function IsIconic(hWnd As IntPtr) As <marshalas(unmanagedtype.bool)> Boolean
    End Function

    'アイコン化されたウィンドウのサイズと位置を直前の状態に戻す(P96)
    <dllimport("user32.dll")>
    Private Shared Function OpenIcon(ByVal hWnd As Long) As Long
    End Function

    '''操作部
    'すべてのプロセスを列挙する
    Dim Ret As Boolean = False
    For Each p As System.Diagnostics.Process In
    	System.Diagnostics.Process.GetProcesses()
        '"Google Chrome"がメインウィンドウのタイトルに含まれているか調べる
       	If 0 <= p.MainWindowTitle.IndexOf("Google Chrome") Then
        	Dim retValue As Long
            '最小化されているか調査
            retValue = IsIconic(p.MainWindowHandle)
            If retValue Then
            	'最小化の状態なら元のサイズに戻す
                retValue = OpenIcon(p.MainWindowHandle)
          	End If
            'ウィンドウをアクティブにする
            SetForegroundWindow(p.MainWindowHandle)
            Ret = True
            Exit For
     	End If
    Next
    If Ret = False Then
    	Dim p As System.Diagnostics.Process =
        	System.Diagnostics.Process.Start("chrome.exe")
    End If

Debug時には、動作が不安定になる旨メッセージは出ますが、
動くには動きます。