نمایش نتایج 1 تا 19 از 19

نام تاپیک: پاک کردن یک پردازش از حافظه

  1. #1

    Question پاک کردن یک پردازش از حافظه

    سلام! به همه دوستان برنامه نویس
    چطور میشه یک برنامه در حال اجرا رو از حافظه پاک کرد؟
    در واقع می خوام کاری شبیه به همان کار Task manager رو انجام بدم.
    اصلا میشه این کار رو با سی شارپ انجام داد یا اینکه باید حتما با زبانی مثل ++C انجام بشه.
    ممنون میشم اگه کمکم کنید.
    آخرین ویرایش به وسیله Cheetah : شنبه 10 دی 1384 در 16:04 عصر

  2. #2
    مثال زیر ، Yahoo Messenger رو می بنده.

    Process[] ps = Process.GetProcesses();
    foreach(Process p in ps)
    {
    if(p.ProcessName.ToLower() == "ypager")
    {
    p.Kill();
    }

    }

    فقط یادت باشه از using System.Diagnostics; استفاده کنی.
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  3. #3
    خیلی ازت ممنونم.
    حتما امتحانش می‌کنم!
    اگه دوستان دیگه هم اطلاعاتی داشتن خوشحال میشیم استفاده کنیم!!!

  4. #4
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434

    Talking

    حالا اگه من بخام یک Application رو بجای یک Process کنترل کنم چجوری میشه ؟!!!

  5. #5
    خب اول اون Application رو اجرا کن. (Process.Start ) ، بعد به عنوان یه پروسس کنترلش کن
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  6. #6
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    خب باید بگم من میخام یه برنامه برای نگهداشتن Connection Account ها بنویسم اما مشکل اینجاست که DialUp Connection ها توی لیست Process ها نیستن. حالا پیشنهاد شما چیه ؟؟؟

  7. #7

    Thumbs down

    سلام
    من یه sample از برنامه درخواستیت رو به زبان VB 6 پیدا کردم .
    حالا خودت زحمت ترجمه اش به سی شارپ رو بکش.
    آخرین ویرایش به وسیله Mehdi Asgari : شنبه 10 اسفند 1387 در 13:54 عصر
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  8. #8
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    دستت درد نکنه مهدی جون. این کد خیلی به درد میخوره. اما من میخام لیست connect هائی که از هر Dial Up Connection انجام شده رو LOG کنم .

  9. #9
    این از Process ها !
    و حالا یه سوال در ادامه بحث!!!
    برای کنترل Service ها چیکار باید کرد ؟
    فکر می کنم Dial Up Connection هم یه Service باشه

  10. #10
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    سرویس که نیست ولی منو سرویس کرده !!!
    یه سورس دارم که هروقت رفتم پای سیستم خودم آپلودش میکنم.

  11. #11

    Smile

    دستت درد نکنه مهدی جون. این کد خیلی به درد میخوره. اما من میخام لیست connect هائی که از هر Dial Up Connection انجام شده رو LOG کنم
    یه خورده که با سیستم ور رفتم به اطلاعات زیر رسیدم:
    متوجه شدم که با هر بار کانکت شدن به اینترنت، ویندوز یک EventLog Information از نوع RemoteAccess ایجاد می کنه با این مضمون :

    The user {UID} successfully established a connection to Kavosh using the device COM3.

    خب ما این اطلاعات رو داریم:
    تاریخ و ساعت اتصال به اینترنت ( به عکسی که ضمیمه کردم نگاه بنداز)
    نام کاربری (username) مربوط به connection (که من اون رو برداشته و به جاش {UID} قرار دادم.)
    نام Connection که در نمونه بالا ، Kavosh هست.
    و پورتی که مودم روی اون وصل شده: مودم من روی COM3 نصب شده.

    با disconnect شدن هم یه EventLog دیگه ایجاد میشه با همون نام منتها با این تفاوت که EventID مربوط به اتصال به اینترنت ، 20158 هست ، منتها EventID این ، 20159 هست.

    The connection to Kavosh made by user {UID} using device COM3 was disconnected.
    اینجا هم همون اطلاعات در دسترسمون هست.

    من یه برنامه نوشتم و ضمیمه کردم. این برنامه دو تا ListBox داره ، ListBox بالایی همواره در حال انتظاره و داره گوش میکنه ، به محض اینکه به اینترنت وصل (یا از اون قطع) شدی ، اطلاعات مربوطه
    رو نشون میده.
    با فشار button ، ListBox پایینی حاوی اطلاعات تمامی وصل و قطع شدن های اینترنت از 3 روز قبل تا این لحظه است.
    (حالا خودت میتونی بنابه نیازت ، برنامه رو تغییر بدی تا بر روی فایل بنویسه)

    نکات:
    1 – این برنامه از سرویس Eventlog استفاده می کنه؛ پس برای اجرای درست این برنامه باید این سرویس بر روی سیستم در حال اجرا باشه. (در تمامی ویندوز ها این سرویس در حال اجراست ، مگر اینکه کاربر خودش اون رو stop کرده باشه)
    2- برای مشاهدۀ EventLog ها »
    Control Panel  Administrative Tools  Event Viewer
    3- به نظر من باید یه Windows Service بنویسی تا همواره اطلاعات مربوطه رو برات log کنه.

    4- فکر می کنم توسط WMI هم بتونی این اطلاعات رو به دست بیاری.
    5- احتمالا API ها و یا راه های دیگه ای هم برای این کار وجود داشته باشه.
    6- من فقط راه رو نشون دادم ، یه خورده که ور بری با WMI و EventLogs و Google و MSDN
    ، خودت کلی اطلاعات برای گسترده کردن کار این برنامه و دریافت اطلاعات بیشتر (حتی دریافت رمز عبور اینترنت ) پیدا می کنی.
    (یه کمک : از برنامۀ evntwin.exe استفاده کن .)

    برای کنترل Service ها چیکار باید کرد ؟
    دقیقا نمیدونم ولی احتمالا کلاس ServiceController در System.ServiceProcess کارتو راه بندازه.
    (برای استفاده از این کلاس باید System.ServiceProcess.dll رو Add Reference کنی.)
    آخرین ویرایش به وسیله Mehdi Asgari : شنبه 10 اسفند 1387 در 13:54 عصر
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  12. #12
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    اینم سورس که گفته بودم !!!!
    فایل های ضمیمه فایل های ضمیمه

  13. #13
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    دستت درد نکنه اووووس مهدی !!!
    خیلی زحمت کشیدی و لطف کردی رفیق.
    من هم یه چیز هائی پیدا کردم که دارم روش کار میکنم . ردیف که شد آپلود میکنم همینجا

  14. #14
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    مهدی جون بازم سلام !!!
    آقا من یه windows service نوشتم که هیچ error نداره اما کار هم نمیکنه !!!!
    خواستم توش از کد شما استفاده کنم که event ها رو log کنه اما هیچی دریافت نمیکنه .
    میشه یه تست کنی ببینی شما جواب میگیری یا نه ؟!!

    مرسی

  15. #15
    سلام
    من یه دمو فقط برای تست کارکرد برنامه نوشتم ، درست و کامل کار کرد.
    فقط تا جمعه صبر کن تا آخرین امتحانم رو هم بدم ، بعد برنامۀ کامل همراه با توضیح
    رو میذارم همینجا.
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  16. #16
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    تا جمعه که چیزی نیست تا شنبه هم صبر میکنم اوووس مهدی !!!
    قوووربوون تو

  17. #17
    سلام
    امروز آخرین امتحانم دادیم و خلاص .
    این برنامه ای رو که ضمیمه کردم دانلود کرده و Build کنید.
    نکات:
    1 – در متد OnStart ، سازنده شی اصلی رو فراخوانی کردم. (کار این متد مثل متد Main میمونه
    و وقتی فراخوانی میشه که کاربر سرویس ما رو Start میکنه)
    2 – در متد OnStop هم این شی رو Close (یا در اصل Dispose ) کردم. (این متد هم هنگام Stop کردن
    سرویسمون فراخوانی میشه)
    3 – Windows Service مثل برنامه اجرایی معمولی نیست که با دابل کلیک کردن روی فایلش
    (یا با Ctrl-F5 از منوی VS ) بشه اون رو اجرا کرد ، بلکه نیاز به یه installer داره. برای ایجاد خودکار یه
    Installer ، روی فایل Service1.cs (این اسم پیش فرضه) در Solution Explorer کلیک راست کنید ،
    گزینۀ Add Installer رو بزنید. حالا پروژه رو Build کنید.

    آخرین قدم برای افزودن سرویستون به لیست سرویس های سیستم ، اینه که فایل اجراییتون رو به عنوان
    آرگومان به برنامۀ installutil.exe (که همراه با VS در SDK ، نصب میشه) ، به فرم زیر بدین:
     installutil [FileName] 

    مثال:
     C:\Projects\WindowsService1\bin\Debug> installutil WindowsService1.exe 

    (این برنامه در خود Windows وجود نداره ، یعنی از cmd قابل اجرا نیست ، بلکه باید اون رو از طریق
    Visual Studio .NET Command Prompt اجرا کنید)
    حالا سرویس ما نصب شده و شروع به کار کرده.
    برای دیدن اسم سرویس (که در این مثال ، MehdiSvc هست) ، به اینجا برین:
     Control Panel – Administrative Tools – Services 

    به دنبال نام MehdiSvc بگردین ، حالا میتونین Start و Stop کنین و ...
    (پس فهمیدیم که نام فایل و نام سرویس ، لزوما یکی نیستن و مستقل از یکدیگرن)

    4 – این برنامه ، رویدادها رو در فایل Mehdilog.txt در %System32% ، log میکنه)
    در مورد Windows Service میشه به اندازۀ یه کتاب صحبت کرد
    برای تکمیل بحث و اطلاعات اضافی ، توصیه میکنم اگه MSDN 2003 رو دارین ، مقاله
    Create Windows Services نوشته Billy Hollis رو بخونین.

    (یادم رفت بگم ، برای uninstall کردن سرویس ، اول اون رو Stop کنید ، بعد با سویچ
    u/ در installutil ، اون رو uninstall کنین.)
    آخرین ویرایش به وسیله Mehdi Asgari : شنبه 10 اسفند 1387 در 13:54 عصر
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  18. #18
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    مهدی جون سلام
    دستت درد نکنه زحمت کشیدی دوباره.
    برنامه ای که شما زحمتشو کشیدی نوشتی درست شبیه برنامه خودم بود. همونطوری که گفتم هیچ خطائی نداره اما event ها رو دریافت نمیکنه !!!
    شما روی سیستم خودت از این برنامه جواب گرفتی ؟؟؟
    آخه روی سیستم من کار نمیکنه. من فایل Mehdilog.txt رو بعد از اجرای برنامه ندارم.البته بصورت دستی هم این فایل رو ساختم ولی بعد از connect شدن هیچ مقداری در اون نوشته نمیشه !!
    به نظر میرسه که windows service ما این event رو اصلا دریافت نمیکنه .من حتی با یه MessageBox هم تست کردم ولی تابع نوشتن فایل و تشخیص event اصلا اجرا نمیشه !!
    اما همین کد توی windowsForm Application داره به خوبی کار میکنه !!!

  19. #19
    من از این برنامه جواب گرفتم.
    (فایل log در پوشه System32 واقع در پوشه نصب ویندوز ، ایجاد میشه)
    مثل:
     C:\Windows\System32\Mehdilog.txt 
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •