PDA

View Full Version : On Top



.:KeihanCPU:.
دوشنبه 13 خرداد 1387, 12:45 عصر
سلام دوستان
اگه کد زیر رو در برنامتون داشته باشد برنامه شما همیشه On top خواهد بود.

Option Explicit
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
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 Function SetTopMostWindow(hwnd As Long, Topmost As Boolean) _
As Long
If Topmost = True Then 'Make the window topmost
SetTopMostWindow = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
Else
SetTopMostWindow = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
SetTopMostWindow = False
End If
End Function


Private Sub Form_Load()
Dim lR As Long
lR = SetTopMostWindow(Form1.hwnd, True)
End Sub


ولی یه سوال:آیا تا بحال دیدید که یه برنامه یا یک پنجره روی TaskManager قرار بگیره؟
سوال من اینه که با چه کدی میشه برنامه رو روی Taskmanager هم قرار داد؟

Mbt925
دوشنبه 13 خرداد 1387, 13:06 عصر
با همین کدی که گفتین میشه !!!

.:KeihanCPU:.
دوشنبه 13 خرداد 1387, 14:35 عصر
دوست عزیز من اینکارو کردم پس چرا نمیشه؟

مهران رسا
دوشنبه 13 خرداد 1387, 15:45 عصر
به دلیل اینکه Task Manager هم خاصیت ON TOP داره وقتی پنجره برنامه شما ON باشه و روی Task Manager کلیک کنید پنجره برنامه شما زیر Task Manager قرار میگیره !

و برای اینکه پنجره برنامتون به صورت همیشگی ON TOP بشه . می تونید SetTopMostWindow(Form1.hwnd, True) رو در یک Timer بنویسید . (که عواقب بدی رو هم به دنبال داره)

Mbt925
دوشنبه 13 خرداد 1387, 17:01 عصر
پنجره های معمولی رو درنظر بگیرید:
هر کدوم که دیرتر نمایش داده بشن ، جلوتر قرار می گیرن.

در مورد پنجره های ONTOP هم همین طوره.

اول Task Manager رو بیارید وبعد برنامه ی خودتون رو.

هر کدوم که دیرتر OnTop شده باشه ، جلوتر قرار می گیره.

.:KeihanCPU:.
دوشنبه 13 خرداد 1387, 23:47 عصر
اول Task Manager رو بیارید وبعد برنامه ی خودتون رو.

هر کدوم که دیرتر OnTop شده باشه ، جلوتر قرار می گیره.
====================================
فکر کنم اشتباه میکنید
من که اینکارو میکنم برنامم پایین تر از Tskmgr قرار میگیره

مهران رسا
سه شنبه 14 خرداد 1387, 08:57 صبح
فکر کنم اشتباه میکنید
من که اینکارو میکنم برنامم پایین تر از Tskmgr قرار میگیره

ببینید این اشکال موقعی رخ میده که پروژه رو از IDE ویژوال بیسیک اجرا کرده باشید .

برنامه رو کامپایل کنید و بعد فایل exe رو امتحان کنید . :چشمک:

.:KeihanCPU:.
سه شنبه 14 خرداد 1387, 13:21 عصر
ببینید این اشکال موقعی رخ میده که پروژه رو از IDE ویژوال بیسیک اجرا کرده باشید .

برنامه رو کامپایل کنید و بعد فایل exe رو امتحان کنید
-----------------------------------------------------------
همون فایل Exe رو میگم نمیشه,شما خودت یه بار امتحان کن.

مهران رسا
چهارشنبه 15 خرداد 1387, 10:53 صبح
نمی دونم مشکل شما چیه ! :متفکر: