Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как узнать текущую учётную запись в Windows


Автор: numerovan 13.11.2009, 19:52
Как узнать учётную запись , т.е. если пользователь зашёл в windows как администратор , то там пишится что учётная запись Администратор , может быть и всякая другая ... интересно где это вычесть ?

Автор: numerovan 13.11.2009, 20:14
Нашёл следующее .... System.Environment.UserName ... а как дальше быть ?
написал 
Код

cout << System.Environment.UserName;
 Выдаёт ошибку

Автор: UserNet 13.11.2009, 20:35
А можно поинтересоватся какую ошибку выдаёт?

Автор: numerovan 13.11.2009, 20:45
Цитата

А можно поинтересоватся какую ошибку выдаёт? 

Код

C:\Dev-Cpp\myProject\main.cpp `System' undeclared (first use this function) 
  (Each undeclared identifier is reported only once for each function it appears in.) 

Автор: UserNet 13.11.2009, 21:53
Код

using namespace System;


Есть?

Автор: numerovan 13.11.2009, 22:48
по разному уже пробывал сделать ... и "system" , и "system.h", и "systemc", и "systemc.h", и <system> , и <system.h>, и <systemc>, и <systemc.h> далее cout << System.Environment.UserName, cout << Environment.UserName, using namespace System; и без него ... что то ни в какую не хочет ... вот приведу код
Код

#include <iostream>

using namespace std;

int main(){
    cout << System.Environment.UserName;
    
    int a; //  это я по своему сделал ... чтоб можно было что нибудь разглядеть.
    cin >> a;
    return 0;
}


В итоге выдаёт ошибку, которую я напсал выше.

Автор: UserNet 14.11.2009, 07:19
Вот всё просто функция GetUserName
Код

#include <windows.h>
#include <stdio.h>

#define INFO_BUFFER_SIZE 32767

int main( )
{
  TCHAR  infoBuf[INFO_BUFFER_SIZE];
  DWORD  bufCharCount = INFO_BUFFER_SIZE;
  // Get and display the user name. 
  bufCharCount = INFO_BUFFER_SIZE;
  if( !GetUserName( infoBuf, &bufCharCount ) )
         printf( "\nUser name:          %s", infoBuf ); 
 return 0;
}



Автор: numerovan 14.11.2009, 15:54
получилось вот так
Код

#include <iostream>
#include <windows.h>
#include <stdio.h>

#define INFO_BUFFER_SIZE 32767

using namespace std;

int main(){
    setlocale(LC_ALL,"Russian"); // <---- вот это не помогло отобразить в нормальный вид , скракозябли.
    TCHAR  infoBuf[INFO_BUFFER_SIZE];
    DWORD  bufCharCount = INFO_BUFFER_SIZE;
    bufCharCount = INFO_BUFFER_SIZE;
    GetUserName( infoBuf, &bufCharCount );
    cout <<  infoBuf;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)