نقل قول نوشته شده توسط hotcat مشاهده تاپیک
وقت بخیر
حالا نکته اینکه ( که البته من از اول اصرار داشتم ولی شاید منظورمو خوب نرسوندم - البته عنوان تاپیک دقیقا همینه یعنی کاری که سیستم داره انجام میده رو ما فقط مطلع بشیم و نه اینکه دوباره همون کار رو تو برنامه خودمون تکرار کنیم - اطلاع از یه رویداد سیستمی)- یسری کارهارو سیستم عامل داره انجام میده حالا بجای اینکه از همون استفاده کنیم نیایم چرخو دوباره اختراع کنیم و مثلا ویندوز خودش نت رو داره چک میکنه منم بیام حالا یه تایمر اضافه کنم بازم اینکارو جدا انجام بدم... و وقتی تعداد زیاد شده تو فشار بار زیاد کوئری ها اونوقت خودشو نشون میده.
سلامی مجدد
وقت تون بخیر.
اگه میخواین از رویدادهای سیستم عامل استفاده کنین ، به نظرم بهترین روش ، همینی هه که از رویدادهای event viewer که طیف بسیار وسیعی از رویدادهای انواع سخت افزارها و نرم افزارها را پوشش میده ، استفاده کنید .

کلاس EventLogWatcher در دات نت ، کلاسی برای تعامل با event viewer ویندوز هست :

https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.eventing.reader.eventlogwatcher ?view=dotnet-plat-ext-3.1

البته کلاس EventLog هم هست ولی به نظر میاد که کلاس EventLogWatcher کامل تر باشه . که کد مربوطه را در پست قبلی دادم.

برای مطلع شدن از رویداد سیستم عامل ، به شخصه استفاده از تایمر و مدام چک کردنِ اینکه آیا یک مسئله ای اتفاق افتاده یا نه را ترجیح نمیدم . کمترین دلیلش ، علاوه بر اصولی نبودن ، سربار ایجاد کردن اضافی برای پردازنده ی کاربر هست (مخصوصا اگه پردازنده ی کاربر ضعیف باشه یا زمان interval در تایمر ، خیلی کم باشه) .
به نظرم بهترین روش برای متوجه شدن یک رویداد سیستم عامل ، استفاده از همین قضیه ی event viewer هست .

نقل قول نوشته شده توسط hotcat مشاهده تاپیک

الان به پیشنهاد خوب دادن اقا سجاد که همین شد یه ایده البته یکی از بچه های امنیت داره کد میزنه و من اطلاعی از این کار ندارم ولی دارم دنبال مستنداتش میگردم هرچند که خیلی کمه و خیلی سخت و این اونکه یه هوک برای ویندوز مینویسن ( ظاهرا هوک کردن به روشی گفته میشه که شما مسیر اینتراپت سیستمی رو به مسیر دلخواه هدایت کنی یه چیزی مثل ویروس) که ایونت مربوط به ایونت ویوور علاوه بر خود Event ویوور ویندوز و اینتراپت مربوطه بیاد یه پیام هم به سرویس برنامه ما بده و این دقیقا میشه همون کاری که ما میخوایم از خود سیستم استفاده میکنیم و کار اضافه ای انجام نمیشه و مدیریت این داستان به بهترین شکل توسط خود OS انجام میشه.البته چون این کار کلا تو بخش دیگه ای انجام میشه بعید بدونم به کدش دسترسی داشته باشم ولی اگه شد حتما اینجا میزارم. اگه دوستانی هم هستن بلدن چطور میشه یه هوک ویندوزی نوشت خوشحال میشم به بنده هم اطلاعاتی رو بدن و نحوه کار رو توضیح بدن یا لینک خوبی ازش سراغ دارن رو بزارن.
امیدوارم توضیحات کافی باشه
مرسی از همه
خوب این که سخت نیست .
همونطور که گفته شد ، کلاس
EventLogWatcher برای این کار هست .
برای استفاده از این کلاس ، مشکل یا سئوالی دارین؟
بسیار ساده هست . کدی که در پست قبلی دادم را نگاه کنید . جای سختی چندان نداره .