سلام.
مشکل این جاست که شما سوال رو درست مطرح نمیکنید.
شما اصلا نیازی به PID ندارید. وقتی اسم پنجره جلوی چشم شماست گرفتن هندلش که نیازی به pid پروسه نداره.
این کد برای پرنت کردن خودت به پنجره about که باز میکردی.
پارامتر اول ShellAbout رو هم 0 بده که فرم خودت گیر نکنه. اگه هندل پنجره دیگه ای رو بدی اون پنجره قفل میشه تا این پنجره بچه بسته شه.
کد:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hWnd As Long) As Long
Private Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hWnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long
Private Sub Command1_Click()
ShellAbout 0, "Payman", vbNullString, ByVal 0&
End Sub
Private Sub Command2_Click()
SetMeParent "About Payman"
End Sub
Private Sub SetMeParent(WindowsCaption As String)
Dim hWnd As String
'Find Window
hWnd = FindWindow(vbNullString, WindowsCaption)
'Set the Window's parent
SetParent hWnd, Me.hWnd
'Put the focus on Window
Putfocus hWnd
End Sub