永发信息网

vc如何判断一个程序是否在运行?

答案:3  悬赏:10  手机版
解决时间 2021-04-27 14:18
vc如何判断一个程序是否在运行?
最佳答案
//InstanceName 自定义用于表示应用程序的唯一标识名
//hWndClassName 窗体的注册类名 CreateWindow 函数中指定
//hWndWinName 窗体名 CreateWindow 函数中指定
//mOperate 操作判断变量
BOOL OperateMutex( LPCWSTR InstanceName,LPCWSTR hWndClassName, LPCWSTR hWndWinName, BOOL mOperate)
{
HANDLE hMutex;
hMutex = OpenMutex(MUTEX_ALL_ACCESS,FALSE,InstanceName);
switch(mOperate)
{
case APP_OPEN: //OPEN = 启动程序
if(hMutex==NULL)
{
hMutex = CreateMutex(NULL,FALSE,InstanceName);
if( (hMutex == NULL) || (GetLastError()==ERROR_ALREADY_EXISTS))
{
ActiveOldApp(hWndClassName,hWndWinName);
return FALSE; //程序已经启动或有错误发生
}
else
{
return TRUE;
} //第一次启动程序
}
else
{
ActiveOldApp(hWndClassName,hWndWinName);
return FALSE; //程序已经启动
}
break;
case APP_CLOSE: //CLOSE = 退出程序
ReleaseMutex(hMutex);
CloseHandle(hMutex);
break;
}
return TRUE;
}

//激活已启动的同一个程序
//参数:hWndClassName 窗体的注册类名 CreateWindow 函数中指定
// hWndWinName 窗体名 CreateWindow 函数中指定
BOOL ActiveOldApp( LPCWSTR hWndClassName, LPCWSTR hWndWinName)
{
HWND hWndApp,hWndPopup;
if (hWndApp = FindWindow(hWndClassName,hWndWinName))
{
//PutLog( "已经启动的实例的窗口句柄是%ld", hWndApp );
SendMessage( hWndApp, WM_ACTIVE, 0, 0 );
hWndPopup = GetLastActivePopup(hWndApp);
//PutLog( "GetLastActivePopup得到的窗口句柄是%ld", hWndPopup );
return TRUE;
}
else
{
return FALSE;
}
}
全部回答
枚举进程,查找x.exe,如果有2个就干掉其中一个,或者干脆不执行Shell
1. 创建一个 atom
2. 在程序运行的时候判断 atom 是否一斤创建。
或者使用进程枚举的方法,自己判断
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下午适合学奥数吗,下午大脑是不是反应速度,
口袋新世代破解版
大字加一笔都有什么字
六岁小朋友围棋24级证书代表什么
液晶电视里VGAADSSTATUS是什么意思?
如何调整mos管使其工作在饱和状态
请问各位网友,我微信发红包为什么会显示超出
立马和雅迪电动车哪个牌子好
永康市斯腾工贸有限公司在哪里啊,我有事要去
二年级用中华怎么造句
I am never ever gonna fall in love again.
新疆的天山乌梅和普通乌梅有什么区别
斗鱼只吃肉 不吃饲料
单选题成书于公元6世纪的《洛阳伽蓝记》记载
甄寰传里面甄寰心死的那首诗是什么意思
推荐资讯
怎样给人第一眼留下好形象?
k486在深圳哪里上车
人咬人部位的意思
爱和情之间有区分吗?
谁知道魏晨的QQ.MSN.微博
杂牌手机换屏必须要和原屏的型号一样才行还是
戒骄戒躁下一句勿嗔以,初三会友摆酒席下一句
你们喜欢武艺还是谭杰希?
筠州中路/环城东路(路口)这个地址在什么地方
搞笑团队名字和口号,给幼儿园起一个响亮的口
高中语文作文技巧
英国谚语哪哪最快
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?