弗兰克·格里罗:c语言函数
来源:百度文库 编辑:神马品牌网 时间:2024/05/06 03:13:17
BOOL CSecurityTool::GetLogUserXP(CString& strName)
应该是这个函数吧!可是它的返回值是什么数据类型??它是不是用了命名空间??它为什么还要用形参???
我在C调用这个函数失败,请给了说详细一点吧
在MFC中调用API函数GetUserName既可,原型如下:
BOOL GetUserName(
LPTSTR lpBuffer,
LPDWORD nSize
);
前者是缓冲区的指针,后者是缓冲区大小.示例如下:
char szUser[80];
DWORD cbUser = 80;
if (GetUserName (szUser, &cbUser))
{
printf("The impersonated user name is %s",szUser);
}
else
{
HandleError("GetUserName failed.\n");
}
1。读注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer 下
有个"Logon User Name"的键值
2。Api函数BOOL GetUserName(LPTSTR lpBuffer,LPDWORD nSize);
3。通过得到我的文档得到用户
使用API函数SHGetSpecialFolder。Shlobj.h里有SHGetSpecialFolder的原型声明。这个函数可以帮我们找到windows的Desktop目录、启动目录、我的文档目录等。
SHGetSpecialFolder需要三个参数。 第一个参数是HWND,它指定了"所有者窗口":在调用这个函数时可能出现的对话框或消息框。第二个参数是一个整数id,决定哪个目录是待查找目录,它的取值可能是:
CSIDL_BITBUCKET 回收站
CSIDL_CONTROLS 控制面板
CSIDL_DESKTOP Windows 桌面desktop
CSIDL_DESKTOPDIRECTORY desktop的目录
CSIDL_DRIVES 我的电脑
CSIDL_FONTS 字体目录
CSIDL_NETHOOD 网上邻居
CSIDL_NETWORK 网上邻居virtual folder
CSIDL_PERSONAL 我的文档
CSIDL_PRINTERS 打印机
CSIDL_PROGRAMS 程序组
CSIDL_RECENT 大多数最近打开的文档列一
CSIDL_SENDTO “发送到”菜单项
CSIDL_STARTMENU 任务条启动菜单项
CSIDL_STARTUP 启动目录
CSIDL_TEMPLATES 临时文档
最后一个参数是pidl地址。SHGetSpecialFolderLocation把地址写到pidl。
参考
http://www.qqgb.com/Program/VC/VCsystem/Program_104810_2.html
据我所知:
可能为:foundWindowsUser