فقط تو یه چیز اشکال دارم اونم اینکه می خوام درصد استفاده از cpu و memory رو نشون بدم
من نمی دونم چقدر از این چیزها را کلاس Process دات نت براتون پیاده سازی کرده، اما به طور کلی برای اینکه میزان مصرف CPU را به دست بیارید، باید زمان Process را در دو زمان مختلف بخونید. زمان Process در ویندوز با استفاده از تابع GetProcessTime به دست میاد. توی دات نت احتمالا کلاس Process یک Wrapper برای آن ارائه کرده. باید یک بار زمان Process را به دست بیارید، بعد به مدت معینی مکث کنید، سپس زمان Process را برای بار دوم به دست بیارید، اون وقت میزان مصرف CPU به صورت زیر محاسبه میشه:
CPU Usage = ((ProcessTime2 - ProcessTime1) / WaitTime) / 100 / NumberOfProcessors
البته اگر کلاس Process خودش این رو بهتون بده، دیگه نیازی به پیاده سازی خودتان نیست.
برای Memory هم در ویندوز از تابع GetProcessMemoryInfo استفاده میشه، که به احتمال بسیار زیاد کلاس Process این رو براتون Wrap کرده، و نیازی نیست خودتان مستقیما با این تابع API ویندوز کار کنید.
چه جوری توی تب application مثل task manager فولدر هایی که باز هستن رو نشون بدم ؟ تو رو خدا یکی جوابمو بده !!!!
برنامه هایی که در تب Applications از Task Manager لیست میشند، در واقع Processهایی هستند که پنجره داشته باشند، و پنجره اصلی آن ها این چند ویژگی را داشته باشه:
- Visible باشه.
- Owner نداشته باشه.
- Parent نداشته باشه.
- Tool Window نباشه.
می تونید لیست پنجره های باز را از سیستم بگیرید، و پنجره هایی که ویژگی های فوق را داشتند، به عنوان Application در تب Applications برنامه خودتان لیست کنید.
می بخشید، من دات نت کار نمی کنم که سورس کد #C بهتون بدم. فقط می تونم به طور کلی راهنمایی تون کنم که این کار چطور انجام میشه. از اینکه دات نت چقدر از این کارها را خودش براتون پیاده سازی کرده، اطلاعی ندارم.