> 2重起動をチェックして、 > 既に起動しているならアクティブにするには? > (最小化の時は、デフォルトのサイズにする)
お久しぶりです、OTKさん。
とりあえず半分だけお答えします。
'以下フォーム Option Explicit
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const APP_CAPTION = "UzApplication"
Private Sub Form_Load() Dim nRet As Long 'hWndが入る Me.Caption = "DUMMY_CAPTION" 'ダミーをいれておかないと自分を検出してしまいます If App.PrevInstance = -1 Then nRet = FindWindow(vbNullString, APP_CAPTION) '検出できればhWndを返す Call SetForegroundWindow(nRet) 'ウィンドウをアクティブにする End End If Me.Caption = APP_CAPTION End Sub '以上 これでアクティブにはできます。 あと、最小化のときはもとのサイズに戻すのは ハンドルがわかっているので簡単だと思います。 では。
|