Форум: "Сети";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
ВнизНаписание Найти похожие ветки
← →
Igo (2002-08-20 09:46) [0]Есть такая функция NetSessionEnum, есть заголовочный файл, есть пример... вот только выдает она всегда не то!
Кто-нибудь использовал ее именно в делфи???
На си все работает прекрастно, а вот в делфе полный беспредел...
← →
star (2002-08-20 23:34) [1]Ну ничего подобного! Все нормально работает и на дельфах! Сам лично ковырялся, делал прогу - все работало. Ты код кинь, посмотрим, понюхаем ...
← →
Igo (2002-08-21 07:50) [2]Кода у меня уже нет:) все снеслось недавно, надо начинать заново, но ты так ответь, эта же функция в win9х сбрасывает данные в структуру типа session_info_50, так вот, если делать указатель на эту структуру, то последнее подключение определяется, но если 2 машины то глухо....
← →
B-Ars (2002-08-21 12:37) [3]Попробуй объявить вот так - у меня работает:
function NetSessionEnum (SrverName:PChar;sLevel:dword; pbBuffer:pointer;
cbBuffer:dword;EntriesRead,TotalAvial:pointer):integer; stdcall;
external "svrapi.dll";
← →
Star (2002-08-21 14:18) [4]Эта функция сбрасывает данные не в структуру типа session_info_50, а В МАССИВ ЭТИХ СТРУКТУР. Тогда каждый элемент массива - отдельная сетевая сессия. У меня где-то на работе валяются мои разработки, пошарю, если найду - выкину сюда.
← →
star (2002-08-21 18:05) [5]Во, нашел!
var
SessionInfo: array [0..512] of TSessionInfo50;
EntriesRead,TotalAvial: Word;
i,index:integer;
Warning:TWarning;
ToolTip:string;
begin
Timer1.Enabled:=False;
NetSessionEnum (nil,50,@SessionInfo,SizeOf(SessionInfo),@EntriesRead,@TotalAvial);
for i:=0 to EntriesRead-1 do
with SessionInfo[i] do
begin
{здесь можешь узнать о каждом подключении...}
end;
end;
← →
star (2002-08-21 18:07) [6]Timer1.Enabled:=False; - выкинуть (это просто кусок из одной процедуры.)
Это пример для win98. Для NT - немного по другому.
← →
Igo (2002-08-22 06:51) [7]B-Ars спасибо, функция у меня так же обявлена, видно дело не в том....(хотя как только я ее не объявлял:-))
star © спасибо, но не работает, до смешного уже дошло:-)
сбрасываю код (он в принципе твой) я тоже раньше так делал, но неполучилось:
function NetSessionEnum (SrverName:PChar;sLevel:dword;
pbBuffer:pointer;cbBuffer:dword;Read,
TotalAvial:pointer):integer; stdcall;
external "svrapi.dll";
type
session_info_50 = record
ses50_cname : PChar;
ses50_username : PChar;
ses50_key : LongInt;
ses50_num_conns : short;
ses50_num_opens : short;
ses50_time : LongInt;
ses50_idle_time : LongInt;
ses50_protocol : char;
pad1 : char;
end;
........
var
SessionInfo: array [0..512] of session_info_50;
read,TotalAvial: Word;
i:integer;
begin
NetSessionEnum (nil,50,@SessionInfo,SizeOf(SessionInfo),@Read,@TotalAvial);
for i:=0 to Read-1 do
with SessionInfo[i] do
begin
ListBox.Items.Add(ses50_username);
{здесь можешь узнать о каждом подключении...}
end;
end;
так вот, при подключении 2-ух компов read = 2, но в SessionInfo лежит информация только об одном подключении и на втором проходе цикла ListBox.Items.Add(ses50_username) ест-но грязно ругается...
← →
star (2002-08-22 20:30) [8]Не знаю, дома проверить не могу, посмотрю завтра, на работе ...
← →
Star (2002-08-23 16:38) [9]Кинул по почте рабочий пример с твоим кодом, лови!
← →
Igo (2002-08-26 05:26) [10]Спасибо, поймал:-)), вопрос закрыт,
надо
type
session_info_50 = packed record
если кому интересно:)
← →
Nuhim (2002-08-26 09:14) [11]Я тоже пишу аналогичную прогу и заметил следующее:
если файл на моей машине открыт с удаленного компа на чтение, то
ses50_num_opens=1, а если на редактирование, то 0.
Хотелось бы еще знать - какой ресурс открыт, но не знаю как. Может кто подскажет?
← →
Star (2002-08-26 09:41) [12]NetFileEnum
← →
Nuhim (2002-08-26 12:40) [13]To Star:
А примером поделиться не жалко?
← →
Aladin (2002-08-26 12:46) [14]Да! И мне интересно, как узнать какой ресурс открыт. Шарил по сайту, че-то нашел. Но там поверхностно. Хотелось бы поподробнее.
← →
Diablo_al (2002-08-26 16:21) [15]To_STAR Если не трудно и мне скинь исходничек
Еще вопросик как это заставить работать на Windows 2000
← →
Neyrospace (2002-08-27 10:12) [16]Для всех интересующихся:
на delphi-jedi.org есть хедеры по svrapi + полный пример инспектора сети (на делфях ес-но)
← →
Diablo_al (2002-08-29 20:23) [17]Neyrospace БОЛЛЬШОЕ СПАСИБО ЗА УРЛ.
← →
cypher (2002-09-18 10:19) [18]По поводу jedi и srvapi. ОНА МЕГА КРИВАЯ! и там очень-очень много-много ошибок (в отношении 9х не знаю, но под НТ пришлось основательно покопататься в коде)
← →
s002156Shurik (2002-09-18 11:27) [19]А можноли какнибудь разорвать соединение другого компьютера с моим ресурсом. Когда напимер с меня качают файл и мне надо это запретить во время скачки. Мжно это сделать?
← →
skuns (2002-09-18 14:13) [20]Для особо одаренных, дайте полный URL к хедерам и примерам. Я там нифига не нашел. :(
← →
cypher (2002-09-18 19:09) [21]skunk - плохо искал.
s002156Shurik - можно, NetFileClose, NetSessionDel и так далее.
вообще, смотри МСДН (www.msdn.microsoft.com) там все с примерами и под НТ и 9x
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c