مشاهده نسخه کامل
: غیر فعال کردن always on top یه برنامه دیگر
kiuhnmgtrdcv
27-04-2009, 19:36
سلام به همه
من یه برنامه رو سیستم نصب کردم که همیشه always on top هست و برنامه نویسش یه جوری اینو تنظیم کرده که این خصوصیت نمیشه تغییر داد! (خیلی اذیت میکنه یه چیزی هست که همیشه هم باید رو سیستم در حال اجرا باشه)
خواستم ببیننم میشه برنامه ای نوشت که خاصیت always on top بودن این برنامه رو غیرفعال کنه ؟ برای این کار به چه چیزی نیاز داریم ؟ ایده ای ندارید
لطفا اگر کدی میخواین بذارید ترجیحا با سی شارپ باشه مرسی
سلام
کافی است از دو api از کتابخانه user32 استفاده کنید.
اول باید از FindWindow و دادن فرم و یا بهتر از آن دادن classname استفاده کنید و سپس باید از SetWindowPos با عدد 2- استفاده کنید.
msdn.microsoft.com/en-us/library/ms633499.aspx
msdn.microsoft.com/en-us/library/ms633545.aspx
kiuhnmgtrdcv
28-04-2009, 09:52
سلام h2 جان دستت درد نکنه یه مدت ندیده بودمت دلم برات تنگ شده بود :31:
من به یه جاهایی رسیدم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدالان تو اینجا برنامه Notepad پیدا میکنه حالا فرض کنید بجای notepad برنامه X همیشه always on top هست چطوری این خصوصیت top بودنشو ازش بگیریم ؟ بعدش من نفهمیدم کجای setWindowPos
-2 بذارم تو اینترنت هم sample از این api کم پیدا میشه
یکی اینجا پیدا کردم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید ولی هنگام اجرا کردن ایراد میگیره لطفا یه مثال از setWindowPos بذارید
در کد بالا
lpWindowName که همون caption پنجره برنامه است ، lpszParentClass تابع FindWindow از کجا پیدا کنیم ؟
سلام و خسته نباشید.
شما باید از همان دو API استفاده کنید... بالاترین مرجع اطلاعاتی همان لینک های msdn است که داده بودم.
معرفی دو API چنین است:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد لازم هم فقط و فقط یک خط ناقابل است!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد اول بر اساس Caption فرم کار میکند (همان متنی که در بالای فرم دیده میشود.)
کد دوم بر اساس ClassName فرم کار میکند که یک مقدار اختصاصی و ویژه است.
(اگر به جای 2- عدد 1- را قرار دهید فرم TopMost میشود، یعنی برعکس چیزی که خواسته اید، میتوانید روی همین notepad تست کنید.)
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.