امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه اطلاع از اجرای یک برنامه در ویندوز
نویسنده پیام
ترانسپورتر آفلاین
کاربر با تجربه
****

ارسال‌ها: 714
موضوع‌ها: 61
تاریخ عضویت: آبان ۱۳۸۹

تشکرها : 4435
( 3658 تشکر در 1648 ارسال )
ارسال: #1
نحوه اطلاع از اجرای یک برنامه در ویندوز
سلام

یک برنامه نوشتم که لیست پردازش های ویندوز رو در یک لیست قرار میده ، اما مشکل اینجاست که من می خوام ببینم چه جوری میشه فهمید یک برنامه الان در حال حاظر اجرا شده و در این لیست قرار گرفته؟یعنی میشه مدام لیست رو refresh کرد و آخرین برنامه در لیست در واقع میشه آخرین برنامه اجرا شده. اما مشکل کار اینجاست که لیست مدام باید refresh بشه ، در نتیجه سرعت برنامه می یاد پایین ، دوستان راه حلی برای حل این مشکل دارند؟

تشکر
۰۷-آبان-۱۳۹۱, ۱۳:۴۴:۰۳
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #2
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
سلام.
شما چاره ای نداری. لیست مدام باید ریفرش بشه.
خود تسک منیجر ویندوز هم از همین روش استفاده میکنه که اگه با ای پی آی Killtimer تایمرش رو متوقف کنی دیگه لیستش ریفرش نمیشه.

بعضی ویروس ها از همین روش استفاده میکنن. اول تایمر تسک منیجر رو آف میکنن. بعد هندل لیستش رو میگیرن و پروسه خودشون رو از لیست حذف میکنن و در نتیجه در لیست دیده نمیشن.
۰۸-آبان-۱۳۹۱, ۰۲:۰۱:۱۷
ارسال‌ها
پاسخ
تشکر شده توسط : ترانسپورتر, Ghoghnus, vigraz, mahdi321
ترانسپورتر آفلاین
کاربر با تجربه
****

ارسال‌ها: 714
موضوع‌ها: 61
تاریخ عضویت: آبان ۱۳۸۹

تشکرها : 4435
( 3658 تشکر در 1648 ارسال )
ارسال: #3
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
از جوابتون ممنون.

اون موقع مثلا همون ویروسه می تونه کاری کنه در انتهای لیست تسک منیجر قرار نگیره؟(یا لیست برنامه خود من)منظور اینست که در حال حاضر برنامه جوری کار می کنه که میاد و اخرین برنامه موجود در لیست رو به عنوان آخرین برنامه اجرا شده معرفی می کنه(در صورتی که لیست sort نشده باشه).حالا یه برنامه ممکنه که بیاد و خودش رو جوری اجرا کنه که در انتهای لیست قرا نگیره؟اون موقع برنامه من مشکل داره ، درسته؟

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

امیدوارم تونسته باشم منظورم رو بیان کنم.
۰۹-آبان-۱۳۹۱, ۱۱:۵۸:۳۷
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
(۰۹-آبان-۱۳۹۱, ۱۱:۵۸:۳۷)ترانسپورتر نوشته است: از جوابتون ممنون.

اون موقع مثلا همون ویروسه می تونه کاری کنه در انتهای لیست تسک منیجر قرار نگیره؟(یا لیست برنامه خود من)منظور اینست که در حال حاضر برنامه جوری کار می کنه که میاد و اخرین برنامه موجود در لیست رو به عنوان آخرین برنامه اجرا شده معرفی می کنه(در صورتی که لیست sort نشده باشه).حالا یه برنامه ممکنه که بیاد و خودش رو جوری اجرا کنه که در انتهای لیست قرا نگیره؟اون موقع برنامه من مشکل داره ، درسته؟

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

امیدوارم تونسته باشم منظورم رو بیان کنم.
اولا همینجوری هم نیست که هر پروسه جدید در انتهای لیست قرار بگیره
شما باید لیست پروسه ها رو مثلا تو یه ارایه نگهداری کنی و هر سری که لیست جدید رو میگیری با لیست قبلی مقایسه کنی
روش استاندارد برای فهمیدن اینکه یک برنامه میخواهد اجرا بشه هوک کردن تابع CreateProcess-NTcreateProcess و مشتقات اونها هستش

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۰۹-آبان-۱۳۹۱, ۱۴:۳۹:۵۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : vigraz, ترانسپورتر, mahdi321
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #5
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
سلام.
مبین جان بهتره هوک رو بی خیال شه. چون هم خیلی درد سر داره و هم آنتی ویروس ویرش میگیره.

