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

نام تاپیک: باز نشدن برنامه وقتی در جال اجراست

  1. #1

    باز نشدن برنامه وقتی در جال اجراست

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

  2. #2
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    این کد را در قسمت Program.cs در تابع Main بنویس.

                int count = GetNumberOfRunningInstances();
    if (count <= 1)
    {
    Application.Run(new Form1());
    }
    else
    {
    System.Windows.Forms.MessageBox.Show("Another instance of this program is already running. Two instances cannot run at the same time", "Already running", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    Application.Exit();
    }

  3. #3

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    مرسی دوست عزیز...فقط وقتی دیباگ میکنم خطا زیر رو میده:
     
    error CS0103: The name 'GetNumberOfRunningInstances' does not exist in the current context


    از namespace خاصی use کردی؟

  4. #4
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    از این سه استفاده کردم
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;

  5. #5

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    خب اینا که بصورت پیشفرض using میشه پس چرا خطا میده؟

  6. #6

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    نقل قول نوشته شده توسط sajjadrad مشاهده تاپیک
    خب اینا که بصورت پیشفرض using میشه پس چرا خطا میده؟

    این ارور واسه من بود
    اگه علتشو پیدا کردید ممنون میشم بذارید همین جا

  7. #7

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    مثله اینکه GetNumberOfRunningInstances یه متده...من در بارش سرچ کردم اینو پیدا کردم:


    privatestaticint GetNumberOfRunningInstances()
    {
    int runcount = 0;
    string[] parts = System.Reflection.Assembly.GetExecutingAssembly().Location.Split("\\".ToCharArray());
    string appName = parts[parts.Length - 1];
    string query = "select name from CIM_Process where name = '" + appName + "'";
    System.Management.ManagementObjectSearcher searcher =
    new System.Management.ManagementObjectSearcher(query);
    foreach (System.Management.ManagementObject item in searcher.Get())
    {
    runcount++;
    }
    return runcount;
    }


    اما این کد هم کار نمیکنه چون احتمالا از نیم اسپیس خاصی استفاده میکنه

    یکی کمک کنهههههههههههههه!

  8. #8

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    راه حل مشکل شما در الگوی Singleton است. لطفا جستجو بفرمایید: الگوهای طراحی- Singleton

    موفق باشید
    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  9. #9
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    سلام
    آقا شرمنده اصلا حواس این حقیر به این تابع نبود.
    برای همین کل کلاس Program .cs را براتون می گذارم. انشاالله که مرا عفو کنید.
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;

    namespace Likeable_Windows
    {
    static class Program
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(fals e);
    int count = GetNumberOfRunningInstances();
    if (count <= 1)
    {
    Application.Run(new Form1());
    }
    else
    {
    System.Windows.Forms.MessageBox.Show("Another instance of this program is already running. Two instances cannot run at the same time", "Already running", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    Application.Exit();
    }
    }
    private static int GetNumberOfRunningInstances()
    {
    //yank off the appname.exe from the assemblies location
    string[] parts = System.Reflection.Assembly.GetExecutingAssembly(). Location.Split("\\".ToCharArray());
    string appName = parts[parts.Length - 1];

    //build the wmi query
    string query = "select name from CIM_Process where name = '" + appName + "'";

    //load up the managementobjectsearcher with the query
    System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(query);

    int runcount = 0;
    //iterate the collection and (which should only have 1 or 2 instances, and if 3 then its already running
    //1 instaces would be itself, 2 would be self and the other
    foreach (System.Management.ManagementObject item in searcher.Get())
    {
    runcount++;
    if (runcount > 1) break; //only need to know if there is more then self running
    }

    return runcount;
    }
    }
    }

  10. #10
    کاربر تازه وارد آواتار sh_1366
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    دنیای مجازی
    پست
    69

    Thumbs down نقل قول: باز نشدن برنامه وقتی در جال اجراست

    ManagementObjectSearcher این تابعی که استفاده کردی ایا رفرنسی خاصی استفاده کردی لطفا راهنمای کنید

  11. #11
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    این کد درسته. ولی به System.Managment ایراد می گیره. من فکر کردم خودتون این رفرنس را اضافه می کنید.
    ولی اشکال نداره.
    این نمونه برنامه.
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar aa.rar‏ (24.6 کیلوبایت, 4 دیدار)

  12. #12

    نقل قول: باز نشدن برنامه وقتی در جال اجراست

    خب دوست عزیز این برنامه ای که شما نوشتید با .NET 2 نوشته شده و من الان از .NET 3.5 استفاده میکنم...
    system manegment رو به refrence اضافه کردم اما کار نمیکنه...فکر کنم بخاطر نسخه دات نت باشه

    ممنون

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

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