windows内核编程之如何防止一个相同的程序重复运行
来源:互联网 发布:大数据与股票预测 编辑:程序博客网 时间:2024/06/05 16:58
#include <windows.h>
#include <iostream>
#include <iterator>
#include <string>
using namespace std;
int main(int argc, char* argv[], char* envp[])
{
HANDLE hMutex = CreateMutex(NULL, FALSE, L"ysd");
CHAR szBuffer[128];
ostream_iterator<string> output(cout, "\n");
if (GetLastError() == ERROR_ALREADY_EXISTS)
*output = string("已经有一个相同的程序在运行了");
else
*output = string("这是该程序的第一个实例!");
DWORD ProcessID = GetCurrentProcessId();
DWORD SessionID;
if (ProcessIdToSessionId(ProcessID, &SessionID))
{
sprintf_s(szBuffer, "Process '%d' runs in terminal services session '%d'", ProcessID, SessionID);
*output = string(szBuffer);
}
else
MessageBox(NULL, L"不好意思,不能得到该进程的终端服务", L"调试信息", MB_OK | MB_ICONERROR);
CloseHandle(hMutex);
hMutex = NULL;
cout << "*******************" << endl;
system("pause");
return 0;
}
#include <iostream>
#include <iterator>
#include <string>
using namespace std;
int main(int argc, char* argv[], char* envp[])
{
HANDLE hMutex = CreateMutex(NULL, FALSE, L"ysd");
CHAR szBuffer[128];
ostream_iterator<string> output(cout, "\n");
if (GetLastError() == ERROR_ALREADY_EXISTS)
*output = string("已经有一个相同的程序在运行了");
else
*output = string("这是该程序的第一个实例!");
DWORD ProcessID = GetCurrentProcessId();
DWORD SessionID;
if (ProcessIdToSessionId(ProcessID, &SessionID))
{
sprintf_s(szBuffer, "Process '%d' runs in terminal services session '%d'", ProcessID, SessionID);
*output = string(szBuffer);
}
else
MessageBox(NULL, L"不好意思,不能得到该进程的终端服务", L"调试信息", MB_OK | MB_ICONERROR);
CloseHandle(hMutex);
hMutex = NULL;
cout << "*******************" << endl;
system("pause");
return 0;
}
0 0
- windows内核编程之如何防止一个相同的程序重复运行
- 防止一个没有窗体的WINDOWS程序的重复运行
- 学习笔记之防止重复运行程序
- QT之防止程序重复运行方法
- 防止程序重复运行
- 如何防止窗体重复打开(程序或表单重复运行)?
- 防止程序重复运行的一种写法
- Android中如何防止Toast重复弹出相同的信息?
- 如何防止一个程序运行多次
- C#建立了一个windows程序,如何防止多个程序实例运行?
- 忆龙2009:windows mobile防止程序重复运行
- [WinForm]C# .net防止一个程序(WinForm)重复运行的方法。
- C#防止程序重复运行
- winform程序防止重复运行
- vc++ 防止程序重复运行
- 用命名内核对象防止windows同时运行两个程序
- Vb.Net防止同一程序重复运行的方法
- 防止C++程序重复运行的几种方法
- Hibernate学习实例:关联表的树状结构设计
- ubuntu14.04+svn
- Flash builder4.7更新AIR SDK
- c/c++实现浏览器的下载功能
- windows界面编程之自绘菜单
- windows内核编程之如何防止一个相同的程序重复运行
- 114. Flatten Binary Tree to Linked List
- windows界面编程之自绘窗体(模仿腾讯qq)
- 创建动态数据窗口的两种方法
- 设计模式六大原则详解
- windows编程之音频设备的捕获
- 【Leetcode】7.Reverse Integer 解题
- 清除NT Kernel占用80端口
- C/C++系列之如何实现一个avi格式的播放器