Autor |
Beitrag |
LittleBen
Beiträge: 258
Erhaltene Danke: 4
Win 7, Mac OS
Delphi 7
|
Verfasst: Sa 13.10.12 13:31
Guten Mittag,
ich suche eine Möglichkeit, den Internetzugriff auf einem PC zu verhindern. Dabei ist mir z.B. in den Sinn gekommen, einfach das dafür zuständige Gerät vom Computer zu trennen, wie z.B. den Fritz Wlan Stick. Jedoch habe ich keine Ahnung, wie ich das im Programm umsetzen kann. Es gibt wahrscheinlich auch noch andere, viel bessere Möglichkeiten(?).
Kann mir jemand helfen?
Viele Grüße,
Littleben
|
|
Narses
Beiträge: 10181
Erhaltene Danke: 1254
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Sa 13.10.12 13:33
Moin!
Nimm das Default-Gateway aus der IP-Config raus, dann geht nur noch LAN.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 14.10.12 20:15
dot3svc
Der Wired Autoconfig Service muss aktiv sein.
wlansvc
Automatische WLAN-Konfiguration muss aktiv sein.
services.msc starten
Folgende Dienste auf Starttyp Automatisch stellen:
Automatische Konfiguration (verkabelt)
Automatische WLAN-Konfiguration
Für den Kommando-Interpreter:
WLAN ON:
netsh wlan delete filter permission=denyall networktype=infrastructure
netsh wlan delete filter permission=denyall networktype=adhoc
netsh wlan set blockperiod 0
WLAN OFF:
netsh wlan add filter permission=denyall networktype=infrastructure
netsh wlan add filter permission=denyall networktype=adhoc
netsh wlan set blockperiod 60 //60 Minuten Sperre
LAN ON:
netsh lan set blockperiod 0
LAN OFF:
netsh lan set blockperiod 60 //60 Minuten Sperre
Überprüfung:
netsh wlan show settings
netsh lan show settings
Beispiele in DELPHI:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| begin ShellExecute(Application.Handle, nil, 'netsh', 'wlan delete filter permission=denyall networktype=infrastructure', nil, SW_HIDE); end; . begin ShellExecute(Application.Handle, nil, 'netsh', 'wlan add filter permission=denyall networktype=infrastructure', nil, SW_HIDE); end; |
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 15.10.12 19:12
Zuletzt bearbeitet von hathor am Mo 07.09.15 14:43, insgesamt 1-mal bearbeitet
|
|
LittleBen
Beiträge: 258
Erhaltene Danke: 4
Win 7, Mac OS
Delphi 7
|
Verfasst: So 21.10.12 09:49
Hallo,
vielen Dank für die Lösungsvorschläge. Letztendlich hat die Funktion "How do I disable or enable a NIC?" von der Seite die hathor genannt hat wunderbar funktioniert.
Noch einen schönen Sonntag,
Littleben
|
|
hungrycoder
Hält's aus hier
Beiträge: 10
|
Verfasst: Di 08.01.13 22:21
Hallo zusammen,
wollte den Code "How do I disable or enable a NIC" auch verwenden nur nimmt er bei mir die Klasse "Win32_NetworkAdapter" in die Uses nicht auf. Kann sie anscheinend nicht auflösen. Wo liegt das Problem? Muss ich etwas anderes reintragen?
hungrycoder
|
|
LittleBen
Beiträge: 258
Erhaltene Danke: 4
Win 7, Mac OS
Delphi 7
|
Verfasst: Do 10.01.13 15:19
Versteh dein Problem nicht ganz...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74:
| unit U_Main;
interface
uses Forms, ComObj, Windows, ShellApi, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls, Dialogs, Registry, Math, ActiveX, SHDocVw, StdCtrls;
type TForm1 = class(TForm) Button2: TButton; Button1: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); const wbemFlagForwardOnly = $00000020; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', ''); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter Where NetEnabled=False','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin FWbemObject.Enable(); FWbemObject:=Unassigned; end; end;
procedure TForm1.Button2Click(Sender: TObject); const wbemFlagForwardOnly = $00000020; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', ''); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter Where NetEnabled=True','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin FWbemObject.Disable(); FWbemObject:=Unassigned; end; end;
end. |
|
|
hungrycoder
Hält's aus hier
Beiträge: 10
|
Verfasst: Sa 12.01.13 14:35
@LittleBen
Genau so habe ich es ja auch... Leider bekomme ich da den Fehler: "EOleException: Die Anfrage ist ungültig".
Habe WinXP Pro SP3.
Woran könnte es liegen? Kann mir nicht vorstellen, dass es wegen dem Systems ist, oder etwa doch?
|
|
LittleBen
Beiträge: 258
Erhaltene Danke: 4
Win 7, Mac OS
Delphi 7
|
Verfasst: Sa 12.01.13 14:59
Da muss ich dich wohl enttäusche
Siehe hier
msdn.microsoft.com/e...85%28v=vs.85%29.aspx
und
msdn.microsoft.com/e...64%28v=vs.85%29.aspx hier.
Dann wirst du folgendes sehen:
Zitat: | Minimum supported client
Windows Vista [desktop apps only]
Minimum supported server
Windows Server 2008 [desktop apps only] |
Für diesen Beitrag haben gedankt: hungrycoder
|
|
hungrycoder
Hält's aus hier
Beiträge: 10
|
Verfasst: Sa 12.01.13 15:11
@LittleBen
Danke dir, habs gerade mit Win7 ausprobiert da gehts -.-
Du weißt nicht zufällig eine Lösung, welche unter XP funktioniert?
|
|
LittleBen
Beiträge: 258
Erhaltene Danke: 4
Win 7, Mac OS
Delphi 7
|
Verfasst: Sa 12.01.13 15:21
Leider kenne ich auch keine andere Möglichkeit. Du könntest noch Narses Idee versuchen umzusetzen. Ist zwar keine schöne Methode, aber müsste funktionieren.
|
|
hungrycoder
Hält's aus hier
Beiträge: 10
|
Verfasst: So 13.01.13 21:35
Ich hab in Delphi noch nicht so viel mit Netzwerk zu tun gehabt, deswegen weiß ich auch nicht, ob es da eine einfache Möglichkeit gibt das Default-Gateway rauszunehmen. Habe jetzt aber schon eine Weile gesucht(2 Stunden). Muss ich wirklich die ganzen Verbindungsdaten löschen? Wenn ja würde ich das ganze mit Batch machen, gibt es da auch eine vernünftige Lösung mit Delphi?
|
|
LittleBen
Beiträge: 258
Erhaltene Danke: 4
Win 7, Mac OS
Delphi 7
|
Verfasst: So 13.01.13 21:45
Da ich mich damit selbst nicht so super auskenne, muss ich die Frage wohl an jaenicke weiterleiten, denn er hat normalerweise auf alles eine Antwort
|
|
hungrycoder
Hält's aus hier
Beiträge: 10
|
Verfasst: So 13.01.13 21:52
Alles klar , dann hoffe ich mal, dass jaenicke bald vorbeischaut. Aber vielleicht weiß ja noch jemand anders, wie man es am einfachsten/besten lösen könnte.
|
|
thepaine91
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Mo 14.01.13 13:32
Hier werden noch alternativen zur Lösung ab Windows Vista aufgelistet: slecluyse.wordpress....r-disable%C2%A0nics/
|
|