我該如何用甚麼函數??

解决方案 »

  1.   

    .exe路径存放在注册表的:
    Software\\MicroSoft\\Windows\\CurrentVersion\\App Paths\\
    用RegOpenKeyEx()打开后
    取出你想要的路径
      

  2.   

    ??
    不懂呀!
    能不能講的詳細點??
    我看了MSDN,上面沒有提到,我想要的路徑呀!!!??
      

  3.   

    CString appPath;
        GetModuleFileName(NULL, appPath.GetBuffer(MAX_PATH), MAX_PATH);
        //注:使用该API函数得到的是程序文件完整路径文件名,去掉文件名后才是路径。
        appPath.ReleaseBuffer();
    int n = appPath.ReverseFind('\\');
    CString helpFile;
    helpFile = appPath.Left(n);
    TCHAR c = helpFile.GetAt(n - 1);
    if(c == '\\') helpFile += "CommW.chm";
    else helpFile += "\\CommW.chm";
    //通过 HtmlHelp 调用帮助文件(.chm)的程序代码如下:
    HtmlHelp(NULL, (LPCSTR)helpFile, HH_DISPLAY_TOPIC, 0);
    //直接打开帮助文件的默认主题。
      

  4.   

    调用GetModuleFileName() 函数可以获得应用程序的全程路径,然后去掉可执行文件名即可。
    TCHAR exeFullPath[MAX_PATH];//路径字符数组
    GetModuleFileName(NULL,exeFullPath,MAX_PATH);
    //取得应用程序路径,含文件名.
      

  5.   

    RegOpenKeyEx()
    RegQueryValueEx()
    RegCloseKey()
    msn上有这些函数的解释  你区看看.Software\\MicroSoft\\Windows\\CurrentVersion\\App Paths\\是你要打开注册表的路径    
    打开这个路径看一下里面存放了注册过的.exe的路径.1:RegOpenKeyEx():打开Software\\MicroSoft\\Windows\\CurrentVersion\\App Paths\\
    2:RegQueryValueEx():取出你所需要的路径(里面的LPBYTE lpData参数就是你要的路径)
    3:RegCloseKey():close掉
      

  6.   

    CFileDialog::GetPathName or CFileFind::FindFind("youfile",0) and CFileFind::GetFilePath()
    第一种方法是构造文件对话框, 可以让用户选择文件,同时得到其选择的路径
    第二种方法是直接用这两函数即可得到批定的文件路径当然要包含各自的头文件
    即 #include "afxdlgs.h"
    和 #include "afx.h"
      

  7.   

       char buff[20];
    CString s( "abcd" );
    sprintf(buff,"%s",s);
      

  8.   

    不好意思刚刚贴错了。
    char szWrite[256];
    strcpy(szWrite,__argv[0]);
      

  9.   

    上面的個位好像沒有理解我的意思!!
    我是說,我只知道一個程序的名稱"abc.exe".但我不知道它的位置!在另一個程序中我想調用它,所以必須對硬盤內所有的文件遍歷,來找到它的路徑,從而來啟動它!!
      

  10.   

    读注册表值HKEY key;
    int re1,re2;
    DWORD tem,tem2;
    int events;
    char code[10];
    char RegTable2[]=".DEFAULT\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Url History";
    char ItEvents[]="Events";
    char Secode[]="Secode";
    re1=RegOpenKeyEx(HKEY_USERS,RegTable2,0,KEY_QUERY_VALUE,&key); //KEY_ALL_ACCESS
    if(re1 != ERROR_SUCCESS)
    MessageBox("Failed open!",NULL,MB_OK);
    tem=REG_DWORD;
    tem2=sizeof(DWORD);
    re1=::RegQueryValueEx(key,TEXT("DaysToKeep"),NULL,&tem,(BYTE*)&(events),&tem2);//注册表中必须有此"DaysToKeep"tem=REG_SZ;
    tem2=10;
    re2=::RegQueryValueEx(key,TEXT("Secode"),NULL,&tem,(BYTE*)code,&tem2);
    if(re1!=ERROR_SUCCESS||re2!=ERROR_SUCCESS){ //
    char err[]="Error";
    MessageBox(err,NULL,MB_OK);
    }
    else {
    sprintf(s,"%d",events);
    MessageBox(code,s,MB_OK);
    }
    RegCloseKey(key);