关于鼠标右键菜单的问题,请朋友们进来指点,有部分源程序。
pms 2001-07-31 11:21:23 还是那个文件加密工具fedt for windows v2.50,软件可从这里下载:
http://download.pchome.net/php/download.php?sid=4792&svr=1
该版本我加入了鼠标右键菜单的功能,但有个问题,有时对某类文件(比如还未确定文件关联的文件类型),双击时会用“用fedtw加密”打开该文件,也就是,对这类文件点鼠标右键时,“用fedtw加密”是黑体的,但我并不希望这样,如何做才行?另外,我想做到,在鼠标右键菜单中只加入一项“fedtw”主菜单,而“fedtw”下又有“用fedtw加密”、“用fedtw解密”、“用fedtw加密后打包为EXE文件”、“用fedtw安全地删除该文件”等子菜单,又该如何做呢?
题外话:哪位有能力的朋友能帮我将该软件的说明翻译为英文?定给一定报酬。
下面是我程序中关于加入鼠标右键菜单的一段子函数:
//---------------------------------------------------------------------------
//将程序加入鼠标右键菜单
void __fastcall TForm1::AddToRightMenu()
{
AnsiString String;
TRegistry *pReg=new TRegistry();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("*\\shell\\用fedtw加密\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/Encrypt"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("*\\shell\\用fedtw解密\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/Decrypt"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("*\\shell\\用fedtw加密后打包为EXE文件\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/EncryptToEXE"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("*\\shell\\用fedtw安全地删除该文件\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/SafelyDelFiles"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("directory\\shell\\用fedtw加密该目录下所有文件\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/EncryptDir"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("directory\\shell\\用fedtw解密该目录下所有文件\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/DecryptDir"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("directory\\shell\\用fedtw安全地删除该目录下所有文件\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/SafelyDelDirFiles"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("directory\\shell\\用fedtw加密该目录下所有文件并打包为EXE文件\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/EncryptDirToEXE"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("exefile\\shell\\用fedtw加密码保护\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/EncryptEXE"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
pReg->RootKey=HKEY_CLASSES_ROOT;
if(pReg->OpenKey("exefile\\shell\\用fedtw解除密码保护\\command",true))
{
String="\""+StrPas(_argv[0])+"\""+" "+"/DecryptEXE"+" "+"\"%1\"";
pReg->WriteString("",String);
}
pReg->CloseKey();
delete pReg;
}
//---------------------------------------------------------------------------