在Visual Basic中是否有办法让我的应用程序窗口相对于另一个正在运行的.EXE的位置?
我想拍摄我的Windows'右侧是另一侧的左侧。
答案 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或其他技术来验证窗口位置。