چون لیست باید در حد میلی ثانیه یل صدم ثانیه ریفرش بشه شاید گذاشتن لیست تو آرایه و چک کردن این لیست در تایمر کمی کار کرد CPU رو ببره بالا.
۱۰-آبان-۱۳۹۱, ۰۳:۳۳:۳۸
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
ترانسپورتر آفلاین
کاربر با تجربه
****

ارسال‌ها: 714
موضوع‌ها: 61
تاریخ عضویت: آبان ۱۳۸۹

تشکرها : 4435
( 3658 تشکر در 1648 ارسال )
ارسال: #6
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
نقل قول: شما باید لیست پروسه ها رو مثلا تو یه ارایه نگهداری کنی و هر سری که لیست جدید رو میگیری با لیست قبلی مقایسه کنی

اینم سرعت رو پایین میاره.متاسفانه!

نقل قول: چون لیست باید در حد میلی ثانیه یل صدم ثانیه ریفرش بشه شاید گذاشتن لیست تو آرایه و چک کردن این لیست در تایمر کمی کار کرد CPU رو ببره بالا.

کاملا تایید میشه.

بالاخره چکار کنم.از هوک مثالی دارید؟

خیلی ممنون.
۱۲-آبان-۱۳۹۱, ۱۵:۵۹:۰۵
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #7
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
خب این روند رو بزاره تو یه ترد با priority بالا
جز اینها فکر نکنم کار دیگه ای بتونه انجام بده
:d برنامه رو به exception انتی اضافه کنه که انتی به برنامه گیر نده :d

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۱۳-آبان-۱۳۹۱, ۱۲:۰۱:۵۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ghoghnus, Ghoghnus, mahdi321
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #8
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
سلام.
آخه مبین یه بار که نمیخواد انجام شه که بذاره تو priority بالا. مدام داره انجام میشه. اتفاقا اگه این کار رو هم بکنه شاید اگه سیستم کمی ضعیف باشه کلا سیستم قفل کنه. چون این برنامه مدام در اولویت قرار میگیره و فرصتی برای پردازش برنامه های دیگه باقی نمیمونه.

آنتی ویروس هم که مشخص نیست چیه. این همه آنتی مدام آپدیت میشن. خودش اندازه 10 تا پروژه کار میبره.
۱۵-آبان-۱۳۹۱, ۱۵:۰۹:۰۳
ارسال‌ها
پاسخ
تشکر شده توسط : ترانسپورتر, vigraz, mahdi321
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #9
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
(۱۵-آبان-۱۳۹۱, ۱۵:۰۹:۰۳)Payman62 نوشته است: سلام.
آخه مبین یه بار که نمیخواد انجام شه که بذاره تو priority بالا. مدام داره انجام میشه. اتفاقا اگه این کار رو هم بکنه شاید اگه سیستم کمی ضعیف باشه کلا سیستم قفل کنه. چون این برنامه مدام در اولویت قرار میگیره و فرصتی برای پردازش برنامه های دیگه باقی نمیمونه.
به بابا سیستمهای الانه دیگه حداقل کورتودو با رم 2 گیگ هستن اتفاق خواصی برای برنامه نمی افته
میخواهد یک ارایه رو با لیستی که از یکی از روشهای گرفتن لیست پروسه میگیره مقایسه کنه
نباید اینجور باشه که اول تو یه کنترل گرافیکی نشون بده مثل listbox و بعد شروع به مقایسه کنه چون رفرش شدن یک کنترل خیلی سربار داره اول لیست رو با ارایه مقایسه کنه اگه پروسه جدید بود ته listbox اضافه کنه

