📄 cnutility.cpp
字号:
try{
if(Reg->OpenKey(KeyName,FALSE))
{
if( Reg->ValueExists(OldName))
{
Reg->RenameValue(OldName,NewName);
Success = TRUE;
}
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
return Success;
}
void CN_ShowDesktop(bool Flag)
{
HANDLE hDesktop;
hDesktop = FindWindow("Progman", NULL);
if(!Flag)
{
ShowWindow(hDesktop, SW_HIDE);
}
else
{
ShowWindow(hDesktop, SW_SHOW);
}
}
void CN_SetSysHotKey(bool Flag)
{
int temp;
if( Flag)
{
SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,&temp,0);
}
else
{
SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,&temp,0);
}
}
void CN_DisabledRegeidt(bool Flag)
{
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "software\\microsoft\\windows\\currentversion\\policies\\system";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
{
Reg->WriteInteger("DisableRegistryTools",1);
}
else
{
Reg->DeleteValue("DisableRegistryTools");
}
}
Reg->CloseKey();
}
__finally
{
delete Reg;
}
}
void CN_DisabledMouse(bool Flag)
{
RECT rt;
rt.left = 0;
rt.top = 0;
rt.right = 0;
rt.bottom = 0;
if( Flag)
{
// MapWindowPoints(NULL, 0, rt, 2); // 座标换算
ClipCursor(&rt);
}
else
{
ClipCursor(NULL);
}
}
void CN_ShowTray_Shell(bool Flag)
{
HANDLE hShell;
hShell = FindWindow("Shell_TrayWnd", NULL);
if(!Flag)
{
ShowWindow(hShell, SW_HIDE);
}
else
{
ShowWindow(hShell, SW_SHOW);
}
}
void CN_SetPowerState(bool Flag)
{
SetSystemPowerState(true,Flag);
}
void CN_SendHotKeyToTaskBar(DWORD Msg)
{
HANDLE hTaskBar;
hTaskBar = FindWindow("shell_traywnd",NULL);
SendMessage(hTaskBar,WM_HOTKEY,Msg,0);
}
void CN_DisableMouseRight(bool Flag)
{
//禁止鼠标右键
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "software\\microsoft\\windows\\currentversion\\policies\\Explorer";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteBinaryData("NoViewContextMenu","\0x1\0\0\0",4);
else
Reg->DeleteValue("NoViewContextMenu");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoLogOff(bool Flag)
{
//禁止“注销”菜单
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "software\\microsoft\\windows\\currentversion\\policies\\Explorer";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteBinaryData("NoLogOff","\0x1\0\0\0",4);
else
Reg->DeleteValue("NoLogOff");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoDeletePrinter(bool Flag)
{
//禁止“删除打印机"
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "software\\microsoft\\windows\\currentversion\\policies\\Explorer";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteInteger("NoDeletePrinter",1);
else
Reg->DeleteValue("NoDeletePrinter");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoNetSetup(bool Flag)
{
//禁用“网络”控制面板
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "software\\microsoft\\windows\\currentversion\\policies\\System";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteInteger("NoNetSetup",1);
else
Reg->DeleteValue("NoNetSetup");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoProfilePage(bool Flag)
{
//禁用“用户”控制面板
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "software\\microsoft\\windows\\currentversion\\policies\\System";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteInteger("NoProfilePage",1);
else
Reg->DeleteValue("NoProfilePage");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoSecCPL(bool Flag)
{
//禁用“密码”控制面板
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "software\\microsoft\\windows\\currentversion\\policies\\System";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteInteger("NoSecCPL",1);
else
Reg->DeleteValue("NoSecCPL");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoChangeStartMenu(bool Flag)
{
//禁止修改”开始“菜单
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "Software\\microsoft\\windows\\currentversion\\policies\\Explorer";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteInteger("NoChangeStartMenu",1);
else
Reg->DeleteValue("NoChangeStartMenu");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoSetFolders(bool Flag)
{
//禁止修改“控制面板”
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "Software\\microsoft\\windows\\currentversion\\policies\\Explorer";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteBinaryData("NoSetFolders","\0x1\0\0\0",4);
else
Reg->DeleteValue("NoSetFolders");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_NoDispCPL(bool Flag)
{
//禁止修改显示属性
TCNString NameOfKey;
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "Software\\microsoft\\windows\\currentversion\\policies\\System";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
Reg->WriteInteger("NoDispCPL",1);
else
Reg->DeleteValue("NoDispCPL");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
void CN_HideDrivers(int DriverNum)
{
//隐藏驱动器-1 All,0-A, 1-B,2-C,...
TCNString NameOfKey;
bool Flag = TRUE;
DWORD Value = 0;
switch( DriverNum)
{
case -2: Flag = FALSE; break;
case -1: Value = 0xffffffff; break;
case 0: Value = 1; break;
case 1: Value = 2; break;
case 2: Value = 4; break;
case 3: Value = 8; break;
case 4: Value = 10; break;
case 5: Value = 12; break;
}
TCNRegistry *Reg = new TCNRegistry;
try
{
Reg->SetRootKey(HKEY_CURRENT_USER); // Section to look for within the registry
NameOfKey = "Software\\microsoft\\windows\\currentversion\\policies\\Explorer";
if (Reg->OpenKey(NameOfKey, true))
{
if( Flag)
{
Reg->WriteInteger("NoDrives",Value);
}
else
Reg->DeleteValue("NoDrives");
}
Reg->CloseKey();
}
__finally{
delete Reg;
}
}
BOOL CALLBACK KillScreenSaverFunc(HWND hwnd, LPARAM lParam)
{
PostMessage(hwnd, WM_CLOSE, 0, 0);
return TRUE;
}
void CN_KillScreenSaver()
{
OSVERSIONINFO osversioninfo;
osversioninfo.dwOSVersionInfoSize = sizeof(osversioninfo);
// Get the current OS version
if (!GetVersionEx(&osversioninfo))
return;
// How to kill the screen saver depends on the OS
switch (osversioninfo.dwPlatformId)
{
case VER_PLATFORM_WIN32_WINDOWS:
{
// Windows 95
// Fidn the ScreenSaverClass window
HWND hsswnd = FindWindow ("WindowsScreenSaverClass", NULL);
if (hsswnd != NULL)
PostMessage(hsswnd, WM_CLOSE, 0, 0);
break;
}
case VER_PLATFORM_WIN32_NT:
{
// Windows NT
// Find the screensaver desktop
HDESK hDesk = OpenDesktop(
"Screen-saver",
0,
FALSE,
DESKTOP_READOBJECTS | DESKTOP_WRITEOBJECTS
);
if (hDesk != NULL)
{
// Close all windows on the screen saver desktop
EnumDesktopWindows(hDesk, (WNDENUMPROC) &KillScreenSaverFunc, 0);
CloseDesktop(hDesk);
// Pause long enough for the screen-saver to close
Sleep(2000);
// Reset the screen saver so it can run again
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, 0, SPIF_SENDWININICHANGE);
}
break;
}
}
}
static void CN_KillWallpaper()
{
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_SENDCHANGE);
}
static void CN_RestoreWallpaper()
{
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL, SPIF_SENDCHANGE);
}
TCNString CN_GetAwardCmosPassword(void)
{
TCmos *Cmos;
TCNString sTmp = "";
Cmos = new TAward;
sTmp = sTmp + Cmos->Password(0) + ";"
+ Cmos->Password(1) + ";"
+ Cmos->Password(2) + ";"
+ Cmos->Password(3);
delete Cmos;
return sTmp;
}
bool CN_SetLocalComputerName(TCNString ComputerName)
{
return SetComputerName(ComputerName.c_str());
}
TCNString CN_GetSysEventString(void)
{
char *strings = GetEnvironmentStrings () ;
TCNString sTmp = "";
for (int index = 0 ; strings [index] != 0 ; index += strlen (&strings [index]) + 1)
{
sTmp = sTmp + &strings [index] + ">*<";
}
FreeEnvironmentStrings (strings) ;
return sTmp;
}
bool CN_SetSysEvenString(TCNString Name,TCNString Value)
{
return SetEnvironmentVariable (Name.c_str (), Value.c_str ()) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -