您的位置:首页 > 其它

WINCE中只允许程序运行一个实例

2009-03-16 23:34 316 查看
.NET CF:


[DllImport("coredll.Dll")]
private static extern int GetLastError();

[DllImport("coredll.Dll")]
private static extern int ReleaseMutex(IntPtr hMutex);

[DllImport("coredll.Dll")]
private static extern IntPtr CreateMutex(SECURITY_ATTRIBUTES lpMutexAttributes,


bool bInitialOwner,


string lpName);

[StructLayout( LayoutKind.Sequential)]
public class SECURITY_ATTRIBUTES
{
  public int nLength;
  public int lpSecurityDescriptor;
  public int bInheritHandle;
}
const int ERROR_ALREADY_EXISTS = 0183;




static void Main()
{
#region Api_Call CreateMutex;
IntPtr hMutex;
    hMutex=CreateMutex(null,false,"程序名");
    if (GetLastError()!=ERROR_ALREADY_EXISTS)
    {
        Application.Run(new Frmmenu());
    }
    else
    {
        MessageBox.Show("本程序只允许同时运行一个");
        ReleaseMutex(hMutex);
}
#endregion
}


EVC:


HANDLE   hMutex=::CreateMutex(NULL,TRUE,L"LiCR");
if(hMutex!=NULL)
{
if(GetLastError()==ERROR_ALREADY_EXISTS)
{


AfxMessageBox( "已经有一个程序运行." );   
            ReleaseMutex(hMutex);
            return  FALSE;  
        }  
    }

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: