以前在论坛上看到有人问这个,如今自己也打算做一个,于是搜索了以前的帖,发现很多答案说的都是关于6.22的,或者不十分详细,自己用IS Developer 8 照着做了一下,好像有点差异,自己看help文档吧~
文档说有两种方法:一种是通过IDE做,一种写脚本,本来以为用IDE省事,可操作未成功,可能是我不太会用那个功能
。 那就copy个脚本来吧……果然很省事,很快做好了,运行,一看,嗯?怎么不能用?
看了下快捷方式的属性,目录搞错,why?看了下代码,发现有个针对Win9X的条件判断,仔细看看中间的内容,正好是处理刚才那个错误的功能,晕~ 怎么Wind2K也要用这个代码啊?这可是Server耶~~~去掉操作系统版本判断,编译,运行,ok!
可是……怎么在“程序”文件夹里,我想放在我自己的产品文件夹里,怎么办呢?自己写代码吧~原来就2-3句就可以搞定了,不过我倒是折腾了半天
代码如下:(不用奇怪,没错,就是文档里copy出来的,我自己加了几句而已)
prototype CreateUninstallShortcut(); //这句我把它扔在#include "ifx.h"后面了
///下面的我放setup.rul最后面了
///////////////////////////////////////
function CreateUninstallShortcut()
string strCmdLine, strProductFolder;
LIST lstPath;
int nPos;
begin
strCmdLine = UNINSTALL_STRING;
nPos = StrFind(@ID_STRING3, "|") + 1;
StrSub(strProductFolder, @ID_STRING3, nPos, -1);
lstPath = ListCreate( STRINGLIST );
StrGetTokens( lstPath, UNINSTALL_STRING, "/" );
ListGetFirstString( lstPath, strCmdLine );
LongPathToQuote( strCmdLine, TRUE );
strCmdLine = strCmdLine + " /M" + PRODUCT_GUID;
// Create the shortcut.
AddFolderIcon(FOLDER_PROGRAMS ^ strProductFolder, "卸载",strCmdLine, "","",0, "", NULL );
end;
//////////////////////////////
好了,最后只需在OnFirstUIBefore函数return之前调用下那个函数就over了~
这下就可以随意改程序文件夹(就是菜单所在文件夹)了
怎么样?是不是不用再为了不知道如何创建卸载快捷方式而急得
了?嘿嘿……哦,忘了说那个ID_STRING3是哪来的了,在快捷方式创建的界面里,选择你的产品文件夹,看右边属性……Display Name:……{ID_STRING3}就这么来的~