如何得到一個應用程序的路徑??比如我想要得到"netmeeting.exe"的路徑 我該如何用甚麼函數?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .exe路径存放在注册表的:Software\\MicroSoft\\Windows\\CurrentVersion\\App Paths\\用RegOpenKeyEx()打开后取出你想要的路径 ??不懂呀!能不能講的詳細點??我看了MSDN,上面沒有提到,我想要的路徑呀!!!?? 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);//直接打开帮助文件的默认主题。 调用GetModuleFileName() 函数可以获得应用程序的全程路径,然后去掉可执行文件名即可。TCHAR exeFullPath[MAX_PATH];//路径字符数组GetModuleFileName(NULL,exeFullPath,MAX_PATH);//取得应用程序路径,含文件名. 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掉 CFileDialog::GetPathName or CFileFind::FindFind("youfile",0) and CFileFind::GetFilePath()第一种方法是构造文件对话框, 可以让用户选择文件,同时得到其选择的路径第二种方法是直接用这两函数即可得到批定的文件路径当然要包含各自的头文件即 #include "afxdlgs.h"和 #include "afx.h" char buff[20];CString s( "abcd" );sprintf(buff,"%s",s); 不好意思刚刚贴错了。 char szWrite[256]; strcpy(szWrite,__argv[0]); 上面的個位好像沒有理解我的意思!!我是說,我只知道一個程序的名稱"abc.exe".但我不知道它的位置!在另一個程序中我想調用它,所以必須對硬盤內所有的文件遍歷,來找到它的路徑,從而來啟動它!! 读注册表值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_ACCESSif(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); SetParent后子窗体不显示 [交流]Win32 DLL的一个调试心得 求助:删除掉程序里的几个对话框类,连接不通过 潘老师聊天进行中…… 关于dll的问题 我要做一个多文档的程序,但实际上只有一个文档对应多个同样的视如何做呢. 在CVIEW里显示一幅图片,但最大化窗口后就没了,怎样让图片一直在? 请教:怎样利用特定大小的缓冲区播放大型的WAVE格式的声音数据 寻找WIN32API电子书 在CCD的SDK中写一个函数,使得拍出来的图片上有V型线,三个点是固定的。。急急急!! 怎样得到系统中对话框用户区的颜色? 关于屏幕取词的问题
Software\\MicroSoft\\Windows\\CurrentVersion\\App Paths\\
用RegOpenKeyEx()打开后
取出你想要的路径
不懂呀!
能不能講的詳細點??
我看了MSDN,上面沒有提到,我想要的路徑呀!!!??
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);
//直接打开帮助文件的默认主题。
TCHAR exeFullPath[MAX_PATH];//路径字符数组
GetModuleFileName(NULL,exeFullPath,MAX_PATH);
//取得应用程序路径,含文件名.
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掉
第一种方法是构造文件对话框, 可以让用户选择文件,同时得到其选择的路径
第二种方法是直接用这两函数即可得到批定的文件路径当然要包含各自的头文件
即 #include "afxdlgs.h"
和 #include "afx.h"
CString s( "abcd" );
sprintf(buff,"%s",s);
char szWrite[256];
strcpy(szWrite,__argv[0]);
我是說,我只知道一個程序的名稱"abc.exe".但我不知道它的位置!在另一個程序中我想調用它,所以必須對硬盤內所有的文件遍歷,來找到它的路徑,從而來啟動它!!
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);