1

外部exe(メモ帳など)から外部ウィンドウを開き、事前定義されたサイズと位置に移動してサイズを変更する必要があります。

MoveWindow API を使用しようとしていますが、機能していないようです。Windows 8 x64 と VS2012 を使用しています。

これが私のコードです:

    <DllImport("user32.dll")> _
Public Function MoveWindow(ByVal hWnd As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Boolean) As Boolean
End Function

Public Sub NoveNotepad()
    Dim ApplicationProcess = System.Diagnostics.Process.Start("Notepad.exe")
    ApplicationProcess.WaitForInputIdle()
    Dim ApplicationHandle = ApplicationProcess.MainWindowHandle
    Dim z = MoveWindow(ApplicationHandle, 600, 600, 600, 600, True) ' THIS RETURNS TRUE
End Sub
4

1 に答える 1

0

代わりに SetWindowPos() を使用できますか? MoveWindow() が機能しない理由がわからない...

Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" _
    (ByVal hwnd As IntPtr, ByVal hWndInsertAfter As Integer, _
    ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, _
    ByVal wFlags As Integer) As Integer

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim ApplicationProcess = System.Diagnostics.Process.Start("Notepad.exe")
    ApplicationProcess.WaitForInputIdle()

    Dim ApplicationHandle = ApplicationProcess.MainWindowHandle
    SetWindowPos(ApplicationHandle, 0, 600, 600, 600, 600, 0)
End Sub
于 2013-10-30T16:07:06.320 に答える