Cách thêm ứng dụng hoặc cổng vào chương trình tường lửa của Windows trên Windows XP theo cách lập trình?Quy tắc tường lửa của Windows cho XP
Trả lời
Hãy thử mã này được chiết xuất từ nguồn mở của chúng tôi SQlite3UI.pas đơn vị:
function GetXPFirewall(var fwMgr, profile: OleVariant): boolean;
begin
Result := (Win32Platform=VER_PLATFORM_WIN32_NT) and
(Win32MajorVersion>5) or ((Win32MajorVersion=5) and (Win32MinorVersion>0));
if result then // need Windows XP at least
try
fwMgr := CreateOleObject('HNetCfg.FwMgr');
profile := fwMgr.LocalPolicy.CurrentProfile;
except
on E: Exception do
result := false;
end;
end;
const
NET_FW_PROFILE_DOMAIN = 0;
NET_FW_PROFILE_STANDARD = 1;
NET_FW_IP_VERSION_ANY = 2;
NET_FW_IP_PROTOCOL_UDP = 17;
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_SCOPE_ALL = 0;
NET_FW_SCOPE_LOCAL_SUBNET = 1;
procedure AddApplicationToXPFirewall(const EntryName, ApplicationPathAndExe: string);
var fwMgr, profile, app: OleVariant;
begin
if GetXPFirewall(fwMgr,profile) then
try
if profile.FirewallEnabled then begin
app := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
try
app.ProcessImageFileName := ApplicationPathAndExe;
app.Name := EntryName;
app.Scope := NET_FW_SCOPE_ALL;
app.IpVersion := NET_FW_IP_VERSION_ANY;
app.Enabled :=true;
profile.AuthorizedApplications.Add(app);
finally
app := varNull;
end;
end;
finally
profile := varNull;
fwMgr := varNull;
end;
end;
procedure AddPortToXPFirewall(const EntryName: string; PortNumber: cardinal);
var fwMgr, profile, port: OleVariant;
begin
if GetXPFirewall(fwMgr,profile) then
try
if profile.FirewallEnabled then begin
port := CreateOLEObject('HNetCfg.FWOpenPort');
port.Name := EntryName;
port.Protocol := NET_FW_IP_PROTOCOL_TCP;
port.Port := PortNumber;
port.Scope := NET_FW_SCOPE_ALL;
port.Enabled := true;
profile.GloballyOpenPorts.Add(port);
end;
finally
port := varNull;
profile := varNull;
fwMgr := varNull;
end;
end;
Nó sẽ cho phép bạn thêm một ứng dụng hoặc một cổng vào tường lửa XP. Nên làm việc từ Delphi 6 lên đến XE.
Tôi đã cập nhật nguồn của thiết bị để làm việc trên XP, Vista và Seven, cho một ứng dụng, hoặc cho một cổng. Xem http://synopse.info/forum/viewtopic.php?pid=4652#p4652 –
Scripting Windows Firewall có thể, xem Scripting the Windows Firewall
Và mã ví dụ ví dụ here
Tôi sử dụng Delphi 7! –
Delphi 7 hỗ trợ kịch bản dựa trên COM – mjn
Trong trường hợp này, bạn nên thử nhập thư viện kiểu, xem liên kết của tôi, nó đề cập rằng kiểu tệp DLL thư viện 'thường nằm trong" C: \ Windows \ System32 \ hnetcfg.dll " (bài viết này là về XP, tôi đã kiểm tra trong Windows 7 và một tệp có tên này là có) – mjn
- 1. Lập trình tường lửa của Windows
- 2. Tạo quy tắc tường lửa để mở cổng cho mỗi ứng dụng lập trình trong C#
- 3. Quy tắc tường lửa của SQL Azure trên Cổng thông tin mới
- 4. Cập nhật quy tắc tường lửa hiện tại bằng cách sử dụng API
- 5. Dịch vụ WCF bị chặn bởi Tường lửa của Windows
- 6. Java so với tường lửa: cách cho phép các ứng dụng Java có bộ quy tắc riêng của chúng
- 7. Làm cách nào để Thêm Ngoại lệ Tường lửa Windows Outbound?
- 8. Kiểm tra Tường lửa của Bên Thứ ba trên Máy
- 9. Tường lửa chặn/bỏ chặn cổng
- 10. Cách mở cổng trên tường lửa của Windows qua tệp hàng loạt
- 11. Cấu hình tường lửa để cho phép XAMPP hoạt động trên LAN
- 12. WCF đẩy cho khách hàng thông qua tường lửa?
- 13. Tường lửa - Xây dựng hoặc Mua
- 14. Cấu hình sendmail sau tường lửa
- 15. Tường lửa mỗi-host trong Symfony2
- 16. Akka ngang hàng sau tường lửa
- 17. Tường lửa Symfony2 mất độ tuổi
- 18. DateTime.ToLocalTime trên Windows XP
- 19. Phát hiện nếu tường lửa của cửa sổ đang chặn chương trình của tôi
- 20. Tường lửa của tôi đang chặn kết nối mạng từ vùng chứa docker sang bên ngoài
- 21. Mục tiêu-C: Kiểm tra trạng thái tường lửa trong OSX?
- 22. Vô hiệu hóa khả năng của chương trình để thêm ngoại lệ vào tường lửa của cửa sổ qua API
- 23. SSH vào máy chủ phía sau tường lửa
- 24. Lệnh chọn hàng loạt Windows cho Windows XP & 2003
- 25. Các tệp tin giả trong symfony nằm sau tường lửa?
- 26. Kết nối Arduino với Internet qua proxy tường lửa
- 27. Cách kiểm tra tường lửa của cửa sổ được bật hay không bằng cách sử dụng các lệnh
- 28. make: quy tắc gọi quy tắc
- 29. Làm thế nào để kích hoạt "World Wide Services (HTTP)" trong tường lửa bằng cách sử dụng dòng lệnh?
- 30. .NET Windows Forms quy tắc thời gian thiết kế
bản sao có thể có của [Lập trình Thêm ngoại lệ cho tường lửa cửa sổ vista.] (Http://stackoverflow.com/questions/1409896/programatically-add-exception-to-windows-vista-firewall) –
bản sao có thể có của [Thêm vào Danh sách ngoại lệ tường lửa] (http://stackoverflow.com/questions/2384718/add-to-firewall-exception-list) –
Câu trả lời này chỉ hoạt động trong xp. chỉnh sửa tiêu đề kể từ khi OP chấp nhận điều này và thông tin hữu ích của nó, do đó không phải là một bản dupe vì bản sao chỉ hoạt động trong win7 và vista. –