سلام
1- تو vb.net با topmost می شه فرم رو همیشه بالایه بقیه پنجره ها گذاشت و هیچ وقت زیر هیچ پنجره نره ولی تو vb6 چه طور باید این کار رو کرد ؟
2-چه طور میشه processes برنامه رو تو task manager مخفی کرد ؟
Printable View
سلام
1- تو vb.net با topmost می شه فرم رو همیشه بالایه بقیه پنجره ها گذاشت و هیچ وقت زیر هیچ پنجره نره ولی تو vb6 چه طور باید این کار رو کرد ؟
2-چه طور میشه processes برنامه رو تو task manager مخفی کرد ؟
سلام
جواب:
1- با استفاده از توابع API ميتوني اينكارو بكني. اسم تابع هم اينه : SetWindowPos
2- من يه سورس براش دارم ولي الآن حوصله ندارم آپلودش كنم. ولي اگه بگردي (توي همين انجمن سرچ كن) حتما پيدا ميكني.
من از این API استفاده کردم ولی فقط رو فرم های vb6 کار میکنه مثلا رو پنجره mycomputer کار نمیکنهنقل قول:
1- با استفاده از توابع API ميتوني اينكارو بكني. اسم تابع هم اينه : SetWindowPos
می حوام رو همه پنجره ها کار کنه
شما بايد به جاي مقدار hWndInsertAfter عدد 1- رو قرار بديد تا اون فرم روي همه پنجرهها قرار بگيره
ممنون از این که جواب دادی ببین این طوری از این API استفاده کردم
ببین کحاش اشکال داره به هم بگوکد:Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Form_Activate()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
نميدونم مشكلش از كجاست.
من الان تست كردم. اولش درست بود، بعد كه پنجره MyComputer رو Restore Down كردم رفت پشتش.
بجاي Activate از Load استفاده كن. احتمالا درست بشه.
داشتم دنبال مشکلم میگشتم که یه source رو دیدم خیلی جاب بود
میزارم اینجا
ولی این vb6 واقعا در پیته :2:کد:Option Explicit
Private Const HWND_BOTTOM = 1
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOP = 0
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Sub MakeWindowAlwaysTop(hwnd As Long)
SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
End Sub
Private Sub MakeWindowNotTop(hwnd As Long)
SetWindowPos hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
End Sub
Private Sub Timer1_Timer()
MakeWindowAlwaysTop Me.hwnd
End Sub
از شما هم ممنون که جواب من رو دادین:10: