zoukankan      html  css  js  c++  java
  • C#代码实现,确保windows程序只有一个实例(instance)

     
            ///<summary>
            ///应用程序的主入口点。
            ///</summary>
            [STAThread]
            staticvoid Main()
            {
                //防止程序多次运行
                if(!OneInstance.IsFirst("GetPayInfo"))
                {
                    MessageBox.Show ("警告:程序正在运行中! 请不要重复打开程序!可在右下角系统栏找到!","程序错误提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop);
                    return;
                }
                Application.Run(new Form1());
            }
            // ******************* 防止程序多次执行 **************************
            publicabstractclass OneInstance
            {
                ///<summary>
                ///判断程序是否正在运行
                ///</summary>
                ///<param name="appId">程序名称</param>
                ///<returns>如果程序是第一次运行返回True,否则返回False</returns>
                publicstaticbool IsFirst(string appId)
                {
                    bool ret=false;
                    if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero)
                    {
                        CreateMutex(IntPtr.Zero,0,appId);
                        ret=true;
                    }
                    return ret;
                }  
                [DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
                privatestaticextern IntPtr OpenMutex(
                    uint dwDesiredAccess, // access
                    int bInheritHandle,    // inheritance option
                    string lpName          // object name
                    );
     
                [DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
                privatestaticextern IntPtr CreateMutex(
                    IntPtr lpMutexAttributes, // SD
                    int bInitialOwner,                       // initial owner
                    string lpName                            // object name
                    );
            }
  • 相关阅读:
    直接插入排序
    安卓突击:隐式、显式Intent
    安卓突击:Android 动画有哪几种?
    安卓突击:ANR
    安卓突击:系统上安装了多种浏览器,能否指定某浏览器访问指定页面
    安卓突击:系统上安装了多种浏览器,能否指定某浏览器访问指定页面
    Android:BroadcastReceiver的基础知识
    安卓突击:service的基础知识
    安卓突击:数据存储方式
    Android突击:常用的五种布局
  • 原文地址:https://www.cnblogs.com/ahuang1118/p/862481.html
Copyright © 2011-2022 走看看