Форум: "WinAPI";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
ВнизWindows XP При смене имени учетной записи ,появляеться проблема ! Найти похожие ветки
← →
Романов А. (2002-07-18 09:20) [0]Windows XP При смене имени учетной записи ,появляеться проблема считывания этого имени пользователя в windows xp
практика:
я создал учетную запись в xp , зашел туда ,все гуд
запустил прогу определения имени вход в windows сесию.
он например alex , потом в настройках текущей учетной записи меняю имя alex на tom .. после чего windows у себя визульно поменяла alex на tom. я человек не суевернй ,но все равно делаю перезагрузку виндов ,она теперь спрашивает пароль уже на tom и пропускает меня ,но сного запускаю прогу определения входно имени пользователя в текущей сесии windows ,она дает мне первое имя регистрации текущей учетной записи..т.е. alex , как быть???
как мне быть и что делать?
Как мне из D6 под xp win считать правильное имя учетной записи для входа в систему...Да так что бы эта все корректно работало и с др. версиями windows.
← →
Eugene Lachinov (2002-07-18 13:19) [1]А как оно считывается сейчас ?
← →
Романов А. (2002-07-19 06:39) [2]Я же написал ,что считываеться при любом раскладе alex..
а вот функции которые я пробывал
function GetUser: String;
var dwI:DWord;
begin
dwI:=MAX_PATH;
SetLength(Result,MAX_PATH+1);
if GetUserName(PChar(Result),dwI) then
SetLength(Result,StrLen(PChar(Result)))
else SetLength(Result,0);
end;
function GetNetUser: String;
var dwI:DWord;
begin
dwI:=MAX_PATH;
SetLength(Result,MAX_PATH+1);
if WNetGetUser(nil,PChar(Result),dwI)=NO_ERROR then
SetLength(Result,StrLen(PChar(Result)))
else SetLength(Result,0);
end;
← →
Гений (2002-07-22 07:02) [3]Вопрос конечно интересный ,ну не думаю ,что здесь кто-то тебе ответит на него.
← →
Eugene Lachinov (2002-07-22 11:19) [4]Это работает на XP, на других системах GetUserName
type
EXTENDED_NAME_FORMAT = (
NameUnknown = 0,
NameFullyQualifiedDN = 1,
NameSamCompatible = 2,
NameDisplay = 3,
NameUniqueId = 6,
NameCanonical = 7,
NameUserPrincipal = 8,
NameCanonicalEx = 9,
NameServicePrincipal = 10
);
var
GetUserNameEx : function (
NameFormat : EXTENDED_NAME_FORMAT;
lpNameBuffer : PWChar;
var nSize : DWord) : Bool; stdcall;
procedure TForm1.Button1Click(Sender: TObject);
var
Buf : array[0..512] of WChar;
dwSize : DWord;
hSecur32 : THandle;
begin
hSecur32 := LoadLibrary("SECUR32.DLL");
if hSecur32 <> 0 then try
@GetUserNameEx := GetProcAddress(hSecur32, "GetUserNameExW");
if @GetUserNameEx <> nil then begin
dwSize := 512;
if GetUserNameEx(NameDisplay, Buf, dwSize) then
ShowMessage(string(Buf))
end
finally
FreeLibrary(hSecur32)
end
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c