Я провел некоторое исследование на основе Таруна Лалвани информации , и это то, что сработало для меня,
Добавьте Timer
к форме и используйте этот код,
Option Explicit
Private Declare Function FindWindow1 Lib "User32" Alias "FindWindowA" (ByVal lpclassname As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_HWNDPARENT = -8
Private parenthwnd As Long
Private strTitle As String
Public Function FindWindowHandle(Caption As String) As Long
FindWindowHandle = FindWindow1(vbNullString, Caption)
End Function
Private Sub Form_Load()
On Error Resume Next
strTitle = "Untitled - Notepad"
With Timer1
.Interval = 2000
.Enabled = True
End With
End Sub
Private Sub Timer1_Timer()
If FindWindowHandle(strTitle) <> 0 Then
Timer1.Enabled = False
parenthwnd = 0
parenthwnd = FindWindow1(vbNullString, strTitle)
Dim R As Long
R = SetWindowLong(parenthwnd, GWL_HWNDPARENT, Me.hWnd)
End If
End Sub
Когда Блокнот открыт, он будет родительским для этой формы.
Предупреждение: Я установил свойства формы на них,
MaxButton = False
MinButton = False
ShowInTaskbar = False
StartUpPosition = CenterScreen
WindowState = Maximized
Если вы задаете те же свойства, обязательно добавьте кнопку или любой другой метод для закрытия формы. В противном случае форма будет наверху, и ее может быть сложно закрыть.