设计一个user类,数据成员有pusername和ppassword两个指向字符的指针,采用动态内存分配方式存储用户名和口令;编写getuser( )、getpass( )两个成员函数,用于获取用户名
时间: 2023-06-05 16:48:00 浏览: 109
和口令;同时编写构造函数和析构函数,确保内存的正确分配和释放。
class User {
private:
char* pusername;
char* ppassword;
public:
User() {
pusername = new char[20];
ppassword = new char[20];
}
~User() {
delete[] pusername;
delete[] ppassword;
}
char* getuser() {
return pusername;
}
char* getpass() {
return ppassword;
}
};
相关问题
Windows 服务程序获取是否登录 以及用户名是什么
在 Windows 服务程序中,可以通过调用 Windows API 来获取当前是否有用户登录,以及当前登录用户的用户名。以下是获取信息的示例代码:
```cpp
#include <Windows.h>
#include <TlHelp32.h>
BOOL IsUserLoggedOn()
{
// 获取当前登录会话的 ID
DWORD session_id = WTSGetActiveConsoleSessionId();
// 获取进程快照
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (snapshot == INVALID_HANDLE_VALUE)
{
return FALSE;
}
// 遍历进程列表,查找 explorer.exe 进程
PROCESSENTRY32 pe;
pe.dwSize = sizeof(PROCESSENTRY32);
BOOL bRet = Process32First(snapshot, &pe);
while (bRet)
{
if (_tcsicmp(pe.szExeFile, _T("explorer.exe")) == 0)
{
// 获取 explorer.exe 进程所属的登录会话 ID
DWORD explorer_session_id;
WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, pe.th32ProcessID, WTSConnectState, (LPTSTR*)&explorer_session_id, NULL);
// 如果与当前登录会话 ID 相同,则表示有用户登录
if (explorer_session_id == session_id)
{
CloseHandle(snapshot);
return TRUE;
}
}
bRet = Process32Next(snapshot, &pe);
}
CloseHandle(snapshot);
return FALSE;
}
BOOL GetLoggedOnUserName(LPTSTR szUserName, DWORD* pdwSize)
{
// 获取当前登录会话的 ID
DWORD session_id = WTSGetActiveConsoleSessionId();
// 获取当前登录会话的用户名
WCHAR* pUserName;
DWORD dwSize;
if (WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, session_id, WTSUserName, &pUserName, &dwSize))
{
wcsncpy_s(szUserName, *pdwSize, pUserName, dwSize);
*pdwSize = dwSize;
WTSFreeMemory(pUserName);
return TRUE;
}
return FALSE;
}
```
`IsUserLoggedOn()` 函数用于检查当前是否有用户登录。该函数遍历进程列表,查找 explorer.exe 进程,并获取该进程所属的登录会话 ID。如果该 ID 与当前登录会话的 ID 相同,则表示有用户登录。
`GetLoggedOnUserName()` 函数用于获取当前登录用户的用户名。该函数调用 `WTSQuerySessionInformation` API 来获取当前登录会话的用户名。如果获取成功,则将用户名复制到 `szUserName` 缓冲区中,并将缓冲区大小更新为用户名长度。
阅读全文