tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
他のアプリのウィンドウが最大化されているかどうかを取得する(VB.NET) ( No.0 )  [親スレッドへ]
日時: 2013/01/25 14:37
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[他のアプリ関係][][]                                                *
* キーワード:IsZoomed,指定されたウィンドウが最大化されているかどうかを調べます  *
***********************************************************************************
タイトル : ノートバッドの最大化を取得する
記 事 No : 11004
投 稿 日 : 2013/01/11(Fri) 09:59
元質問者 : 佐藤hs  
-----------------------------------------------------------------------------------
ノートバッドが最大化しているかを取得したいのですが、下のコードを実行すると
ノートバッドが起動していれば、最小化していても、最大化されていますと表示されます。
-----------------------------------------------------------------------------------
記事No : 10992
投稿日 : 2012/12/13(Thu) 23:02
回答者 : VBレスキュー(花ちゃん)  
-----------------------------------------------------------------------------------
>   Declare Function IsZoomed Lib "user32" (ByVal hwnd As Long) As Long
    Declare Function IsZoomed Lib "user32" (ByVal hwnd As IntPtr) As Boolean
Win32 API の宣言が間違っているからです。

-----------------------------------------------------------------------------------

Imports System.Runtime.InteropServices

Public Class Form1

'指定されたウィンドウが最大化されているかどうかを調べます。
<DllImport("user32.dll", CharSet:=CharSet.Auto)> _
Private Shared Function IsZoomed( _
   ByVal hwnd As IntPtr) As Boolean
End Function

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
   'ローカル コンピュータ上で実行しているすべてのプロセスを取得
   Dim localProcAll As Process() = Process.GetProcesses()
   Dim p As Process
   Dim frg As Boolean = False
   For Each p In localProcAll
      'その中から指定のアプリを探す場合
      If p.ProcessName = "notepad" Then
         frg = True
         Dim ret As Boolean
         ' IsZoomedの引数にウインドウハンドルを指定する
         ret = IsZoomed(p.MainWindowHandle)
         If ret = True Then
            MessageBox.Show("最大化されています")
         Else
            MessageBox.Show("最大化されていません")
         End If
      End If
   Next
   If frg = False Then
      MessageBox.Show("メモ帳が起動していません。再度取得し直して下さい。")
   End If
End Sub

End Class



 [スレッド一覧へ] [親スレッドへ]