Blog b = new Blog("marcos blog"); RSS 2.0
# Monday, June 29, 2009

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.

Monday, June 29, 2009 8:17:43 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [6]
.NET | C# Code | ProxySwitcher | Software | Visual Studio 2008
Thursday, July 02, 2009 7:42:26 AM (W. Europe Standard Time, UTC+01:00)
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!
Markus Heidinger
Thursday, July 02, 2009 8:22:48 AM (W. Europe Standard Time, UTC+01:00)
Sehr gerne. Ich werde heute oder morgen einen zusätzlichen Beitrag schreiben, der das ganze am Beispiel vom Internet Explorer ein wenig mehr veranschaulicht.
Thursday, July 02, 2009 7:24:22 PM (W. Europe Standard Time, UTC+01:00)
Habe nun den Beitrag aktualisiert und am Ende einen Download Link mit dem Beispielprojekt hinzugefügt.
Friday, July 03, 2009 2:56:13 PM (W. Europe Standard Time, UTC+01:00)
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 ;-) ... 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
Markus Heidinger
Monday, July 06, 2009 12:49:29 AM (W. Europe Standard Time, UTC+01:00)
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



Thomas Brenau
Monday, July 06, 2009 8:21:17 PM (W. Europe Standard Time, UTC+01:00)
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.
OpenID
Please login with either your OpenID above, or your details below.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, b, strike, strong) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview
Infos
RSS Feed

Technorati
Mein Xing (openBC) Profil

Free/Busy Free/Busy

Karte Wo ist Marco?
Zuletzt in:

MCPD EA

MCTS


Translate
English, French, Spanish, Italian
Statistics
Total Posts: 189
This Year: 1
This Month: 0
This Week: 0
Comments: 291


Sign In
All Content © 2010, Marco Wiedemeyer
DasBlog theme 'Business' created by Christoph De Baene (delarou)