HKEY
m_regkey;
TCHAR
filename[_MAX_PATH];
GetModuleFileName(NULL,filename,_MAX_PATH);
RegOpenKey(HKEY_LOCAL_MACHINE,L
"Software\\Microsoft\\Windows\\CurrentVersion\\Run"
,&m_regkey);
RegSetValueEx(m_regkey,L
"程序名称"
,0,REG_SZ,(
const
unsigned
char
*)filename,MAX_PATH);
RegCloseKey(m_regkey);
HKEY
hKey;
if
(RegOpenKeyEx(HKEY_LOCAL_MACHINE,L
"Software\\Microsoft\\Windows\\CurrentVersion\\Run"
,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)
{
RegDeleteValue(hKey,L
"程序名称"
);
RegCloseKey(hKey);
}
TCHAR
szPath[MAX_PATH];
GetModuleFileName(NULL, szPath, MAX_PATH);
STARTUPINFO startupInfo;
PROCESS_INFORMATION procInfo;
memset
(&startupInfo,0x00,
sizeof
(STARTUPINFO));
startupInfo.cb =
sizeof
(STARTUPINFO);
::CreateProcess(szPath,NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&startupInfo,&procInfo);
HANDLE
m_hMutex = CreateMutex(NULL, FALSE, _T(
"AetasServer"
));
if
(GetLastError() == ERROR_ALREADY_EXISTS)
{
AfxMessageBox(L
"程序名称,已经运行"
);
CloseHandle(m_hMutex);
m_hMutex = NULL;
return
FALSE;
}
#pragma comment(lib, "winspool.lib")
#include <io.h>
#include <fcntl.h>
void
InitConsole()
{
int
nRet= 0;
FILE
* fp;
AllocConsole();
nRet= _open_osfhandle((
long
)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
fp = _fdopen(nRet,
"w"
);
*stdout = *fp;
setvbuf
(stdout, NULL, _IONBF, 0);
}
FreeConsole(
VOID
);