C++写的服务程序,如何获得当前执行程序所在目录

C++写的服务程序,如何获得当前执行程序所在目录,第1张

char szPathTemp[512]

GetModuleFileName(NULL, szPathTemp, 512)

//取出文件路竖散径

for (int i=strlen(szPathTemp)i>=0i--)

{

if (szPathTemp[i] == '凯高\\')

{

szPathTemp[i] = '\余孙氏0'

break

}

}

这样试试,我用没问题

一、就陵猜是将你的配敏梁置文件安装在system32目录

二、在你的服务中通过注册表来获得这个服务的安装路径

/*

Windows服务在系桥汪运统安装后会在注册表的 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[ServiceName]"下以服务的ServiceName建1个目录,目录中会有"ImagePath"节,这里保存的就是该服务的安装路径。

*/

/// <summary>

/// 获取服务安装路径

/// </summary>

/// <param name="ServiceName"></param>

/// <returns></returns>

public static string GetWindowsServiceInstallPath(string ServiceName)

{

string key = @"SYSTEM\CurrentControlSet\Services\" + ServiceName

string path = Registry.LocalMachine.OpenSubKey(key).GetValue("ImagePath").ToString()

//替换掉双引号

path = path.Replace("\"", string.Empty)

FileInfo fi = new FileInfo(path)

return fi.Directory.ToString()

}

获取当前目录的方法有很多,其中之一:

TCHAR szFilePath[MAX_PATH + 1]

GetModuleFileName(NULL, szFilePath, MAX_PATH)

(_tcsrchr(szFilePath, _T('//')))[1] = 0//删除族老拍兆羡文件名,只获得路径

CString str_url = szFilePath //str_url 中保存的是含誉当前目录


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8217421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存