PDA

View Full Version : سوال: چطوری برنامه های بیکار رو ببندم؟؟؟



kooroshekabir
چهارشنبه 28 بهمن 1388, 12:12 عصر
سلام دوستان
من خیلی تویه گوگل دنبال برنامه ای یا کدی گشتم که بتونه برنامه های بیکار رو بعد از یک تایم مشخص ببنده یا حداقل یک برنامه رو بعد از یک تایم بیکاری ببنده ولی فقط برنامه ها یا کد ها می تونستند برنامه رو ببندن و مدت زمان بیکاریشون رو نمیتونستن پیدا کنن.
کسی می تونه کمکم کنه؟؟؟
ممنون

mehdi.mousavi
چهارشنبه 28 بهمن 1388, 12:24 عصر
سلام دوستان من خیلی تویه گوگل دنبال برنامه ای یا کدی گشتم که بتونه برنامه های بیکار رو بعد از یک تایم مشخص ببنده یا حداقل یک برنامه رو بعد از یک تایم بیکاری ببنده ولی فقط برنامه ها یا کد ها می تونستند برنامه رو ببندن و مدت زمان بیکاریشون رو نمیتونستن پیدا کنن.
کسی می تونه کمکم کنه؟؟؟
ممنون

سلام.
برنامه بیکار و تعریف کنید! الان روی سیستم من، سرویس BITS بیکاره، اما ممکنه 10 دقیقه دیگه، کارش رو شروع کنه. شما هرگز نباید همچین کاری کنید، مگر اینکه بازای یک سرویس یا برنامه خاص اینکارو انجام بدید.

شما نمیدونید فلان Application که در حال حاضر IDLE هستش، ممکنه رسیدن Packet ای از رو شبکه برای شروع فعالیتش باشه. بنابراین نباید چنین Application ای رو حتی اگر IDLE باشه، Terminate کنید!

دقیقا بگید چیکار میخواهید انجام بدید، و به چه دلیل به این نیاز رسیده اید، تا در صورت امکان راه حل بهتری براش ارائه بدم.

موفق باشید.

kooroshekabir
چهارشنبه 28 بهمن 1388, 12:37 عصر
سلام آقا مهدی
راستش برنامه ای هست که با اتصال به یک شبکه (فکر کنم اینترنت) فایل می فرسته که این برنامه بعد از ارسال فایل و اتمام کار وصل می مونه و خط تلفن رو مشغول داره و هزینه های زیادی واسه شرکت داره واسه همین این برنامه رو می خواستم که اگر برنامه بیکار شد ببنددش چون این برنامه خودش دوباره شروع به فعالیت نمیکنه و حتما باید بهش دستوراتی داده بشه.
ممنون

mehdi.mousavi
پنج شنبه 29 بهمن 1388, 12:20 عصر
سلام آقا مهدی
راستش برنامه ای هست که با اتصال به یک شبکه (فکر کنم اینترنت) فایل می فرسته که این برنامه بعد از ارسال فایل و اتمام کار وصل می مونه و خط تلفن رو مشغول داره و هزینه های زیادی واسه شرکت داره واسه همین این برنامه رو می خواستم که اگر برنامه بیکار شد ببنددش چون این برنامه خودش دوباره شروع به فعالیت نمیکنه و حتما باید بهش دستوراتی داده بشه.
ممنون

سلام.
این برنامه رو کی نوشته؟ یک شرکت (یا فرد) معتبر، یا ...؟ در واقع میخوام بدونم برنامه Extensible هست یا خیر. چون ممکنه همین الان هم مکانیزمی برای چنین چیزی در درونش قرار داده باشن، و فقط کافی باشه Command ای رو بهش ارسال کنید.

سوال بعدی اینه که اگر فرض کنیم این برنامه Extensible نیست، آیا Driver ای با این برنامه نصب میشه؟ در واقع میخوام بدونم این برنامه Kernel Mode Handle ای داره یا خیر. چون اگر داشته باشه، Terminate کردنش میتونه سیستم رو به وضعیت "شکننده" ای ببره.

لطفا بیشتر و دقیقتر در مورد این برنامه توضیح بدید.

موفق باشید.

kooroshekabir
پنج شنبه 29 بهمن 1388, 14:29 عصر
راستش این برنامه مربوط میشه به بانک رفاه .بله این برنامه خودش تایمر داره ولی از خود تهران تایمرش داده میشه که خیلی زیاده این برنامه در حقیقت یک کانکشن dial-up میسازه و با اون وصل میشه به قسمت سرور خودش در تهران و در حقیقت من می خوام یک جوری از اینترنت خارجش کنم و هیچ ربطی به برنامه نداره که بخواد با خارج کردنش آسیبی به سیستم بزنه.
ممنون

mehdi.mousavi
پنج شنبه 29 بهمن 1388, 14:59 عصر
راستش این برنامه مربوط میشه به بانک رفاه .بله این برنامه خودش تایمر داره ولی از خود تهران تایمرش داده میشه که خیلی زیاده این برنامه در حقیقت یک کانکشن dial-up میسازه و با اون وصل میشه به قسمت سرور خودش در تهران و در حقیقت من می خوام یک جوری از اینترنت خارجش کنم و هیچ ربطی به برنامه نداره که بخواد با خارج کردنش آسیبی به سیستم بزنه.
ممنون

سلام.
بسیار خوب. پس برنامه ای داریم که بصورت Dial up به جایی متصل میشه و خودش درون خودش، Timer ای داره که ارتباط رو پس از Expire شدن اون Timer قطع میکنه، اما مدت زمان Set شده زیاد هستش، و شما میخواهید اونو کاهش بدید. صورت مساله حالا اینه. درسته؟

برای اینکار ابتدا باید ببینید آیا ارتباط شما برقرار هست یا خیر. برای اینکار میتونید از InternetGetConnectedState Win32 API استفاده کنید. البته شما میتونید از IsDestinationReachable هم استفاده کنید، اما من اولی رو ترجیح میدم (بدلائلی که از حوصله این بحث خارجه). روشهای دیگری هم برای اینکار وجود داره، اما من فعلا به همینها بسنده میکنم.

وقتی متوجه شدید که ارتباط برقراره، اونوقت میتونید با استفاده از تابع InternetHangUp در WinSOCK ارتباط رو قطع کنید. شما میتونید از RasHangUp هم برای قطع ارتباط استفاده کنید. البته درست مثل بخش قبلی، اینکارو میتونید به روشهای متنوع دیگه ای هم انجام بدید....

اما الان که دارم اینو مینویسم، گفتم شاید همه اینها وقتی جواب بده که ارتباط رو خود برنامه ایجاد کرده باشه و Owner اون Connection باشه...

آیا این مساله براتون مقدور هستش که برنامه رو ببندید و مجددا اجرا کنید؟ (بطور خودکار). اگر بله، میتونید WM_CLOSE رو به برنامه مورد نظر بفرستید، وقتی برنامه خاتمه پیدا کرد، اونوقت دوباره اونو از درون کد خودتون اجرا کنید.

موفق باشید.