<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tbwshc

    如何使自己的程序只運行一次

    我介紹兩個主流的方法。

    方法一:使用Mutex來進行

    1. 首先要添加如下的namespace:

    using System.Threading;


    2. 修改系統Main函數,大致如下:

    bool bCreatedNew;

    //Create a new mutex using specific mutex name
    Mutex m =new Mutex( false, "myUniqueName", out bCreatedNew );
    if( bCreatedNew )
    Application.Run(new yourFormName());

    如上面編碼就可以了,要注意的一點是,在給Mutex起名字的時候,不要太簡單,以tb防止和其他程序的Mutex重復,從而達不到所預想的效果。


    方法二:使用Process來進行

    1. 首先要添加如下的namespace:

    using System.Diagnostics;
    using System.Reflection;

    2. 添加如下函數:

    public static Process RunningInstance()
    {
    Process current = Process.GetCurrentProcess();
    Process[] processes = Process.GetProcessesByName(current.ProcessName);

    //Loop through the running processes in with the same name
    foreach (Process process in processes)
    {
    //Ignore the current process
    if (process.Id != current.Id)
    {
    //Make sure that the process is running from the exe file.
    if (Assembly.GetExecutingAssembly().Location.Replace("/", "http://") == current.MainModule.FileName)
    {
    //Return the other process instance.
    return process;
    }
    }
    }

    //No other instance was found, return null.
    return null;
    }

    3. 修改系統Main函數,大致如下:

    if( RunningInstance() == null )
    Application.Run(new yourFormName());

    如上面編碼就可以了,要注意的一點是,在判斷進程模塊文件名是否相等這部分的代碼,是可選的。如果當前的程序在文件系統中只存在一個的話,以上的方法是可以的;否則不要刪除這部分的代碼。


    對比兩種方法,就效率和簡便性來說,前一種方法是最好的,也是我比較喜歡的;后一種方法,速度比較慢,其次通過ProcessName去系統中查尋,有可能查出來的Process并不是我想要得,雖說在后面加了文件目錄判斷,但是其含有潛在的問題(前面已經說出來)。不過,第一種方法也有缺陷,就是擴展性操作不方便,例如:讓程序只運行一次,如果程序已經運行,把它彈出并顯示到最前面。對于此,后一種方法就很有優勢了。

     

    posted on 2012-07-05 13:25 chen11-1 閱讀(769) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久WWW免费人成人片| 97av免费视频| 免费人成网站在线播放| 在线观看亚洲网站| 免费一级毛片清高播放| 四虎精品成人免费视频| 亚洲国产综合无码一区二区二三区| 老牛精品亚洲成av人片| 亚洲欧洲日产国码高潮αv| 特a级免费高清黄色片| 国产亚洲精品无码专区| 野花香高清视频在线观看免费 | 亚洲av无码国产精品夜色午夜 | 亚洲天天做日日做天天欢毛片| 免费视频精品一区二区三区| 亚洲AV福利天堂一区二区三| 91香蕉国产线观看免费全集| 亚洲成a人片在线观看中文!!!| 中文字幕影片免费在线观看| 亚洲成AV人片在WWW| 亚洲av日韩av欧v在线天堂| 久久久久免费视频| 亚洲国产成人久久99精品| 午夜视频在线观看免费完整版| 美女被爆羞羞网站在免费观看 | 久久国内免费视频| 国产亚洲精品精品精品| 亚洲日韩激情无码一区| 亚洲精品在线免费观看视频| 亚洲精品国产高清在线观看| 亚洲第一页日韩专区| 热re99久久6国产精品免费| 亚洲一线产品二线产品| 亚洲精品线路一在线观看| 99精品热线在线观看免费视频 | 亚洲色精品88色婷婷七月丁香| 无码国产精品一区二区免费式芒果| 最新亚洲卡一卡二卡三新区| 亚洲视频在线免费| 在线观看特色大片免费视频| 一级女性全黄久久生活片免费 |