Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-35901
Praco
2002-08-19 14:11
2002.09.12
Агенства по трудоустройству


3-35611
UWater
2002-08-22 02:00
2002.09.12
DBGrid


14-35877
bytebutcher
2002-08-16 14:19
2002.09.12
Matt Pietrek Windows 95 System Programming Secrets


14-35914
Jan
2002-08-20 10:27
2002.09.12
Windows2000


3-35574
demisen
2002-08-21 14:17
2002.09.12
Размер секции в отчете (QuickReport)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский