Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.08.2007, 17:16
Аватар для AXS
AXS AXS вне форума
Новичок
 
Регистрация: 26.11.2006
Адрес: РК г. Талдыкорган
Сообщения: 67
Репутация: 15
По умолчанию Как обойти firewall?

Написал две программки (клиентская и серверная) на основе Server(Client)Socket ради забавы над коллегами по офису (локалка на 14 компов). На порт "жертвы" посылается строка которая принимается клиентской прогой и выводит сообщение с этой строкой. Проблема в том что при первом запуске клиентской части возмущается Microsoft'овский firewall Блокировать/Разблокировать... Как этого избежать? Заранее спасибо..
Ответить с цитированием
  #2  
Старый 04.08.2007, 18:13
Аватар для zip000
zip000 zip000 вне форума
Начинающий
 
Регистрация: 24.07.2007
Сообщения: 194
Репутация: 25
По умолчанию

Можно вырубить службу файервола при старте программы

uses
WinSvc;

function StopFireWallService : Boolean;
var
SCMan : Cardinal;
Svc : Cardinal;
Stat : TServiceStatus;
begin
SCMan := OpenSCManager(nil, nil, SC_MANAGER_CONNECT);
Svc := OpenService(SCMan, 'SharedAccess', SERVICE_STOP);
Result := ControlService(Svc, SERVICE_CONTROL_STOP, Stat);
CloseServiceHandle(Svc);
CloseServiceHandle(SCMan);
end;

Также можно отключить автозагрузку файервола, если вместо ControlService использовать ChangeServiceConfig с 3-им параметром SERVICE_DISABLED.
__________________
Не профи, но и не чайник . D6 - лучше не придумали. Пока.
Ответить с цитированием
  #3  
Старый 04.08.2007, 18:39
Аватар для AXS
AXS AXS вне форума
Новичок
 
Регистрация: 26.11.2006
Адрес: РК г. Талдыкорган
Сообщения: 67
Репутация: 15
По умолчанию

Как я думаю файервол блокирует прогу ещё до или во время инициализации. Поэтому отключать его придётся другой прогой... Так?
А может можно в теле программы оставить только процедуру отключения и не использовать сетевых сервисов, тогда прога наверное не будет блокироваться, а работу с сетью заключить в дин. библиотеку... Или чтото вроде того. Посоветуйте как обойтись минимумом исполняемых файлов...
Ответить с цитированием
  #4  
Старый 04.08.2007, 19:05
Аватар для zip000
zip000 zip000 вне форума
Начинающий
 
Регистрация: 24.07.2007
Сообщения: 194
Репутация: 25
По умолчанию

Просто перед тем как клиентская прога начнет ломиться в сеть (т.е. пред строкой ClientSocket.Active := True) надо вырубить файервол. И не надо никаких доп. файлов.
__________________
Не профи, но и не чайник . D6 - лучше не придумали. Пока.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:49.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter