Народ, подскажите, можно ли написать _одну_ программу использующую сабж и
под 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
В чреве акулы, пойманной 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
"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-й.
Может замена какая есть?
С уважением,
Андрей Бахтин
В чреве акулы, пойманной 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);
"Tolik Tentser" сообщил/сообщила в новостях следующее:
> >А чего нет - не вызывать - короче не работать под 98-й.
> >Может замена какая есть?
> Ну, делаешь 2 DLL - одну для NT другую для Win9x
<skiped>
> И реализуешь 2 DLL - в одной вызываешь функции NETAPI32, в другой -
> получаешь чего надо способами, доступными под Win9x, но обе они должны
> экспортировать функцию:
<skiped>
Прошу прощения, что вынудил совершенно напрасно читать мне элементарную
теорию по обращению с dll :)
Но меня собственно интересовало вот это:
> >Может замена какая есть?
> получаешь чего надо способами, доступными под Win9x
И какие же это способы?
Я выяснил (в том числе из данных мне объяснений) что netapi32 в Win98 только
заглушка, а netapi имеет другой интерфейс, если вообще работает.
Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например хидер
(или его порт) для netapi/Win98?
> Посоветуйте, где мне взять для 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
В чреве акулы, пойманной Mon, 2 Feb 2004 09:20:43 +0000 (UTC),
дети капитана Гранта нашли письмо на тему 'Re: Dx.NetAPI':
>Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например хидер
>(или его порт) для netapi/Win98?
Ну, может тебе не весь его надо, а только часть ? там возвращаемых
структур до черта - тебе какую ?
Може тебе и GetUserName хватит ;-)
"Tolik Tentser" сообщил/сообщила в новостях следующее:
> >Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например
хидер
> >(или его порт) для netapi/Win98?
> Ну, может тебе не весь его надо, а только часть ? там возвращаемых
> структур до черта - тебе какую ?
> Може тебе и GetUserName хватит ;-)
Шутку оценил ;)
Нужны данные учетной записи текущего пользователя домена.
NetUserGetInfo в принципе достаточно, даже уровня 1, однако никогда не
знаешь, где найдешь и т.д., так что если есть, просьба дать все - я уж
разберусь. Или такой большой? Тогда сколько не жалко. ;)
"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 будет проблематично.
</цитата>
Второй день (с пятницы) сижу в поисковиках - пока полный швах.
В чреве акулы, пойманной Mon, 2 Feb 2004 14:12:14 +0000 (UTC),
дети капитана Гранта нашли письмо на тему 'Re: Dx.NetAPI':
>NetUserGetInfo в принципе достаточно, даже уровня 1,
Богато хочешь ...
Даже и не знаю
В качестве бредовой идеи - сделать на машине с NT сервер, который
будет отдавать нужную информацию и спрашивать его ;-)
AB> Посоветуйте, где мне взять для Win98 аналог NetUserGetInfo, например
LT> В 9x есть 16 битная netapi.dll.
LT> С помощью thunk можно ее пользовать.
AB> Второй день (с пятницы) сижу в поисковиках - пока полный швах.
http://support.microsoft.com/default.aspx?scid=kb;en-us;159423
Оно там уже давным-давно, c самой пятницы ;)
--
С уважением, LVT
> > > Посоветуйте, где мне взять для 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
"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'а бейсик до сих пор живее всех живых :)