Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.12;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2002.09.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-35546
Старик
2002-08-21 14:16
2002.09.12
Визуализация таблиц


1-35738
^Sanya
2002-08-30 13:44
2002.09.12
Как сменить BorderColor в StringGrid ???


3-35622
Наташа
2002-08-23 10:18
2002.09.12
MS SQL


3-35601
denimas
2002-08-22 15:19
2002.09.12
Не выполняет запрос TIBQuery


14-35912
IgorK
2002-08-19 16:00
2002.09.12
Win2000