Yeah! Gerade eben diese Mail im Postfach gehabt! Download läuft, ich bin sehr gespannt.
Ich werde berichten.
Yeah! Gerade eben diese Mail im Postfach gehabt! Download läuft, ich bin sehr gespannt.
Ich werde berichten.
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.
Als nächstes fügt man eine Referenz auf ProxySwitcher.Shared.dll hinzu. Dort befindet sich die benötigte Basisklasse.
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:
Ü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”.
Ü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.
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):
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.
Update:
Die dokumentierte Beispielimplementierung gibt es hier zum download.
Lange Zeit sind die Prozessoren immer schneller geworden, der Arbeitsspeicher ist schneller und vor allem immer größer geworden und langsam aber sicher wird (ist) die einzige Bremse im Computer die Festplatte.
Das trifft vor allem auf Laptops zu, da bei Desktops und Servern natürlich Platten mit 10k Umdrehungen und RAIDs möglich sind. Im Laptop dagegen hat man in der Regel nur Platz für eine Platte.
Hier kommen jetzt die SSDs ins Spiel. Klar kannte ich natürlich dieses Video:
Aber ich war etwas skeptisch, zumal leider keine 24 Platten in meinen Laptop passen… Also bringt auch eine Platte eine deutlich bessere Performance?
Kurze Antwort: JA! JA! JA!
Die G.Skill Falcon Platte hat den neuesten Controller und zusätzlich noch 64MB cache, was zusammen keine Wünsche offen lässt.
Mit Windows 7 hat Microsoft ja bekanntlich diverse Verbesserungen für SSDs implementiert, und das rockt (nicht nur im Windows Experience Index): 7,4 von 7,9!
Auch die subjektive Geschwindigkeit beim öffnen von Anwendungen oder beim Hochfahren von Windows ist seehr viel besser.
Müssen die SSDs nur noch günstiger werden…
Version 1.5 ist fertig! Neben einigen Bug Fixes sind, wie bereits im Feature Preview Post erwähnt folgende neue Funktionen hinzugekommen:
Leider gibt es einige Probleme mit Click-Once, so dass v1.5 weiterhin nur über ein Setup zur Verfügung steht und nicht automatisch aktualisiert wird (aber automatisch benachrichtigt, sobald eine neue Version verfügbar ist).
Desweiteren hat es die Wählverbindung-Unterstützung nicht mehr in diese Version geschafft, ist aber definitiv auf der Roadmap für v1.6.
Da Microsoft ein paar gravierende Änderungen am Proxy System vom IE 8 vorgenommen hat, gibt es nun einen Switcher für “Internet Explorer” und einen für “Internet Explorer 8”. Nur einer von beiden sollte, je nach System, aktiviert werden.
WICHTIG: Der Pfad zu den Einstellungen und Proxy Konfigurationen hat sich wie folgt geändert:
Speicherort vor v1.5: C:\Users[USERNAME]\AppData\Local\ProxySwitcher (Windows XP: C:\Documents and Settings[USERNAME]\Local Settings\Application Data\ProxySwitcher”)
Neuer Speicherort v1.5+: C:\Users[USERNAME]\AppData\Roaming\ProxySwitcher (Windows XP: C:\Documents and Settings[USERNAME]\Application Data\ProxySwitcher)
Um die vorhandenen Einstellungen zu übernehmen, einfach alle Dateien im genannten Ordner in den neuen Ordner kopieren.
Vorschau
Für v1.6 steht, neben dem Support für Wählverbindungen, auch eine bessere Unterstützung für größere Firmen Deployments auf der Agenda (z.B. Konfiguration und Sperren von Änderungen über Group Policies, als auch Überwachung der Einstellungsdateien, so dass diese im laufenden Betrieb geändert werden können)
Außerdem steht auch immer noch Opera support auf der Agenda… wird auf jedenfall noch vor v1.6 ausgeliefert…
UPDATE:
Es gab ein kleines Problem mit den advanced exceptions, was nun behoben ist. Die Version ist nun 1.5.1. Sorry für die Unannehmlichkeiten!
With the Windows API Code Pack, Microsoft released a really cool managed wrapper for most of the new Windows 7 features. See here for more details and download.
One thing you can do is to create a .NET app with Jumplist support. Jumplists are these cool menus appearing on right click on an icon in the task bar:
But there is something wrong with the jumplist: It can only launch new apps! The demo solution for the Code Pack launches notepad and some other things, but there is no word about how to open the same app but with a new form.
So here is my solution, which is not very nice, but it works like a charm.
Scencario:
AppInstance1 is running –> click on a jumplist item starts a new instance –> appInstance2 now knows, that this is the second instance, so appInstance2 calls appInstance1 through remoting (IPC) and terminates–> appInstance1 receives the remoting call und execute something.
Ok, how to implement this?
First of all, create a new Windows Forms app and go to the Program.cs file. Within this class create a new class which works as your service for the remoting part and also a static reference to your form:
static class Program { public class RemotingService : MarshalByRefObject { public RemotingService() { } public void ShowText(string text) { Program.formMain.SetTextToTextBox(text); } } internal static Form1 formMain;
Then you will need some remoting code for the communication. I created two methods “InitRemoting” and “CallRunningInstance”. InitRemoting is called from the main method if this is the first instance. CallRunningInstance is called if the main method detects, that this is the second instance.
For the detection I use a system wide mutex.
I hope you get the idea. Because there are some more lines of code I created a demo project for you to download:
Download the entire working demo solution here.