Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

GetUserName и Win95 [D5, Win95/98]


Марина ©   (2002-05-13 12:08:00) 

Подскажите, пожалуйста, почему вот такая функция
function UserName: Pchar;
var
dwSize : Cardinal;
Buffer: String;
szBuffer : PChar;
begin
dwSize := MAX_PATH + 1;
GetMem(szBuffer, dwSize);
try
if GetUserName(szBuffer, dwSize) then
Buffer := String(szBuffer)
else
Buffer := "Неизвестно";
finally
Result := PChar(Buffer);
FreeMem(szBuffer, dwSize);
end;
end;
при запуске программы на компьютере с Win95 (с Win98 все отлично)пишет "Неизвестно".С чем это может быть связано? Заранее благодарна.


Konorl   (2002-05-14 17:01:00) [1]

А вот такой, тупой пример будет работать?
Пиши на мыло.

var
usize: Cardinal;
usr: array[0..MAX_PATH] of Char;
begin
usize:=255;
if GetUserName(usr, usize) then Label1.Caption:=StrPas(usr)
else usize:=GetLastError;
end;


Марина   (2002-05-14 10:02:00) [2]

Большое спасибо.Я изменила код, теперь он выглядит так:
var
cb,a: DWORD;
LoggedUser: string;
begin
cb := 0;
GetUserName(nil, cb);
SetLength(LoggedUser, cb);
Win32Check(GetUserName(PChar(LoggedUser), cb));
Memo1.Lines.Text:=LoggedUser;
a:=GetLastError;
Memo2.Lines.Text:=IntToStr(a);
Как я понимаю, дело оказалось не в операционной системе, а в сети. Я запускала программу еще на одной машине с Win95, имя пользователя я получила, но при этом почему-то код ошибки 120.А на том компьютере, с которого все и началось, получила следующее сообщение:
Win32 Error.Code: 1245. Запрошенная операция не была выполнена, так как пользователь не подключен к сети. Указанная служба не существует.
Как такое может быть, ведь этот пользователь к сети подключен, причем аж к трем серверам? Заранее спасибо.


Konorl   (2002-05-13 16:50:00) [3]

Вот что тебе хотят сказать:

var
a: dword;
программа
Buffer := "Неизвестно";
a:=GetLastError;
Чему равно а? Это код ошибки, по нему узнаешь.


Anatoly Podgoretsky   (2002-05-13 13:49:00) [4]

Что сообщает GetLastError?


Наверх

Титульная страница Поиск, карта сайта Написать письмо