1、将软件注册到注册表,一般需要注册那些东东,注册到什么地方。2、我现在需要将后缀名 *.xxx 与被安装软件 yyyy.exe 关联起来,需要怎么改InstallShield for vc++ ? 能详细一点最好。3、如何同时制作对应的“删除程序”?我搜索了很长时间也没有找到关于InstallShield for VC++ 的教程,那位大侠能给个我。  Email:  [email protected]

解决方案 »

  1.   

    我以前用InstallShield给VC程序打过包,一个较简单的程序。不知道会不会类似。
    1.软件会在local_machine\software\microsoft\***\生成一个分之,将你软件的版本号写入。如果有什么需要自己添加到注册表,那就需要自己创建。***是你的应用程序名称
    2.只要将该文件同时包含进去即可,记得有个属性页上可以添加包含文件的。
    3.它的删除程序我没做过,但它会在C:\***\InstallShield目录下生成一个字符串类的目录,程序的删除就根据它来实现。
    不知道对你有没有帮助!
      

  2.   

    1、将软件注册到注册表,一般需要注册那些东东,注册到什么地方。
    A:这个在InstallShield生成完安装文件自动就写入注册表里了啊2、我现在需要将后缀名 *.xxx 与被安装软件 yyyy.exe 关联起来,需要怎么改InstallShield for vc++ ? 能详细一点最好。A:在Link页里点右键加入你要加的文件3、如何同时制作对应的“删除程序”?
    A:InstallShield会生成卸载的
    如果不行,可以用SetFatory这个东东,非常的好用
      

  3.   

    给你些IS的脚本,自己看看吧:function SetupFolders()
        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; 
      

  4.   

    再给你段卸载得
    //////////////////////////////////////////////////////////////////////////////
    //
    //  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;
      

  5.   

    非常谢谢各位大侠TO: carbon107(<软件开发思想.h>)   我用的是InstallShield for VC++, 不是InstallShield ,两者截面和操作有不小的区别。 在 InstallShield form VC++ 中,在Resources 栏下有Registry Entries 组,其中可以添加需要对注册表修改的内容,可似乎太简单,不知如何用法。
    TO: seilfer2000(鬼手韩特)     在InstallShield  for VC++中,只有一页简单的代码,上述代码段,又该放那儿呐,
      

  6.   

    楼主为什么故步自封呢。
    要是没有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 参数好像是这个,
    记不住了
      

  7.   

    找到了,参数是-uninst,至于2没看明白是什么意思
      

  8.   

    InstallShield for VC++和InstallShield類似,可以看做是简化版本,有一些函数不能用在for VC++版本中不支持倒是真的。
    InstallShield会响应一些事件,你可以在工具栏的两个combox中制定,上面列出的代码function OnMaintUIBefore()
    是在Before Move Data中的Maintenance UI Before对应的。你可以理解为这个函数会在该时刻触发,如果希望在某一事件的响应函数增加自己的处理,就需要"重载"至于在Registry中加自己的值,就要看自己的目的了。我一般会加一些标志或者文件关联之类的信息。
      

  9.   

    2、我现在需要将后缀名 *.xxx 与被安装软件 yyyy.exe 关联起来,需要怎么改InstallShield for vc++ ? 能详细一点最好。在HKEY_CLASSES_ROOT下增加.xxx的键(Key),将value指定为xxxFile
    再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了。