Proxy Switcher v1.5 – How to create your own switcher?

29. June 2009 19:17 by marco in .NET, C# Code, ProxySwitcher, Software, Visual Studio 2008  //  Tags:   //   Comments (6)

Proxy Switcher arbeitet derzeit mit dem Internet Explorer und Firefox zusammen. In der Regel greifen Anwendungen automatisch auf die Proxy Einstellungen des Internet Explorers zurück, weshalb es normalerweise vollkommen ausreichend ist.

Hat man nun aber einen Sonderfall, also eine Applikation die nicht auf die Internet Explorer settings zurückgreifen kann, benötigt man ein zusätzlichen “Switcher”.

In diesem Artikel zeige ich, wie einfach es ist, selbst einen zu entwickeln und im Proxy Switcher zu verwenden.

Implementierung

Zunächst erstellt man ein neues Class Library Projekt im Visual Studio 2008. Dies ist auch mit der kostenlosen Variante Visual Studio 2008 Express (C# oder VB.NET) ohne Probleme möglich.

image

Als nächstes fügt man eine Referenz auf ProxySwitcher.Shared.dll hinzu. Dort befindet sich die benötigte Basisklasse.

image

Nun noch die Class1.cs Datei umbenennen, z.B. in DemoSwitcher.cs. Dadurch wird auch automatisch die Klasse umbenannt. Diese Klasse muss nun von der SwitcherBase Klasse erben, wofür außerdem das using statement hinzugefügt werden muss:

image

Über das SmartTag was erscheint wenn man SwitcherBase ausgeschrieben hat, lassen sich automatisch alle benötigten Methoden erzeugen. Das wären “DisableProxy”, “EnableProxy” und die Eigenschaft “Name”.

image

Über die Name Eigenschaft kann man einen Namen vergeben, der später dann im Proxy Switcher angezeigt wird.

Enable und Disable sollte sich von selbst erklären. Innerhalb der Methoden kann man auf this.CurrentProxyEntry zugreifen um die Daten abzurufen, die nun aktiviert/deaktiviert werden sollen.

image

Damit hätten wir die minimal Implementierung beendet.

Erweiterte Funktionen

Man kann nun noch für seinen Switcher Einstellungen laden und speichern und auch einen Settings Dialog als Windows Form anbieten (wofür dann noch eine Referenz auf “System.Windows.Forms” hinzugefügt werden muss):

image 

Deployment

Nachdem man alles soweit fertig hat, muss das Projekt noch kompiliert werden. Dadurch entsteht eine DLL, in meinem Fall PSDemoSwitcher.dll.

Diese muss nur noch in das Verzeichnis kopiert werden, wo auch ProxySwitcher.exe liegt. Also normalerweise “C:\Programme\ProxySwitcher”.

Startet man nun den ProxySwitcher, erscheint im ersten Tab direkt mein neuer Switcher und kann selektiert werden, damit er auch aufgerufen wird.

image

 

Update:

Die dokumentierte Beispielimplementierung gibt es hier zum download.

Comments (6) -

Markus Heidinger
Markus Heidinger
7/2/2009 6:42:26 AM #

Ich finde die Möglichkeit, auf diese Weise quasi selbst Plug-Ins schreiben zu können, ausgesprochen nützlich.

Meine Bitte dazu: könntest Du eine Kurzanleitung bereitstellen, wie man damit nun bspw. Registry-Settings verändern oder Configfiles manipulieren kann?
Mir ist dabei klar, dass man für jedes Programm im Einzelfall prüfen muss, ob die Änderungen zur Laufzeit akzeptiert werden oder man diese evtl. neustarten muss.

Dennoch wäre eine derartige Erweiterung Deines "Kochrezeptes" hilfreich um zu verstehen, wie man einen funktionsfähigen Switcher bauen kann.

Danke!

marco
marco
7/2/2009 7:22:48 AM #

Sehr gerne. Ich werde heute oder morgen einen zusätzlichen Beitrag schreiben, der das ganze am Beispiel vom Internet Explorer ein wenig mehr veranschaulicht.

marco
marco
7/2/2009 6:24:22 PM #

Habe nun den Beitrag aktualisiert und am Ende einen Download Link mit dem Beispielprojekt hinzugefügt.

Markus Heidinger
Markus Heidinger
7/3/2009 1:56:13 PM #

Danke, das werde ich mir demnächst mal zu Gemüte führen und mal versuchen, Applikationen wei ICQ, Skype etc. zur Zusammenarbeit zu bewegen Wink ... Erfolgsmeldungen möglicherweise demnächst hier, wobei ich gerne dann auch den Code zur Verfügung stellen werde, so ich hoffentlich auch die Zeit dafür finde.

Markus

Thomas Brenau
Thomas Brenau
7/5/2009 11:49:29 PM #

Hallo Marco,

ich habe bislang Version 1.31 auf meinem Firmen-Laptop genutzt, mit dem Update auf Version 1.51 gibt es nun folgenden Fehler (Copy & Paste aus dem Fehlerdialog):

---------------------------
Error
---------------------------
An unhandled exception has occured. Please send a bug report to mail@mwiedemeyer.de with the following details:

Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Das System kann die angegebene Datei nicht finden.
---------------------------
OK  
---------------------------

Kann es sein, daß Du mit Version 1.51 ein aktuelles .Net-Framework 3.5 voraussetzt?

Ich traue mich nicht, auf meinem Firmen-Laptop eine so tiefgreifende Software upzudaten (momentan installiert: 3.0) - wer weiß, was ich mir (oder meiner IT) damit kaputtschieße...

Mit dem Downgrade auf die Version 1.31 habe ich nun wieder einen funktionierenden ProxySwitcher, aber die neuen Features reizen mich doch schon. Insbesondere der Default-Printer...

Grüße und ein Vorab-Dankeschön,
Thomas Brenau



marco
marco
7/6/2009 7:21:17 PM #

Ja, das .NET Framework 3.5 SP1 ist nun Voraussetzung.
Wenn allerdings 3.0 bereits vorhanden ist, sollte ein Update auf 3.5 keinerlei Probleme verursachen, da nur einige zusätzliche Dinge installiert werden, das ganze aber weiterhin auf .NET 3.0 bzw der CLR 2.0 basiert.

Comments are closed