|
@@ -162,6 +162,7 @@ DWORD CIRControl::IsAppRunning(LPCTSTR lpszAppDir)
|
|
|
|
|
|
bool CIRControl::CloseApp(DWORD dwAppId)
|
|
|
{
|
|
|
+ m_dwCurAppId = GetProcessId();
|
|
|
if (dwAppId == 0)
|
|
|
dwAppId = m_dwCurAppId;
|
|
|
|
|
@@ -197,6 +198,36 @@ bool CIRControl::CloseApp(DWORD dwAppId)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+DWORD CIRControl::GetProcessId(std::string strApp)
|
|
|
+{
|
|
|
+ DWORD dwProcessID = 0;
|
|
|
+ PROCESSENTRY32 pe32 = { 0 };
|
|
|
+
|
|
|
+ HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
|
|
+ if (hProcessSnap == NULL)
|
|
|
+ {
|
|
|
+ Global::WriteTextLog(_T("获取进程快照失败:%ld"), GetLastError());
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ pe32.dwSize = sizeof(PROCESSENTRY32);
|
|
|
+
|
|
|
+ if (Process32First(hProcessSnap, &pe32))
|
|
|
+ {
|
|
|
+ do
|
|
|
+ {
|
|
|
+ // szExeFile只是文件名,不知道是否只有win10才这样;
|
|
|
+ if (_tcsicmp(strApp.c_str(), pe32.szExeFile) == 0)
|
|
|
+ {
|
|
|
+ m_dwCurAppId = dwProcessID = pe32.th32ProcessID;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } while (Process32Next(hProcessSnap, &pe32));
|
|
|
+ }
|
|
|
+ CloseHandle(hProcessSnap);
|
|
|
+
|
|
|
+ return dwProcessID;
|
|
|
+}
|
|
|
+
|
|
|
bool CIRControl::getDeviceNameList()
|
|
|
{
|
|
|
return getDeviceNameList(m_vtDevices);
|
|
@@ -239,9 +270,9 @@ bool CIRControl::getDeviceNameList(std::vector<std::string>& vtDevice)
|
|
|
|
|
|
// 去除方括号;
|
|
|
fun_dev(vtDevice, data.substr(0, npos));
|
|
|
- data = data.substr(npos);
|
|
|
+ data = data.substr(npos+1);
|
|
|
}
|
|
|
- fun_dev(vtDevice, data.substr(0, npos));
|
|
|
+ fun_dev(vtDevice, data);
|
|
|
|
|
|
// 第一个设备给当前设备;
|
|
|
if (vtDevice.size())
|