タイトル | : Re: アクティブなウィンドウの最大化 |
記事No | : 6325 |
投稿日 | : 2007/09/18(Tue) 20:27 |
投稿者 | : 花ちゃん |
> AppActivate 関数で指定したアプリケーション 上記をどのように起動したかでも方法が違ってきますが、簡単な方法は無いかも 知れません。
SendKeysクラスのSendメソッド を使って、 ALT キー + Space キー + X キー が 送れれば簡単なのですが、Space キー が...。
後は、Win32 API 関数を使ってゴリゴリ書くしかないかも。
Public Class Form1 <System.Runtime.InteropServices.DllImport("USER32.DLL", _ CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _ Private Shared Function SendMessage( _ ByVal hWnd As IntPtr, _ ByVal wMsg As Int32, _ ByVal wParam As Int32, _ ByVal lParam As Int32) As Int32 End Function <System.Runtime.InteropServices.DllImport("user32.dll", _ CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _ Private Shared Function FindWindow( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As IntPtr End Function
Private Const WM_SYSCOMMAND As Integer = &H112 Private Const SC_MAXIMIZE As Integer = &HF030 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim hwnd As IntPtr Dim ret As Integer Dim title As String title = "無題 - メモ帳" AppActivate(title) hwnd = FindWindow(vbNullString, title) ret = SendMessage(hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0) End SubEnd Sub End Class
|