نقل قول: آنتی ویروس هم که مشخص نیست چیه. این همه آنتی مدام آپدیت میشن. خودش اندازه 10 تا پروژه کار میبره.
یکی از روشهایی که باعث میشه انتی ها بهش گیر ندن اینه که به لیست برنامه های امنیتی ویندوز تو wmi اضافش کنه مثل انتیها و فایر والها که خودشونو اضافه میکنن خود انتی ها هم از همین طریق میفهمن که مثلا انتی ویروس دیگه ای هم رو سیستم نصبه(البته شاید برای همه انتی ها جواب نده)


البته موضوع انتی ویروسها این روش کاملا اشتباس و باید از هوک استفاده کنه و گرفتن لیست پروسه ها در وحله اول هست که انتی تازه نصب شده و از برنامه های داخل رو شروع میکنه به چک کردن پیدا کردن ویروسها

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۱۵-آبان-۱۳۹۱, ۱۸:۱۹:۱۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : ترانسپورتر, vigraz, mahdi321
ترانسپورتر آفلاین
کاربر با تجربه
****

ارسال‌ها: 714
موضوع‌ها: 61
تاریخ عضویت: آبان ۱۳۸۹

تشکرها : 4435
( 3658 تشکر در 1648 ارسال )
ارسال: #10
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
سلام

خیلی ممنون از توضیحاتتون ، اما این وسط موضوع آنتی ویروس چیه و چه ربطی داره؟

اینم یک برنامه برای صرفا نشون دادن لیست پردازش ها

http://uplod.ir/z2vef8nxsu2g/process_11478.rar.htm
(آخرین ویرایش در این ارسال: ۱۶-آبان-۱۳۹۱, ۰۰:۳۸:۰۱، توسط ترانسپورتر.)
۱۶-آبان-۱۳۹۱, ۰۰:۳۰:۰۶
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #11
RE: نحوه اطلاع از اجرای یک برنامه در ویندوز
سلام.
بحث آنتی از این جهت مطرحه که اگه بخوای از روش هوک استفاده کنی آنتی ویروس برنامه رو یه برنامه مخرب تشخیص میده و باید با یه روشی آنتی رو دور بزنی.
۱۸-آبان-۱۳۹۱, ۰۳:۲۵:۴۵
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  اجرا نشدن keybd_event vbKeyMenu در ویندوز 8.1 javad917 3 2,627 ۱۳-آذر-۱۳۹۶, ۲۱:۲۰:۲۸
آخرین ارسال: javad917
Sad [سوال] مشکل پروژە vb6 با ویندوز ١٠ engzhina 4 4,499 ۰۲-مهر-۱۳۹۵, ۱۲:۱۴:۴۳
آخرین ارسال: engzhina
  [سوال] استفاده از بالون ویندوز در ویژوال بیسیک mr91090 1 2,643 ۲۹-آبان-۱۳۹۴, ۲۲:۵۰:۳۹
آخرین ارسال: Payman62
  ذخیره کردن نتیجه اجرای کد به صورت رشته alefpe 1 2,740 ۱۰-خرداد-۱۳۹۴, ۱۰:۲۰:۲۲
آخرین ارسال: lord_viper
  اجرای خودکار برنامه در یک زمان خاص iman_yakoza 22 24,285 ۰۷-اسفند-۱۳۹۳, ۱۷:۰۶:۵۹
آخرین ارسال: Ghoghnus
  [سوال] اجرای کد با کلیک روی لینک نوشته در اکسل eppagh 0 2,334 ۰۳-بهمن-۱۳۹۳, ۱۶:۱۹:۰۴
آخرین ارسال: eppagh
Question [سوال] اجرای فرم با button روی شیت اکسل در VBA eppagh 6 10,897 ۰۱-مرداد-۱۳۹۳, ۱۵:۲۴:۳۸
آخرین ارسال: eppagh
  رجیستر ocx ویندوز سون 32 بیتی aleas 8 6,078 ۰۲-تير-۱۳۹۳, ۰۱:۳۷:۴۱
آخرین ارسال: !_!_batman_!_!
  نیاز به دستور برای اجرای چکر برنامه Proxifier از طریق cmd hamidsystem 4 4,085 ۰۸-فروردین-۱۳۹۳, ۱۶:۱۳:۰۱
آخرین ارسال: hamidsystem
  تنظیم صدای ویندوز mahdi321 3 3,282 ۰۷-فروردین-۱۳۹۳, ۰۹:۱۰:۳۳
آخرین ارسال: Di Di

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS