📄 global.cpp
字号:
// Global.cpp: implementation of the CGlobal class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
//#include "resource.h"
#include "Global.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
static Win32Type g_Shell=IsShellType();
/////////////////////////////////////////////////////////////////////////////
// global functions
BOOL FileExists( char* sFilename )
{
WIN32_FIND_DATA fd;
HANDLE hFind = FindFirstFile(sFilename, &fd);
if (hFind == INVALID_HANDLE_VALUE) {
FindClose(hFind);
return FALSE;
}
FindClose(hFind);
return TRUE;
}
/*
BOOL FileExists( LPCTSTR sFilename )
{
//ASSERT( sFilename );
CFileFind f;
CString Filename( sFilename );
BOOL res = f.FindFile( Filename );
f.Close();
return res;
};
bool FileExists(const char *pszPath)
{
bool bRet = false;
CFileStatus status;
if ( CFile::GetStatus( pszPath, status ) )
{
bRet = true;
}
else
{
bRet = false;
}
return bRet;
}
*/
Win32Type IsShellType()
{
Win32Type ShellType;
DWORD winVer;
OSVERSIONINFO *osvi;
winVer=GetVersion();
if(winVer<0x80000000)
{/*NT */
ShellType=WinNT3;
osvi= (OSVERSIONINFO *)malloc(sizeof(OSVERSIONINFO));
if (osvi!=NULL)
{
ZeroMemory(osvi,sizeof(OSVERSIONINFO));
osvi->dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
if(!GetVersionEx(osvi))
{
//ShowLastError();
}
if(osvi->dwMajorVersion==4L)
{
ShellType=WinNT4;
}
else if(osvi->dwMajorVersion==5L && osvi->dwMinorVersion==0L)
{
ShellType=Win2000;
}
else if(osvi->dwMajorVersion==5L && osvi->dwMinorVersion==1L)
{
ShellType=WinXP;
}
free(osvi);
}
}
else if (LOBYTE(LOWORD(winVer))<4)
{
ShellType=Win32s;
}
else
{
ShellType=Win95;
osvi= (OSVERSIONINFO *)malloc(sizeof(OSVERSIONINFO));
if (osvi!=NULL)
{
memset(osvi,0,sizeof(OSVERSIONINFO));
osvi->dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(osvi);
if(osvi->dwMajorVersion==4L&&osvi->dwMinorVersion==10L)
{
ShellType=Win98;
}
else if(osvi->dwMajorVersion==4L&&osvi->dwMinorVersion==90L)
{
ShellType=WinME;
}
free(osvi);
}
}
return ShellType;
}
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGlobal::CGlobal()
{
// Get File Path
TCHAR szBuffer[MAX_PATH];
long lLength;
GetModuleFileName(NULL, szBuffer, MAX_PATH);
lLength = _tcslen(szBuffer) - 1;
while (lLength >= 0 && szBuffer[lLength] != _T('.')) {
szBuffer[lLength] = _T('\0');
lLength--;
}
lLength = _tcslen(szBuffer) - 1;
while (lLength >= 0 && szBuffer[lLength] != _T('\\')) {
szBuffer[lLength] = _T('\0');
lLength--;
}
_tcscpy( szExeDir, szBuffer );
/*
m_iDemo = 0;
m_iProg = 0;
// This MUST be called first--it creates all variables
CSticky m_sticky;
// Get Serial Number
char appid[100];
char serial[100];
wsprintf(appid,"%s",APP_ID);
m_sticky.getserial(appid, serial);
serial[16]='\0';
wsprintf(szSN,"%s",serial);
//AfxMessageBox((LPCSTR)szSN);
//m_sticky.GetReg(TRUE);
*/
/*
Win32s,
WinNT3,
Win95,
Win98,
WinME,
WinNT4,
Win2000,
WinXP
*/
// Get Windows Directory
char szWinDir[MAX_PATH];
GetWindowsDirectory( szWinDir, sizeof(szWinDir));
if( lstrcmp( &szWinDir[lstrlen(szWinDir)], TEXT("\\") ))
lstrcat( szWinDir, TEXT("\\"));
if (g_Shell>WinME)
{
// WinNT/Win2000/WinXP \windows\system32\drivers\etc.
wsprintf(szHosts, "%s%s", szWinDir, "system32\\drivers\\etc\\hosts");
//c:\\winnt\\system32\\drivers\\etc\\hosts
}
else
{
// Win98/WinME Windows directory.
wsprintf(szHosts, "%s%s", szWinDir, "hosts");
}
//Make backup of hosts file, "hosts_bk"
//Get value for new "demoend" days count from year 2000
//char msg1[255];
//int x = m_sticky.date2int( 14, 1 );
//wsprintf(msg1, "%u", x);
//::MessageBox(NULL,(char*)msg1, "2", MB_OK|MB_ICONINFORMATION);
}
CGlobal::~CGlobal()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -