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
                    );
            }
  • 相关阅读:
    解决“iOS 7 app自动更新,无法在app中向用户展示更新内容”问题
    ios 数组排序
    六年谈游戏工作室与游戏开发过程简介(转)
    mysql按位的索引判断值是否为1
    mysql按位的索引判断位的值
    git bash here右键菜单
    将VSCode添加到右键
    给vscode添加右键打开功能
    winrar压缩过滤文件及文件夹
    编译wxWidgets
  • 原文地址:https://www.cnblogs.com/ahuang1118/p/862481.html
Copyright © 2011-2022 走看看