با سلام
آقای آذیش این تابعی که گفته بودین فقط وقتیکه برنامه رو با وی بی اجرا میکردم اونم وقتیکه فوکوس رو به خود وی بی برمیگردوندم جواب میداد!
(یعنی تنها در این حالت فوکوس رو دوباره به برنامه تحت اجرا برمیگردوند؟؟؟)
اما وقتیکه با برنامه های دیگه کار بکنم و فوکوس و به اونا بدم و یا برنامه رو وقتیکه EXE شده اجرا کنم دیگه این تابع SetFocus عمل نمیکنه؟
آیا کار خاص دیگه ای رو هم باید انجام بدم؟
اینم کدی که من استفاده کردم:
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Private Declare Function SF Lib "user32.dll" Alias "SetFocus" (...) As Long
Private Sub Timer1_Timer()
If Me.hWnd <> GetForegroundWindow() Then SF(Me.hWnd)
End Sub
این تایمر, هر یک دهم ثانیه چک میکنه که آیا فوکوس در اختیار برنامه هست یا نه که در صورت نداشتن فوکوس با تابع SetFocus, فوکوس رو به برنامه میده!!!!
اما همونطور که گفتم عملا درست جواب نداد؟