我是新手,做了个mis小软件(用的是Access的数据库,ado连接),只要把exe文件与数据库文件放到同一目录下就可以运行,无论放到哪里。打包安装后(安装到默认的C:\Program Files\xxx下),出现了一个奇怪的问题:如果用桌面快捷方式打开,程序就会在桌面寻找数据库;如果在开始菜单的程序组中打开,程序就会在C盘根目录下寻找数据库;而直接到C:\Program Files\xxx下打开才正常运行。怎么办?btw:用的是inno setup 与 Setup Generator Pro,情况都一样。

解决方案 »

  1.   

    桌面快捷方式的主目录被设置成桌面了.既然必定是同一个目录,建议打开数据库文件时,用ExtractFilePath(Application.ExeName)+YourDBFileName
      

  2.   

    :如果用桌面快捷方式打开,程序就会在桌面寻找数据库;如果在开始菜单的程序组中打开,程序就会在C盘根目录下寻找数据库;而直接到C:\Program Files\xxx下打开才正常运行。怎么办?
    右击“桌面的快捷方式”--》属性--》“起始位置”一栏是否是:C:\Program Files\xxx
      

  3.   

    回楼上的,这个当然是首先要做的事,一切正常。刚刚下载了Setup Factory 6.0,用它后问题解决了;而且功能强劲、十分好用,强烈推荐,呵呵~真的不明白,那些快捷方式相当于一个“指针”罢了,为什么会有此等怪事?当然了,从此inno setup 与 Setup Generator Pro被我打进了黑名单了。
      

  4.   

    首先程序必须修改,否则用户修改了快捷方式的起始位置,程序就会出错,这是程序不健壮的表现。
    用 INeedCa(缺钙) 的方法。
      

  5.   

    既然必定是同一个目录,建议打开数据库文件时,用ExtractFilePath(Application.ExeName)+YourDBFileName可以解决问题的