MSG m;
while(GetMessage(&m, hWnd, 0, 0))
{
TranslateMessage(&m);
DispatchMessage(&m);
}
Как получить программе имя пользователя?
Как получить программе имя пользователя? логин - User name, login, под которым сейчас загружена машина, и её IP адрес.
Всё в Visual C++
Необходимо на стандартную кнопку из станд. компонент в Visual C++ поместить картинку просто и менять её и так же с текстом caption, а вот вместе не позволяет свойство сделать - можно обойти это или надо создавать свой компонент? Дело в том, что при одной рактинке могут быть разные caption и наоборот.
Спасибо.
Цитата:
The GetUserName function retrieves the user name of the current thread
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO));
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
free(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {
pAdapter = pAdapterInfo;
strcpy(Computer_name_IP,pAdapter->IpAddressList.IpAddress.String);
DWORD NameLength = 128;
GetUserName(Computer_name_USER,&NameLength);
gethostname(Computer_name_STR,sizeof(Computer_name_STR));
//MessageBox(NULL,Computer_name_IP,Computer_name_STR,MB_OK);
//MessageBox(NULL,Computer_name_USER,"имя пользователя",MB_OK);
Вставив это в проц. инициализации WM_INITDIALOG я получаю в любой момент программы в 3х переменных то что нужно. Конечно эти данные могут смениться в процессе работы моей прги но это оооооочень маловероятно, к тому же наверняка комп будет перезагружен, и моя прога стартанёт по новой с новыми данными.
MSG m;
while(GetMessage(m,hwnd,0,0))
{
TranslateMessage(m);
DispatchMessage(m);
}
Код:
MSG m;
while(GetMessage(&m,hwnd,0,0))
{
TranslateMessage(&m);
DispatchMessage(&m);
}
Только hwnd я задал не активное акно и не главное окно программы а NULL, и обязательно &, иначе не пошло.