PDA

View Full Version : بستن پنجره جاری در windowse



abbas.net
دوشنبه 28 خرداد 1386, 17:21 عصر
با سلام خدمت دوستان.
من اصلا c++,c کار نکردم.یک خواهش از دوستان خوبم دارم.یک کد exe شده می خواستم که به وسیله اون پنجره فعال درون ویندوز را ببنده. مثلا 10 تا پنجره باز می کنم.و یکی رو فعال میکنم میخوام با زدن اون کد پنجره فعال بسته بشه. در ضمن تنها اطلاعاتی که از اون پنجره دارم اینه که اون پنجره فعال ویندوزه. با تشکر.

american_iran2006
دوشنبه 28 خرداد 1386, 23:29 عصر
سلام رفیق::

یک راهی که الان به ذهن من میرسه اینه که از خوده ویندوز کمک بگیری برای این کار ::

یعنی به وسیله دستوره سیستم یک دستوره کامندی رو اجرا کنی به اسم task list ... بعدش می تونی لیست برنامه های بازو ببنینی و با یک دستوره دیگه به اسم taskkill یک برنامه رو kill کنی

موفق باشی

kiani.mehdi
سه شنبه 29 خرداد 1386, 06:52 صبح
از وقفه ها هم میتونی استفاده کنی

abbas.net
یک شنبه 03 تیر 1386, 21:47 عصر
دوستان خوب من . کسی بلد نیست با توابع api کار کنه.لطفا کمک کنید .
جناب آفای مدیر سایت .لطفا کمک کن.

alireza643
شنبه 09 تیر 1386, 07:55 صبح
فکر میکنم توضیح بیشتری نیاز باشه. مثلا شما 10 تا پنجره باز میکنید این 10 تا پنجره مال رنامه خورتونه یا مال هر برنامه دیگه ای ممکنه باشه. ین موضوع رو معلوم کنید تا بیشتر بشه راهنمایی کرد.

abbas.net
سه شنبه 12 تیر 1386, 18:09 عصر
این پنجره ها همگی internet explorer هستند.شما توی ++c که نباید مشکلات ما رو داشته باشید.ببخشید بی ادبی کردم.

abbas.net
سه شنبه 12 تیر 1386, 18:51 عصر
یک سری کد توی help vfp ، دیدم اون رو براتون میزارم.ببینم میتونه بدردتون بخوره.C Code
اگه می تونید روش exe کردن این فایل رو هم یادم بدید.


#include <pro_ext.h>
FAR Ex(ParamBlk FAR *parm)
{
WHANDLE wh;
int row, col;
Rect r;
wh = _WOpen(2, 2, 20, 70, 0, WINDOW_SCHEME, (Scheme FAR *) 0,
WO_SYSTEMBORDER);
_WShow(wh);
_Execute("WAIT WINDOW 'Press any key to close window'");
_WClose(wh);
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) Ex, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

alireza643
چهارشنبه 13 تیر 1386, 07:38 صبح
اگر همه پنجره ها اینترنت اکسپلورر باشند یه راه که به ذهن من میرسه اینه که شما اول caption همه پنجره های فعال رو بخونی و بعد بررسی کنید ببینید عبارت Microsoft Internet Explorer توش وجود داره یا نه اگر بود برای اون پنجره یه Message بفرستید تا بسته بشه.

abbas.net
چهارشنبه 13 تیر 1386, 13:26 عصر
چه جوری؟ لطفا راهنمایی کنید.

alireza643
چهارشنبه 13 تیر 1386, 15:34 عصر
درباره FindWindow() , SendMessage() تو MSDN یه سرچ بکنید مطلب زیاد داره.

www2006
چهارشنبه 13 تیر 1386, 18:53 عصر
در ضمن تنها اطلاعاتی که از اون پنجره دارم اینه که اون پنجره فعال ویندوزه.
برای بستن پنجره فعال ویندوز میتونی از این کد توی برنامت استفاده کنی :

SendMessage(HWND(GetActiveWindow),WM_CLOSE,0,0);

پ.ن : این یکی از API های خود ویندوزه ، توی تمام زبانهای برنامه نویسی میشه ازش استفاده کرد ( من با دلفی تستش کردم )