ورود

View Full Version : نمایش نرمال یک پنجره با API



AliReza Vafakhah
یک شنبه 26 مهر 1388, 05:19 صبح
سلام دوستان

تابع API ای که بتونه برنامه ای که در system tray در حالت background قرار گرفته رو به حالت نرمال درآورد و پنجره رو نمایش دهد و پنچره Active شود چیست ؟

با تشکر

babakmomeni
یک شنبه 26 مهر 1388, 08:39 صبح
سلام دوستان

تابع API ای که بتونه برنامه ای که در system tray در حالت background قرار گرفته رو به حالت نرمال درآورد و پنجره رو نمایش دهد و پنچره Active شود چیست ؟

با تشکر

سلام. تابع مورد نظر شما shell_notifyicon هستش که واضحه برای استفاده از اون، یونیت shellapi رو باید به لیست یونیت های برنامه اضافه بفرمایین. توضیح پارامترها و برگشتی تابع رو می تونین winSDK help دلفی استخراج بفرمایین. این تابع بسته به پارامترهای ارسالی آیکون را ایجاد/تغییر/حذف می کند. برای فعال کردن و قرار دادن پنجره روی همه پنجره ها هم تابع setforgroundwindow رو به کار بگیرید.
پیروز باشید

AliReza Vafakhah
یک شنبه 26 مهر 1388, 21:09 عصر
دوست عزیز babakmomeni ممنون

مشکل من اینه که حالا می خوام بین آیکن های موجود System Tray یک آیکن (بهتره بگم برنامه) رو جستجو کنم مثلا نرم افزار Clone CD

در رابطه با تابع Shell_NotifyIcon هم تحقیق کردم پارامتر دوم این تابع از نوع NOTIFYICONDATA اما نمی دونم با چه تابع ای می تونم چنین داده ای رو از خروجی بگیرم ؟

با تشکر

babakmomeni
دوشنبه 27 مهر 1388, 10:14 صبح
سلام. دوست گرامی، من سوال شما رو درست متوجه نشده بودم؛ ظاهرا منظور شما ارسال پیامها به یک برنامه دیگه هستش که من سعی می کنم روش کار کنم و اگه به نتیجه رسیدم در خدمتتون هستم.
پیروز باشید

babakmomeni
دوشنبه 27 مهر 1388, 11:51 صبح
سلام. کد زیر به طور مثال پنجره گوگل تاک رو از حالت هاید در میاره. تست کنین ببینین همونیه که می خواین.


var hw: hwnd;
begin
hw:=FindWindow(nil,'google talk');
ShowWindow(hw,SW_RESTORE);
end;

پیروز باشید.

AliReza Vafakhah
دوشنبه 27 مهر 1388, 13:16 عصر
تشکر آقای babakmomeni

مشکل من اینه که نرم افزار پنجره در حالت minimize نداره ، و یه منو داره که اگه روی یکی از گزینه هاش کیلیک بشه پنجرش باز میشه

حالا باید از بین آیکن ها system tray پیداش کنم و بعد ببینم چه طوری می تونم پنجرش رو باز کنم

با تشکر

babakmomeni
دوشنبه 27 مهر 1388, 13:32 عصر
تشکر آقای babakmomeni

مشکل من اینه که نرم افزار پنجره در حالت minimize نداره ، و یه منو داره که اگه روی یکی از گزینه هاش کیلیک بشه پنجرش باز میشه

حالا باید از بین آیکن ها system tray پیداش کنم و بعد ببینم چه طوری می تونم پنجرش رو باز کنم

با تشکر

توی همون کد تابع findwindow کار پیدا کردن رو انجام میده و هندل اون پنجره رو برمیگردونه. گوگل تاک هم دقیقا همین حالت رو داره یعنی مینیمایز نداره. شما اسم اون پنجره رو جای گوگل تاک بذار باید کار کنه. اگه نشد بازم با هم روش کار می کنیم تا بشه... کار نشد نداره عزیز

AliReza Vafakhah
شنبه 02 آبان 1388, 01:59 صبح
دوست عریز ممنون

پنجره ای که من می خوام به حالت نرمال در بیارم پنجره Connection Status ویندوز هست