Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Internet Verbindung sperren (https://www.delphipraxis.net/146761-internet-verbindung-sperren.html)

Pluto 26. Jan 2010 18:53


Internet Verbindung sperren
 
Hallo Delphi Praxis Community

Ich möchte in einem Programm per Code die Internet Verbindung zeitweise sperren.


zu Fuss geht das so:
Systemsteuerung / Netzwerkverbindungen
die richtige Lanverbindung wählen (habe drei)
deaktivieren klicken

Suche Tipps oder Code, wie ich das per Programm bewerkstellen kann.

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]

Astat 26. Jan 2010 22:01

Re: Internet Verebindung sperren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Pluto
zu Fuss geht das so: ....

Hallo Pluto, im Source so.

Delphi-Quellcode:

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Variants, Shell32_TLB, StdCtrls, ActiveX, ComObj, UrlMon;


// Shell32_TLB aus shell32.dll TLB ('Microsoft Shell Controls and Automation')
// wird benötigt --> Project|Import Type Library,
// ************************************************************************
// LIBID: {50A7E9B0-70EF-11D1-B75A-00A0C90564FE}

function LAN_ON_OFF(const ConnectionName: string): Boolean;
var
  ShellApp: Shell32_tlb.Shell;
  ControlPanel: Shell32_tlb.Folder;
  FolderItem: Shell32_tlb.FolderItem;
  NetworkFolder: Shell32_tlb.Folder;
  LANConnection: Shell32_tlb.FolderItem;
  EnableVerbItem, DisableVerbItem: Shell32_tlb.FolderItemVerb;
  I: Integer;
  LANEnable: Boolean;
begin
  LANEnable := false;
  ShellApp := CoShell.Create;
  ControlPanel := ShellApp.NameSpace(ssfCONTROLS);
  for I := 0 to ControlPanel.Items.Count - 1 do begin
    FolderItem := ControlPanel.Items.Item(I);
    if (FolderItem.Name = 'Network Connections') or
       (FolderItem.Name = 'Netzwerk- und DFÜ-Verbindungen') or
       (FolderItem.Name = 'Network and Dial-up Connections') or
       (FolderItem.Name = 'Network and Sharing Center') then
    begin
      NetworkFolder := FolderItem.GetFolder as Folder;
      Break;
    end;
  end;

  if NetworkFolder <> nil then begin
    for I := 0 to NetworkFolder.Items.Count - 1 do begin
      FolderItem := NetworkFolder.Items.Item(I);
      if FolderItem.Name = ConnectionName then begin
        LANConnection := FolderItem;
        Break;
      end;
    end;

    if LANConnection <> nil then begin
      for I := 0 to LANConnection.Verbs.Count - 1 do begin
        if (LANConnection.Verbs.Item(I).Name = '&Aktivieren') or
           (LANConnection.Verbs.Item(I).Name = 'En&able') then
        begin
          EnableVerbItem := LANConnection.Verbs.Item(I);
          LANEnable := True;
          Break;
        end else
        if (LANConnection.Verbs.Item(I).Name = '&Deaktivieren') or
           (LANConnection.Verbs.Item(I).Name = 'Disa&ble') then
        begin
          DisableVerbItem := LANConnection.Verbs.Item(I);
          LANEnable := False;
          Break;
        end;
      end;
      if LANEnable then EnableVerbItem.DoIt else DisableVerbItem.DoIt;
      Result := True;
    end;
  end;
end;

//-- How to use
procedure TForm1.Button1Click(Sender: TObject);
begin
  LAN_ON_OFF('LAN-Verbindung 2');
end;
Achtung OS Sprachabhängig!

lg. Astat

Pluto 27. Jan 2010 11:21

Re: Internet Verbindung sperren
 
Dank für die schnelle und gute Antwort !!

himitsu 27. Jan 2010 11:31

Re: Internet Verebindung sperren
 
Statt "Netzwerk- und DFÜ-Verbindungen" vielleicht mal hiermit ::{7007ACC7-3202-11D1-AAD2-00805FC1270E} probieren?

Wenn ich dieses unter XP in den Explorer eingeb, dann lande ich zumindestens am richtigen Ort.


PS: Hier heißt dieses Verzeichnis übrigens "Netzwerkverbindungen".


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz