关于鼠标右键菜单的问题,请朋友们进来指点,有部分源程序。

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;
}
//---------------------------------------------------------------------------
...全文
183 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
码农猿圈圈 2001-08-05
  • 打赏
  • 举报
回复
我也是对Shell扩展编程很感兴趣,找了不少这方面的资料,正想大干一场,可突然忙起来,耽搁了。
建议大家到www.codeproject.com上去看一看它的shell programing专题,其中有一个系列文章专门讲到了这个问题,还有不少例子代码。
不过我个人认为,在动手作之前最好先对COM熟悉一下,不但要知道该怎么做,而且要知道为什么这么做!
很高兴能和大家一起学习, :)
anaki@yeah.net
pms 2001-08-05
  • 打赏
  • 举报
回复
转个地方,看是否有高手能献招。
pms 2001-08-03
  • 打赏
  • 举报
回复
谢谢秋枫兄,我也看到这篇文章,待我慢慢研究一下。
「已注销」 2001-08-02
  • 打赏
  • 举报
回复
电脑报7月30日版有介绍

我刚看过

@_@
pms 2001-08-02
  • 打赏
  • 举报
回复
班助不发话了,我就以为他有保留了?班助,你还是说说话吧,哪怕给点线索也行啊。
pms 2001-08-02
  • 打赏
  • 举报
回复
cuteftp 4.2我没装过,我试试看。最新版的winzip 8.1也是类似的右键菜单。
luhongjun 2001-08-02
  • 打赏
  • 举报
回复
哈哈,我也只知道修改注册表,用COM怎么做,斑竹出着,兄弟们接着呢.
pms(高山流水),怎能说帮助保留,帮助手上没有现成的,掌嘴.
「已注销」 2001-08-02
  • 打赏
  • 举报
回复
你装上Cuteftp4.2看一看

它的菜单就是级联式的

我找了一下 没发现

你看看吧

@_@
pms 2001-08-02
  • 打赏
  • 举报
回复
这里高手不少啊,怎么没人回答?!孙版主,不要保留啊?
另外,程序在加密较大文件时,会暂时出现一个灰框,有没有好办法避免?
pms 2001-08-01
  • 打赏
  • 举报
回复
孙版主,快帮帮忙啊!谢谢谢谢......!
XioGua 2001-08-01
  • 打赏
  • 举报
回复
关注
抬头看路 2001-08-01
  • 打赏
  • 举报
回复
关注
路人丁 2001-08-01
  • 打赏
  • 举报
回复
关注关注!你是:彭茂山
HEROIN 2001-08-01
  • 打赏
  • 举报
回复
关注
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
up
pms 2001-07-31
  • 打赏
  • 举报
回复
请孙版主说详细些,好吗?有没有这方面的资料?谢了!
Wingsun 2001-07-31
  • 打赏
  • 举报
回复
你这儿仅仅是简单的使用注册表而已!
改吧!
Wingsun 2001-07-31
  • 打赏
  • 举报
回复
我觉得的程序写错了,实际这儿应该使用COM来完成你的工作也就是Shell的扩展。
你应该专门写一个Shell的扩展程序。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