Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

Написание   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.023 c
6-46032
Nubie
2002-07-15 15:13
2002.11.14
Кто работал с почтой?


1-45952
Checist[root]
2002-11-04 13:07
2002.11.14
Компонент Gause


3-45741
VIB
2002-10-24 17:53
2002.11.14
Paradox Base


14-46059
GUID
2002-10-24 01:05
2002.11.14
Существует интересная задача


14-46150
Nico1a
2002-10-28 17:44
2002.11.14
DLL