程序的需要,某个功能做成dll,  后期可直接替换,放在exe目录下,则用户知道了安装目录,一次想放在syste32目录下, 用户拿到新的dll时,如何自动复制dll 到 system32目录下呢?谢谢!如何用命令复制dll 到system32

解决方案 »

  1.   

    写个批处理文件
    copy 。。 c:\windows\system32\..dll
      

  2.   

    可以用SHGetFolderPath指定CSIDL_SYSTEM得到路径后复制进去
      

  3.   

    新的问题来了,程序打包时,不需要批处理文件来拷贝的,直接在installshield脚本中利用XCopyFile(ProgramFilesFolder^"CalData\\CalData.dll",SystemFolder, COMP_NORMAL);将dll拷贝到系统system32目录下,但是:原来程序安装目录下那个dll, 需要删除的,因为后期改动的新的dll 是放在system32目录下的。如果不删除,这个dll是多余的,因此采用了脚本DeleteFile(ProgramFilesFolder^"CalData\\CalData.dll");  
    安装完后,一切正常,在system32目录下果然有个CalData.dll,而且安装目录下的CalData.dll也不见了,
    似乎高兴了,可是当我们点击程序安装好的快捷方式时,自动弹出一个框子,在原来安装的目录下又生成了CalData.dll, 这个太头痛了。搞半天了,以为都正常了,结果这个地方出现问题了。 
         初步想法: 在程序中使用system32目录下的CalData.dll, 脚本中不删除安装目录下的CalData.dll,但是安装目录下的dll多余的。觉得不完美, 似乎快捷方式会检查安装目录下是否有CalData.dll,没有就从安装包里么找到那个dll, 拷贝到安装目录。
          哪位熟悉installshield打包的,望指导,谢谢!
      

  4.   

    installsield做安装包的时候直接安装在system文件夹下