大家好!
我现在正在维护一个安装与卸载程序代码。
现在发现以前卸载时没有判断被卸载程序是否正在执行。
现在要求加上这一功能。
不知道需要哪些API。另为要求删除安装路径的文件夹,我想问一下判断文件夹是否为空需要哪些API先此谢过!
我现在正在维护一个安装与卸载程序代码。
现在发现以前卸载时没有判断被卸载程序是否正在执行。
现在要求加上这一功能。
不知道需要哪些API。另为要求删除安装路径的文件夹,我想问一下判断文件夹是否为空需要哪些API先此谢过!
解决方案 »
- 传输文件后缀名为.exe 的文件只能传送一点
- MFC 窗口消息如何获取
- 100分求,弹出式菜单
- WM_CTLCOLOR和=WM_CLTCOLOR什么关系?
- 如何計算結構體的大小?
- 怎么实现字符串"0000000000"加1到"9999999999",因为vc中int 和long都是4byte,不能实现把字符串先转换为数字型,再+1操作,咋办
- [散分]庆祝水分过4k
- ListCtrl在大图标模式下,为什么所有图标都显示在一列之内?
- **********怎样通过IAccessControl来实现对文件的安全策略权限设置?
- 紧急!!!重谢!!关于屏蔽系统热键!!
- Vista 下的一个消息
- 学习中遇到些问题!!~
2、FindFirst
HANDLE hThreadSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
THREADENTRY32 te32 = { sizeof(te32) };
if(::Thread32First(hThreadSnap, &te32))
{
do
{
if(te32.th32OwnerProcessID == pe32.th32ProcessID)
{
// 找到主线程ID号,关联它到当前项
m_listPro.SetItemData(nItem, te32.th32ThreadID);
break;
}
}
while(::Thread32Next(hThreadSnap, &te32));
}
::CloseHandle(hThreadSnap);
nItem++;
}
while(::Process32Next(hProcessSnap, &pe32));
从窗口句柄得到进程的方法那一个 HWND hwnd=::FindWindow(类名,窗口名);
DWORD pid;
::GetWindowThreadProcessId(hwnd,&pid);
HANDLE handle=::OpenProcess( PROCESS_ALL_ACCESS, 0,pid);
::TerminateProcess(handle,0);