我在注册表里面写了让程序自启动,程序可以启动了,但发现程序执行的路径是c:\Documents and Seettings\Adminstrator,不是当前执行程序的路径,所以出现了很多问题,能不能让自启动的程序运行在当前的目录吗?谢谢!

解决方案 »

  1.   

    不明白你说的,你到注册表的Run子项里建一个字符串,内容写你程序路径eg:I:\\xx.exe那么加载的自然是你在I盘下的程序了啊,怎么会换路径呢?
      

  2.   

    是当前的路径不是程序的运行路径,而是 c:\Documents and Seettings\Adminstrator
      

  3.   


    //得到程序所在目录
    WCHAR szPath[MAX_PATH+1];
    GetModuleFileName( AfxGetInstanceHandle(),szPath,MAX_PATH + 1);   
    CString m_strAppPath = szPath;
      

  4.   

    我运行的程序不是exe,是一个bat,所以路径是很大的问题,我怎么在bat里面写获得得到程序所在目录?
      

  5.   

    你要用GetModuleFileName来获取当前程序的真实路径。。这样再把程序加载的资源根据这个路径来进行加载
      

  6.   

    简单点说就是
    不是依靠你脚本来获取EXE路径
    而是在EXE每次运行时检查自己的路径,并重写注册表。
    获取函数上面几位已经给出
      

  7.   

    bat 用不了GetModuleFileName,怎样在bat里面用当前路径?
      

  8.   

    bat里面就启动程序好了,其他工作交给exe来做..