Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dx.NetAPI

4 views
Skip to first unread message

Andrew Bakhtin

unread,
Jan 30, 2004, 8:58:00 AM1/30/04
to

Приветствую!

Народ, подскажите, можно ли написать _одну_ программу использующую сабж и
под Win98 и под линейку NT-подобных?
У меня не получилось - прога написанная под NetApi32 идет на Win2000, под 98
говорит об отсутствующем компоненте (например NetUserGetInfo) - описания
функций разные? На 98 NetApi32 вообще пустая. А для NetAPI.dll я хидера не
нашел, тем более, вдруг она под NT не пойдет?

С уважением,
Андрей Бахтин

ЗЫ Порт NetApi32.h для Delphi я нашел _только_ lmaccess.pas
(ftp://delphi-jedi.org/api/LanManager.zip у меня не качает) - но там нет как
минимум NetApiBufferFree и NET_API_STATUS, что еще не так - не знаю, но
может здесь собака порылась?


--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Tolik Tentser

unread,
Jan 30, 2004, 9:02:39 AM1/30/04
to
Hi, Andrew Bakhtin!

В чреве акулы, пойманной Fri, 30 Jan 2004 13:58:00 +0000 (UTC),
дети капитана Гранта нашли письмо на тему 'Dx.NetAPI':

>Народ, подскажите, можно ли написать _одну_ программу использующую сабж и
>под Win98 и под линейку NT-подобных?
>У меня не получилось - прога написанная под NetApi32 идет на Win2000, под 98
>говорит об отсутствующем компоненте (например NetUserGetInfo)

NetUserGetInfo

Client: Requires Windows XP, Windows 2000 Professional, or Windows NT
Workstation.

Соответственно - под 95 - никак.

Если уж сильно надо - определяй версию системы и вызывай то, что в ней
есть.

Bye ...
Тенцер А.Л.
to...@katren.nsk.ru
ICQ 15925834

Andrew Bakhtin

unread,
Jan 30, 2004, 9:09:45 AM1/30/04
to

Приветствую!

"Tolik Tentser" сообщил/сообщила в новостях следующее:


> >У меня не получилось - прога написанная под NetApi32 идет на Win2000, под
98
> >говорит об отсутствующем компоненте (например NetUserGetInfo)
>
> NetUserGetInfo
> Client: Requires Windows XP, Windows 2000 Professional, or Windows NT
> Workstation.
> Соответственно - под 95 - никак.

Спасибо.
Тяжелый случай невнимательности :)
Хотя в dll-ку NetAPI.dll на Win98 я заглянул - _там_есть_ NetUserGetInfo :-/
(заглушка видимо :)
А главное - как надо-то :)

> Если уж сильно надо - определяй версию системы и вызывай то, что в ней
> есть.

А чего нет - не вызывать - короче не работать под 98-й.
Может замена какая есть?

С уважением,
Андрей Бахтин

Tolik Tentser

unread,
Jan 31, 2004, 12:52:49 AM1/31/04
to
Hi, Andrew Bakhtin!

В чреве акулы, пойманной Fri, 30 Jan 2004 14:09:45 +0000 (UTC),
дети капитана Гранта нашли письмо на тему 'Re: Dx.NetAPI':

>А чего нет - не вызывать - короче не работать под 98-й.
>Может замена какая есть?


Ну, делаешь 2 DLL - одну для NT другую для Win9x

в программе объевляешь

unit MyNetAPI;

interface

type
TNetGetUserInfo = function(Param1: DataType, Param2: DataType):
ResultType;

var
NetGetUserInfo: TNetGetUserInfo;

...

implementation


var
hLib: Integer;

initialisation
if OsVersion = NT then
hLib := LoadLibrary('MyNETAPiNT.dll')
else
hLib := LoadLibrary('MyNETAPi9x.dll');

NetGetUserInfo := GetProcAddress(hLib, 'MyNetGetUserInfo');

finalization
FreeLibrary(hLib);
end;

И реализуешь 2 DLL - в одной вызываешь функции NETAPI32, в другой -
получаешь чего надо способами, доступными под Win9x, но обе они должны
экспортировать функцию:

MyNetGetUserInfo(Param1: DataType, Param2: DataType): ResultType;

Аналогично для всех остальных.

А из программы:

uses MyNetAPI

X := NetGetUserInfo(Param1, Param2);

Andrew Bakhtin

unread,
Feb 2, 2004, 4:20:43 AM2/2/04
to
Приветствую!

"Tolik Tentser" сообщил/сообщила в новостях следующее:

> >А чего нет - не вызывать - короче не работать под 98-й.
> >Может замена какая есть?
> Ну, делаешь 2 DLL - одну для NT другую для Win9x

<skiped>


> И реализуешь 2 DLL - в одной вызываешь функции NETAPI32, в другой -
> получаешь чего надо способами, доступными под Win9x, но обе они должны
> экспортировать функцию:

<skiped>

Прошу прощения, что вынудил совершенно напрасно читать мне элементарную
теорию по обращению с dll :)
Но меня собственно интересовало вот это:
> >Может замена какая есть?


> получаешь чего надо способами, доступными под Win9x

И какие же это способы?
Я выяснил (в том числе из данных мне объяснений) что netapi32 в Win98 только
заглушка, а netapi имеет другой интерфейс, если вообще работает.
Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например хидер
(или его порт) для netapi/Win98?

Leonid Troyanovsky

unread,
Feb 2, 2004, 9:15:31 AM2/2/04
to
Приветствую, Andrew.

> Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например хидер
> (или его порт) для netapi/Win98?

В 9x есть 16 битная netapi.dll.
С помощью thunk можно ее пользовать.
Вот, например, NETMESSAGEBUFFERSEND

