This commit is contained in:
2026-08-24 14:47:59 +08:00
parent e91e372b19
commit 75d9b25362
45 changed files with 17462 additions and 129 deletions
+101
View File
@@ -148,4 +148,105 @@ namespace utils
return Pid;
}
// 不区分大小写查找子串
bool StrContainsI(const char* src, const char* sub)
{
char* p = strstr(_strlwr((char*)src), _strlwr((char*)sub));
return p != nullptr;
}
// 不区分大小写宽字符串查找
bool StrContainsI(LPCWSTR Source, LPCWSTR Sub)
{
if (!Source || !Sub)
return FALSE;
WCHAR srcBuf[1024] = { 0 };
WCHAR subBuf[1024] = { 0 };
lstrcpyW(srcBuf, Source);
lstrcpyW(subBuf, Sub);
_wcslwr(srcBuf);
_wcslwr(subBuf);
return wcsstr(srcBuf, subBuf) != nullptr;
}
// 读取注册表字符串值
BOOL RegReadString(HKEY hRoot, LPCSTR szSubKey, LPCSTR szValueName, char* outBuf, DWORD bufSize)
{
HKEY hKey;
LONG ret = RegOpenKeyExA(hRoot, szSubKey, 0, KEY_READ, &hKey);
if (ret != ERROR_SUCCESS)
return FALSE;
DWORD dataType = REG_SZ;
DWORD dataLen = bufSize;
ret = RegQueryValueExA(hKey, szValueName, nullptr, &dataType, (LPBYTE)outBuf, &dataLen);
RegCloseKey(hKey);
if (ret != ERROR_SUCCESS)
return FALSE;
outBuf[dataLen] = '\0';
return TRUE;
}
void GetProcessName(
DWORD ProcessId,
char* ProcessName,
DWORD ProcessNameSize
)
{
ProcessName[0] = '\0';
HANDLE ProcessHandle =
OpenProcess(
PROCESS_QUERY_LIMITED_INFORMATION,
FALSE,
ProcessId
);
if (!ProcessHandle)
{
strcpy_s(
ProcessName,
ProcessNameSize,
"Unknown"
);
return;
}
DWORD Size = ProcessNameSize;
if (!QueryFullProcessImageNameA(
ProcessHandle,
0,
ProcessName,
&Size))
{
strcpy_s(
ProcessName,
ProcessNameSize,
"Unknown"
);
}
else
{
char* FileName =
strrchr(ProcessName, '\\');
if (FileName)
{
memmove(
ProcessName,
FileName + 1,
strlen(FileName)
);
}
}
CloseHandle(ProcessHandle);
}
}