Wir schauen uns jetzt einmal an wie man Javascript im Internet Explorer abschalten kann. Für manche Fälle kann dies sehr interessant werden, z.B. wenn man ein
Webbrowser Element nutzt, jedoch Javascript unbedingt deaktivieren muss. Dies kann der Fall sein, wenn Javascript den HTML-Code unnötig verschleiert (wie dies
bei Google z.B. der Fall ist) und man hier einen Riegel davor schieben möchte. Außerdem zeige ich euch wie ihr per Code Javascript auch wieder anschalten könnt. Somit könnt ihr diese Routine im
Code verankern und falls ihr das Produkt ausliefert die Nutzer-Einstellungen nach Beenden eures Programmes wieder rückgängig machen.
IE Javascript deaktivieren
Standardmäßig ist Javascript im IE aktiviert. Um zu prüfen ob er bei dir aktiv ist, gehst du am besten in die Internetoptionen. Diese findest du
am einfachsten wenn du den Internet Explorer startest und dann oben rechts nach einem Schlüssel suchst. Danach auf Sicherheit und auf Stufe
anpassen. Hier müssen wir weit nach unten scrollen und finden unter Scripting das Active Scripting. Das sollte bei dir jetzt
aktiviert sein. Nun kannst du testweise auf deaktivieren umstellen. Falls nun der gewünschte Effekt eintritt, so wie das bei mir war, dann mache nun weiter mit
diesem Tutorial und schaue dir an wie dies ganz einfach per VB.Net-Code funktioniert.
Interneteinstellungen im Regedit
Bevor wir loslegen schauen wir uns die Schlüssel an, die wir verändern möchten. Dies sind ingesamt 3 an der Zahl. Alle 3 Unterschlüssel liegen in
Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones.
- Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3
- Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1
- Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0
Wenn du nun einen der Unterschlüssel anklickst bekommst du links diverse Schlüssel angezeigt. Uns interessiert nur der Schlüssel 1400. Wenn Javascript
deaktiviert ist, so hat der Schlüssel den Wert 3. Aktiviert haben die Schlüssel den Wert 0. Achtet darauf, dass der Schlüssel ein DWORD ist und
bleibt!
Methode in VB.Net definieren
Zu allererst legen wir einen Button an, welcher den Javascript aus- und anschalten Code ausführt. Danach fügt ihr dann folgenden Code in den Button
ein.
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button.Click
Dim key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3",
True)
If key Is Nothing Then : MsgBox("Subkey does not exist") : Exit Sub : End If
Dim keyLocalFiles = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1",
True)
If keyLocalFiles Is Nothing Then : MsgBox("Subkey does not exist") : Exit Sub : End If
Dim keyMyComputer = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0",
True)
If keyMyComputer Is Nothing Then : MsgBox("Subkey does not exist") : Exit Sub : End If
Try
If key.GetValue(1400) = 3 Then
key.SetValue(1400, "0", Microsoft.Win32.RegistryValueKind.DWord)
keyLocalFiles.SetValue(1400, "0", Microsoft.Win32.RegistryValueKind.DWord)
keyMyComputer.SetValue(1400, "0", Microsoft.Win32.RegistryValueKind.DWord)
Else
key.SetValue(1400, "3", Microsoft.Win32.RegistryValueKind.DWord)
keyLocalFiles.SetValue(1400, "3", Microsoft.Win32.RegistryValueKind.DWord)
keyMyComputer.SetValue(1400, "3", Microsoft.Win32.RegistryValueKind.DWord)
End If
Catch ex As Exception
MsgBox(ex)
End Try
End Sub
Kurz noch eine Beschreibung zum Quellcode. Zuerst legen wir Variablen an, damit wir quasi Objekte haben und auf diesen arbeiten können. Sollte ein Subkey nicht existieren, so wird die Methode abgebrochen. Man könnte jetzt natürlich die Schlüssel auch anlegen, aber ich will hier ein läuffähiges kleines Basic-Beispiel zeigen und nicht eine Eier-legende Wollmilchsau.
Danach wenn also alle Subkeys vorhanden sind, wird einfach geschaut wie der derzeitige Wert ist. Ich habe hier einfach die Variable key
genommen. Natürlich müsste man theoretisch alle überprüfen, aber ist hier nicht notwendig. Anhand des Wertes wird nun entschieden ob Javascript deaktiviert bzw. aktiviert wird. Das war es auch
schön.
Fazit
Eine wirklich einfache Art Javascript im IE zu deaktivieren. Wie ich anfängs erwähnt habe, gibt es dazu mehrere Anwendungs-Szenarien. Getestet
wurde es bisher nur unter Windows 8. Allerdings sollte es überall funktionieren bzw. mit kleineren Anpassungen.
Kommentar schreiben