如题
卸载的我想先判断程序是否在运行 如果是的话就给出先退出程序的提示。晚上很多用下面这个代码
Function un.onInit
FindProcDLL::FindProc "abc.exe"
Pop $0
IntCmp $0 1 0 no_run
MessageBox MB_ICONSTOP "(你的程序)正在运行,请先关闭程序!"
Quit
no_run:
FunctionEnd
我用了出错提示Invalid command: FindProcDLL::FindProc
在线等 各位大哥帮帮忙,谢谢!!
卸载的我想先判断程序是否在运行 如果是的话就给出先退出程序的提示。晚上很多用下面这个代码
Function un.onInit
FindProcDLL::FindProc "abc.exe"
Pop $0
IntCmp $0 1 0 no_run
MessageBox MB_ICONSTOP "(你的程序)正在运行,请先关闭程序!"
Quit
no_run:
FunctionEnd
我用了出错提示Invalid command: FindProcDLL::FindProc
在线等 各位大哥帮帮忙,谢谢!!
{
DWORD aProcesses[1024], cbNeeded, cbMNeeded;
HMODULE hMods[1024];
HANDLE hProcess;
char szProcessName[MAX_PATH]; if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) return 0;
for(int i=0; i< (int) (cbNeeded / sizeof(DWORD)); i++)
{
//_tprintf(_T("%d\t"), aProcesses[i]);
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]);
EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbMNeeded);
GetModuleFileNameEx( hProcess, hMods[0], szProcessName,sizeof(szProcessName));
if(strstr(szProcessName, strProcessName))
{
//_tprintf(_T("%s;"), szProcessName);
return(aProcesses[i]);
}
//_tprintf(_T("\n"));
}
return 0;
}见函数说明:
http://blog.csdn.net/agan2007/archive/2007/09/07/1776812.aspx
HWND hwnd=findwindow(null,"窗口名");
if(hwnd)
SendMessag(hwnd,wm_close,0,0);
我在Installshield里面就是这样做的.