我的程序用到了access的数据库。。用网上的方法通过修改注册表的方法,设置程序开机启动。。而当我开机启动的时候提示。C盘下 某个目录中mdb数据库找不到。。就启动失败了。这该怎么解决呢。???

解决方案 »

  1.   

    判断文件是否存在等待
    windows服务
      

  2.   

    using Microsoft.Win32;
    public static bool SetAutoRun(string keyName,string filePath)
            {
                try
                {
                    RegistryKey runKey=Registry.LocalMachine.OpenSubKey(@"\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
                    runKey.SetValue(keyName,filePath);
                    runKey.Close();
                }
                catch
                {
                    return false;
                }
                return true;
            }test: SetAutoRun("myexe","c:\\text.exe");  
      

  3.   

    系统服务中做个Waiter,隔一段时间判断一次文件存在,超时后在抛异常
      

  4.   

    根据楼主的问题描述,应该是由于Windows启动时从system32下面启动了楼主的程序,而楼主的程序所在位置不在system32下面(如果我没猜错的话),并且数据文件MDB也是一样。故启动时找不到MDB了解决方案有多种,
    1. 程序里写死MDB绝对路径(如c:\app\abc.mdb),而不是相对路径(如abc.mdb)
    2. 程序里先找到自己所在位置,然后和abc.mdb拼接成一个完整路径
    3. 把程序和MDB都copy到system32下面(不推荐)