在VB中相对于另一个应用程序设置窗口位置

时间:2014-02-25 11:34:13

标签: vb.net

在Visual Basic中是否有办法让我的应用程序窗口相对于另一个正在运行的.EXE的位置?

我想拍摄我的Windows'右侧是另一侧的左侧。

1 个答案:

答案 0 :(得分:2)

您可以使用GetWindowRect

  

检索指定的边界矩形的尺寸   窗口。

然后:

Public Class Form1

    ''' <summary>
    ''' Retrieves the dimensions of the bounding rectangle of the specified window. 
    ''' </summary>
    <System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint:="GetWindowRect")>
    Shared Function GetWindowRectangle(
           ByVal [Handle] As IntPtr,
           ByRef [Rectangle] As Rectangle
    ) As Boolean
    End Function

    Private Shadows Sub Load() Handles MyBase.Load

        Dim rect As New Rectangle
        Dim hwnd As IntPtr = Process.GetProcessesByName("notepad").First.MainWindowHandle

        GetWindowRectangle(hwnd, rect)

        Me.Location = New Point(rect.X - Me.Height, rect.Y)

    End Sub

End Class

如果您想在外部进程移动/调整大小时保持位置,则可以添加Timer或其他技术来验证窗口位置。