我有这款软件的安装包,在完整安装后,把其中的一个程序单独取出来(用depends,把所有依赖的DLL都找到),放到另外一台没有安装过这款软件的机子上,发现程序能运行起来,但是程序的功能他没有实现。只有完整安装原软件后,才能使用这个程序。
   我猜应该是安装过程中往注册表或者系统的某个地方写数据了,单独使用软件上其中的一个程序是没有用的。各位有什么办法吗?

解决方案 »

  1.   

    太难说了,也许有组件需要注册,也许安装时需要往注册表写点什么,也许某些功能是通过显式加载DLL的方式完成的,这样的情况看不到依赖项。
      

  2.   

    你说的对,我用Process Monitor跟踪了下,发现程序确实有读过注册表。找了两台机器:
    A:安装过这款软件
    B:未安装过这款软件
    手动修改B的注册表,保证与A的一致。
    结果还是没法用。
      

  3.   

    如果真是显示加载DLL,用depends还真是找不到依赖库。
    难道我想用这部分功能,每次都要安装下他们的软件,那这太麻烦了。
      

  4.   

    我是想直接拿别人的这个程序放到我的软件里,我只需要直接ShellExe就行了,这样我就省了好多事。
      

  5.   

    笨办法:将他的所有DLL全复制了,然后挨个匹配试试……
    找个监控软件(可以记录程序的注册表操作、文件操作),
    把程序运行一次,分析他访问过的文件、注册表(一般和注册表无关)
      

  6.   

    我认为这安装时用Process Monitor查看下,做了那些工作,注册表操作、文件操作等。
    再模拟它做相同操作,然后放运行程序过去,应该能用。