init
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
#include "utils.h"
|
||||
|
||||
#define MUTEX_NAME XOR_STRING_W(L"Local\\seriver_mutex_anit")
|
||||
|
||||
auto utils::check_mutex() -> BOOL
|
||||
{
|
||||
HANDLE mutex = CreateMutex(nullptr, TRUE, MUTEX_NAME);
|
||||
if (!mutex || GetLastError() == ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
CloseHandle(mutex);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
|
||||
// 不区分大小写宽字符串查找
|
||||
bool utils::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 utils::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;
|
||||
}
|
||||
Reference in New Issue
Block a user