![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Написание
Igo © (2002-08-20 09:46:00)Есть такая функция NetSessionEnum, есть заголовочный файл, есть пример... вот только выдает она всегда не то!
Кто-нибудь использовал ее именно в делфи???
На си все работает прекрастно, а вот в делфе полный беспредел...
cypher (2002-09-18 19:09:00) [1]skunk - плохо искал.
s002156Shurik - можно, NetFileClose, NetSessionDel и так далее.
вообще, смотри МСДН (www.msdn.microsoft.com) там все с примерами и под НТ и 9x
skuns (2002-09-18 14:13:00) [2]Для особо одаренных, дайте полный URL к хедерам и примерам. Я там нифига не нашел. :(
s002156Shurik (2002-09-18 11:27:00) [3]А можноли какнибудь разорвать соединение другого компьютера с моим ресурсом. Когда напимер с меня качают файл и мне надо это запретить во время скачки. Мжно это сделать?
cypher (2002-09-18 10:19:00) [4]По поводу jedi и srvapi. ОНА МЕГА КРИВАЯ! и там очень-очень много-много ошибок (в отношении 9х не знаю, но под НТ пришлось основательно покопататься в коде)
Diablo_al (2002-08-29 20:23:00) [5]Neyrospace БОЛЛЬШОЕ СПАСИБО ЗА УРЛ.
Neyrospace (2002-08-27 10:12:00) [6]Для всех интересующихся:
на delphi-jedi.org есть хедеры по svrapi + полный пример инспектора сети (на делфях ес-но)
Diablo_al (2002-08-26 16:21:00) [7]To_STAR Если не трудно и мне скинь исходничек
Еще вопросик как это заставить работать на Windows 2000
Aladin (2002-08-26 12:46:00) [8]Да! И мне интересно, как узнать какой ресурс открыт. Шарил по сайту, че-то нашел. Но там поверхностно. Хотелось бы поподробнее.
Nuhim (2002-08-26 12:40:00) [9]To Star:
А примером поделиться не жалко?
Star (2002-08-26 09:41:00) [10]NetFileEnum
Nuhim (2002-08-26 09:14:00) [11]Я тоже пишу аналогичную прогу и заметил следующее:
если файл на моей машине открыт с удаленного компа на чтение, то
ses50_num_opens=1, а если на редактирование, то 0.
Хотелось бы еще знать - какой ресурс открыт, но не знаю как. Может кто подскажет?
Igo (2002-08-26 05:26:00) [12]Спасибо, поймал:-)), вопрос закрыт,
надо
type
session_info_50 = packed record
если кому интересно:)
Star (2002-08-23 16:38:00) [13]Кинул по почте рабочий пример с твоим кодом, лови!
star (2002-08-22 20:30:00) [14]Не знаю, дома проверить не могу, посмотрю завтра, на работе ...
Igo (2002-08-22 06:51:00) [15]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-21 18:07:00) [16]Timer1.Enabled:=False; - выкинуть (это просто кусок из одной процедуры.)
Это пример для win98. Для NT - немного по другому.
star (2002-08-21 18:05:00) [17]Во, нашел!
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 14:18:00) [18]Эта функция сбрасывает данные не в структуру типа session_info_50, а В МАССИВ ЭТИХ СТРУКТУР. Тогда каждый элемент массива - отдельная сетевая сессия. У меня где-то на работе валяются мои разработки, пошарю, если найду - выкину сюда.
B-Ars (2002-08-21 12:37:00) [19]Попробуй объявить вот так - у меня работает:
function NetSessionEnum (SrverName:PChar;sLevel:dword; pbBuffer:pointer;
cbBuffer:dword;EntriesRead,TotalAvial:pointer):integer; stdcall;
external "svrapi.dll";
Igo (2002-08-21 07:50:00) [20]Кода у меня уже нет:) все снеслось недавно, надо начинать заново, но ты так ответь, эта же функция в win9х сбрасывает данные в структуру типа session_info_50, так вот, если делать указатель на эту структуру, то последнее подключение определяется, но если 2 машины то глухо....