1、将软件注册到注册表,一般需要注册那些东东,注册到什么地方。2、我现在需要将后缀名 *.xxx 与被安装软件 yyyy.exe 关联起来,需要怎么改InstallShield for vc++ ? 能详细一点最好。3、如何同时制作对应的“删除程序”?我搜索了很长时间也没有找到关于InstallShield for VC++ 的教程,那位大侠能给个我。 Email: [email protected]
解决方案 »
- 已经获取网页代码,vc用什么办法可以检测到其中是否包含恶意代码?
- 在试图或者窗口上create控件,应该是重载Create还是响应WM_CREATE
- 为什么这个程序不能正常退出,一定要用任务管理器结束进程?
- 在线等声明一个CListView,得到CListCtrl &listCtrl = GetListCtrl();listCtrl引用,我想用Export这个模式,怎么设置呀?
- 关于delete的问题?
- win32 console application中,怎么设置屏幕的模式?
- 谁能介绍几个比较好一点的csdn级别的外文网站呀!
- 在程序启动时,弹出一个对话框
- 请问cj60.dll在哪可以下载
- 再不同类里读写内存中数据的问题?
- 想取flsh文件中的一帧保存为bmp图片,不用shockwaveflash组件能不能实现
- 高分求教:多个进程之间怎么共享设备?
1.软件会在local_machine\software\microsoft\***\生成一个分之,将你软件的版本号写入。如果有什么需要自己添加到注册表,那就需要自己创建。***是你的应用程序名称
2.只要将该文件同时包含进去即可,记得有个属性页上可以添加包含文件的。
3.它的删除程序我没做过,但它会在C:\***\InstallShield目录下生成一个字符串类的目录,程序的删除就根据它来实现。
不知道对你有没有帮助!
A:这个在InstallShield生成完安装文件自动就写入注册表里了啊2、我现在需要将后缀名 *.xxx 与被安装软件 yyyy.exe 关联起来,需要怎么改InstallShield for vc++ ? 能详细一点最好。A:在Link页里点右键加入你要加的文件3、如何同时制作对应的“删除程序”?
A:InstallShield会生成卸载的
如果不行,可以用SetFatory这个东东,非常的好用
string szProgram;
string svDefGroup;
string szAppName;
begin
svDefGroup="RS\\RSDP1.0" ;
CreateProgramFolder(svDefGroup);
ShowProgramFolder( svDefGroup, SW_SHOW);
szProgram = szInstallPath ^ "\\RSDP.exe";
LongPathToQuote( szProgram, TRUE );
szAppName="RSDP1.0";
AddFolderIcon( svDefGroup, szAppName, szProgram, TARGETDIR,
"", 0, "", REPLACE );
szProgram = szInstallPath^ "\\RSDP1.0用户手册.doc";
LongPathToQuote( szProgram, TRUE );
szAppName="RSDP1.0手册";
AddFolderIcon( svDefGroup, szAppName, szProgram, TARGETDIR,
"", 0, "", REPLACE ); szProgram = szInstallPath^ "\\RSDP1.0.chm";
LongPathToQuote( szProgram, TRUE );
szAppName="RSDP1.0帮助";
AddFolderIcon( svDefGroup, szAppName, szProgram, TARGETDIR,
"", 0, "", REPLACE ); LongPathToShortPath ( svLogFile );
szProgram = UNINST;
szProgram = szProgram + " -f" + svLogFile;
AddFolderIcon( svDefGroup, "卸载RSDP1.0",
szProgram,
WINDIR,//TARGETDIR
"", 0, "", REPLACE ); Delay( 1 );
return 0; end;
//////////////////////////////////////////////////////////////////////////////
//
// FUNCTION: OnMaintUIBefore
//
// EVENT: MaintUIBefore event is sent when end user runs installation that
// has already been installed on the machine. Usually this happens
// through Add/Remove Programs applet. In the handler installation
// usually displays UI allowing end user to modify existing installation
// or uninstall application. After this function returns,
// ComponentTransferData is called to perform file transfer.
//
///////////////////////////////////////////////////////////////////////////////
function OnMaintUIBefore()
NUMBER nResult,nLevel,nType;
//#define TITLE_CAPTIONBAR "Word Processor Setup"STRING szTitle,szMsg,svDir,szComponents,svResult,szCaption;
begin
//To Do: if you want to enable background, window title, and caption bar title
SetTitle( @TITLE_MAIN+"", 24, WHITE );
Enable( BACKGROUND );
szCaption = "通信";
svResult = "您想卸载系统吗?按'确定'进行卸载";
nResult = SprintfBox(MB_OKCANCEL,szCaption,"%s",svResult);
if (nResult =IDOK) then
SetStatusWindow(0, "正在卸载系统");
Enable(STATUSEX) ;
StatusUpdate(ON, 100);
//-->Remove all components
ComponentRemoveAll();
FlagUnin = "UninOk";
else
FlagUnin = "UninCancel";
endif;
TO: seilfer2000(鬼手韩特) 在InstallShield for VC++中,只有一页简单的代码,上述代码段,又该放那儿呐,
要是没有InstallShield,到天大校园网上下
www.twt.edu.cn
那里面的版本不错
并且InstallShield For VC++中有好多函数用不了。卸载的时候就添加下面的代码可以
function OnMaintUIBefore()
STRING svResult,szCaption;
NUMBER nResult;
begin
// TO DO: if you want to enable background, window title, and caption bar title
// SetTitle( @TITLE_MAIN, 24, WHITE );
// SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION );
// SetColor(BACKGROUND,RGB (0, 128, 128));
// Enable( FULLWINDOWMODE );
// Enable( BACKGROUND );
//Maintenance Mode
CloseLanServer();
svResult = SdLoadString(IFX_MAINTUI_MSG);
szCaption = SdLoadString(IFX_ONMAINTUI_CAPTION);
nResult = SprintfBox(MB_OKCANCEL,szCaption,"%s",svResult);
if (nResult = IDCANCEL) then
exit;
elseif(nResult = IDOK) then
// setup default status
SetStatusWindow(0, "");
Enable(STATUSEX);
StatusUpdate(ON, 100); //-->Remove all components
ComponentRemoveAll();
endif;
DeleteDir(TARGETDIR,ALLCONTENTS);
DeleteDir(TARGETDIR,ONLYDIR);
return 0;
end;这些代码都是InstallShield6。22的,我在前面说过了到天大下载
注册时候,主要注册下面信息Resource中的String内容以及
安装包的ID,这点InstallShield for VC++ 中好像不能更改
另外卸载的过程相当于第二次运行安装包,还可以这样做
假如说安装包名字为setup。可以用命令行setup -unist 参数好像是这个,
记不住了
InstallShield会响应一些事件,你可以在工具栏的两个combox中制定,上面列出的代码function OnMaintUIBefore()
是在Before Move Data中的Maintenance UI Before对应的。你可以理解为这个函数会在该时刻触发,如果希望在某一事件的响应函数增加自己的处理,就需要"重载"至于在Registry中加自己的值,就要看自己的目的了。我一般会加一些标志或者文件关联之类的信息。
再HKEY_CLASSES_ROOT下增加xxxFile的键,将value指定为你自己的描述,这个描述就可以在该文件的属性页面中看到。
随后在xxxFile键下面定义DefaultIcon键以及shell键,将DefaultIcon的value设为.xxx文件的图标,比如"<TARGETDIR>\xxx.exe,1"后面的为该exe文件的图标资源序号。
而在shell键下定义Open键再下一级定义command键,并将command的value定义为打开.xxx文件的程序,如"<TARGETDIR>\xxx.exe" "%1".呵呵,这应该就明白了。
其实这些东西自己看看文件夹选项中的文件关联设置,照猫画虎就ok了。