uses
QTThunkU; { http://www.thedelphimagazine.com/samples/thunk/thunk95.htm }

var
ToComp, MsgText: String;

procedure TForm1.Button1Click(Sender: TObject);
var
dllHandle: THandle16;
sw : Word;
begin
ToComp := UpperCase('CompName');
MsgText := 'Hello from 9x';
sw := SizeOf(Word);

DLLHandle := LoadLib16('NETAPI.DLL');
Call16BitRoutine('NETMESSAGEBUFFERSEND', DllHandle, ccPascal,
[0, 0, PChar(ToComp), PChar(MsgText), Length(MsgText)+1 ],
[sw, sw, Length(ToComp)+1, Length(MsgText)+1, sw]);
FreeLibrary16(DllHandle);
end;

--
С уважением, LVT


Tolik Tentser

unread,
Feb 2, 2004, 8:59:47 AM2/2/04
to
Hi, Andrew Bakhtin!

В чреве акулы, пойманной Mon, 2 Feb 2004 09:20:43 +0000 (UTC),

дети капитана Гранта нашли письмо на тему 'Re: Dx.NetAPI':

>Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например хидер


>(или его порт) для netapi/Win98?

Ну, может тебе не весь его надо, а только часть ? там возвращаемых
структур до черта - тебе какую ?

Може тебе и GetUserName хватит ;-)

Andrew Bakhtin

unread,
Feb 2, 2004, 9:12:14 AM2/2/04
to
Приветствую!

"Tolik Tentser" сообщил/сообщила в новостях следующее:

> >Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например
хидер
> >(или его порт) для netapi/Win98?
> Ну, может тебе не весь его надо, а только часть ? там возвращаемых
> структур до черта - тебе какую ?
> Може тебе и GetUserName хватит ;-)

Шутку оценил ;)
Нужны данные учетной записи текущего пользователя домена.
NetUserGetInfo в принципе достаточно, даже уровня 1, однако никогда не
знаешь, где найдешь и т.д., так что если есть, просьба дать все - я уж
разберусь. Или такой большой? Тогда сколько не жалко. ;)

Andrew Bakhtin

unread,
Feb 2, 2004, 9:15:35 AM2/2/04
to
Приветствую!

"Leonid Troyanovsky" сообщил/сообщила в новостях следующее:


> > Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например
хидер
> > (или его порт) для netapi/Win98?
>
> В 9x есть 16 битная netapi.dll.
> С помощью thunk можно ее пользовать.
> Вот, например, NETMESSAGEBUFFERSEND

Извините за назойливость:
<цитата>
Заголовочные файлы, а так же библиотеки, связанные с функциями 16-битного
LAN Менеджера можно найти в Windows for Workgroups Software Development Kit
(SDK).
ЗАМЕЧАНИЕ: Windows for Workgroups SDK больше не поддерживается Майкрософтом,
поэтому получить данный SDK будет проблематично.
</цитата>

Второй день (с пятницы) сижу в поисковиках - пока полный швах.

Tolik Tentser

unread,
Feb 2, 2004, 9:42:53 AM2/2/04
to
Hi, Andrew Bakhtin!

В чреве акулы, пойманной Mon, 2 Feb 2004 14:12:14 +0000 (UTC),

дети капитана Гранта нашли письмо на тему 'Re: Dx.NetAPI':

>NetUserGetInfo в принципе достаточно, даже уровня 1,

Богато хочешь ...
Даже и не знаю

В качестве бредовой идеи - сделать на машине с NT сервер, который
будет отдавать нужную информацию и спрашивать его ;-)

Leonid Troyanovsky

unread,
Feb 3, 2004, 2:31:43 AM2/3/04
to
Приветствую, Andrew.

AB> Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например

LT> В 9x есть 16 битная netapi.dll.
LT> С помощью thunk можно ее пользовать.

AB> Второй день (с пятницы) сижу в поисковиках - пока полный швах.

http://support.microsoft.com/default.aspx?scid=kb;en-us;159423

Оно там уже давным-давно, c самой пятницы ;)

--

С уважением, LVT

Leonid Troyanovsky

unread,
Feb 3, 2004, 4:24:28 AM2/3/04
to
Приветствую, Andrew.

> > > Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например

> > В 9x есть 16 битная netapi.dll.


> > С помощью thunk можно ее пользовать.

> Извините за назойливость:


> <цитата>
> Заголовочные файлы, а так же библиотеки, связанные с функциями 16-битного
> LAN Менеджера можно найти в Windows for Workgroups Software Development Kit
> (SDK).

> ЗАМЕЧАHИЕ: Windows for Workgroups SDK больше не поддерживается Майкрософтом,


> поэтому получить данный SDK будет проблематично.
> </цитата>

> Второй день (с пятницы) сижу в поисковиках - пока полный швах.

http://support.microsoft.com/default.aspx?scid=kb;en-us;159423

Оно там уже давным-давно ;)

--
С уважением, LVT

Andrew Bakhtin

unread,
Feb 3, 2004, 9:24:55 AM2/3/04
to

Приветствую!

"Leonid Troyanovsky" сообщил/сообщила в новостях следующее:

> AB> Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например
> LT> В 9x есть 16 битная netapi.dll.
> LT> С помощью thunk можно ее пользовать.
> AB> Второй день (с пятницы) сижу в поисковиках - пока полный швах.
> http://support.microsoft.com/default.aspx?scid=kb;en-us;159423

Большое программистское спасибо
Жалко что кусками и описания USER_INFO_1 нет...
Но это уже не так страшно :-)

> Оно там уже давным-давно, c самой пятницы ;)

Я все забываю, что для Microsoft'а бейсик до сих пор живее всех живых :)

0 new messages