ايران ويج

نسخه‌ی کامل: چطور از طریق برنامه A بفهمیم برنامه B در حال اجراست؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام.
مشکل این جاست که شما سوال رو درست مطرح نمیکنید.

شما اصلا نیازی به 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
صفحه‌ها: 1 2