如何找出Windows系统配置文件的名称?

时间:2016-08-23 11:31:00

标签: c++ windows postgresql winapi

我正在编写一个 Windows服务,它将使用系统配置文件名称与数据库配合使用。对于此功能,我有一个 Postgres SQL Server

我想在运行服务之前为Windows 系统配置文件创建信任身份验证

为此,我将运行一些控制台应用程序,该应用程序将在 pg_hba.conf 文件中编写所需信息,如身份验证方法,并使用系统配置文件创建角色名字。顺便说一句,Postgres可以识别其他语言符号非常酷(虽然不确定所有语言符号)。

问题是如何找到Windows系统配置文件的 已翻译 名称的?导致不同语言的每个Windows具有不同的系统配置文件名称: system система sistema 等。

2 个答案:

答案 0 :(得分:3)

因此,使用WinAPI解决了问题:

#include <windows.h>

<...>

static const DWORD MAX_BUFF_SIZE = 256;
SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY;
PSID pSid = NULL;
SID_NAME_USE use;    
wchar_t buffName[MAX_BUFF_SIZE];    // Here would be name
DWORD buffNameSize = MAX_BUFF_SIZE;
wchar_t buffDomain[MAX_BUFF_SIZE];
DWORD buffDomainSize = MAX_BUFF_SIZE;

AllocateAndInitializeSid(&auth, 1, SECURITY_LOCAL_SYSTEM_RID, 0, 0, 0, 0, 0, 0, 0, &pSid);
LookupAccountSid(NULL, pSid, buffName, &buffNameSize, buffDomain, &buffDomainSize, &use);

FreeSid(pSid);

<...>

答案 1 :(得分:1)