![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
NetWkstaUserGetInfo - как правильно использовать? [D7, WinXP]
tytus © (2008-04-24 17:17:00)Доброго дня всем.
Вот пытаюсь разобраться с сией ф-ей.
Что получилось:
описание структуры
type
PWKSTA_USER_INFO_1 = ^TWKSTA_USER_INFO_1;
TWKSTA_USER_INFO_1 = record
wkui1_username:LPWSTR;
wkui1_logon_domain:LPWSTR;
wkui1_oth_domains:LPWSTR;
wkui1_logon_server:LPWSTR;
end;
Описание функций:
functionNetWkstaUserGetInfo(reserved:PWChar; level:DWORD;
bufptr:Pointer):DWORD;stdcall;external 'Netapi32.dll' Name 'NetWkstaUserGetInfo';
f unctionNetApiBufferAllocate(ByteCount:DWORD;
Buffer:Pointer):DWORD;stdcall;external 'Netapi32.dll' Name 'NetApiBufferAllocate';
functionNetApiBufferFree(Buffer:Pointer):DWORD;stdcall;external 'Netapi32.dll' Name 'NetApiBufferFree';
procedureTForm1.Button1Click(Sender: TObject);
var
WkUInfo:PWKSTA_USER_INFO_1;
begin
NetAPIBufferAllocate(1000,WkUInfo);
try
NetWkstaUserGetInfo(nil,1,WkUInfo);
RE1.Lines.Add(WideCharToString(WkUInfo^.wkui1_username));
finally
NetApiBufferFree(WkUInfo);
end;
end;
... где RE1 - TRichEdit, так вот вылетает AV на строке RE1.Lines.Add(WideCharToString....
Подскажите, что неправильно делаю...
tytus (2008-04-24 17:59:00) [1]>han_malign © (24.04.08 17:53) [1]
... спасибо.
Читал MSDN2 - там нету строчки чтобы указатель= nil;
А так в принципе - почтивсе правильно...
насчет @WkUInfo - забыл...
han_malign (2008-04-24 17:53:00) [2]
> Подскажите, что неправильно делаю..
если судить по примеру из MSDN - то все...
WkUInfo:= nil;
if( NetWkstaUserGetInfo(nil,1,@WkUInfo) = 0 )then begin
if(WkUInfo <> nil)then
RE1.Lines.Add(WideCharToString(WkUInfo^.wkui1_username));
end;
if(WkUInfo <> nil)then NetApiBufferFree(WkUInfo);