- 日時: 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
|