Wenn der Schlüssel des Kontextmenü-Eintrages bzw. sein Anzeigename in der Registry umbenannt wurde, dann diesen im IE sofort aktualisiert anzeigen
Verwendet wird IE10 unter Windows 7 x32
Hallo,
ich möchte ein Kontextmenü-Eintrag einbauen, der je nach aktuellem Zustand z. B. "Deaktivieren" und "Aktivieren" heißen sollen. Wenn der Schlüssel in der Registry von "Deaktivieren" auf "Aktivieren" umbenannt und IE mit der Taste F5 aktualisiert wird, dann aktualisiert sich das Kontextmenü leider nicht mit, sodass der eigene Kontextmenü-Eintrag weiterhin als "Deaktivieren" angezeigt.
- Wie kann das Kontextmenü im Internet Explorer ohne IE-Neustart aktualisiert werden? Gibt es hierfür ein VB-Skript?
- Wie kann ein Symbol für eigene Kontextmenü-Einträge eingebaut werden?
Ich habe sehr viel recherchiert, aber nichts Relevantes war im Netz zu finden.
Wenn ich folgendes Skript von Desktop aus ausführe, dann wird das aktive Fenster von IE aktualisiert:
Wenn ich das Skript in einer htm-Datei einbaue und ihr Pfad in der Registry in Standard REG_SZ für den jeweiligen Kontextmenü-Eintrag einfüge, dann aktualisiert sich das IE-Fenster beim Aufruf des Eintrages über das Kontextmenü leider nicht. So sieht die htm-Datei aus:
Ansonsten andere Codes, z. B. zum Ausführen einer Datei, funktionieren dagegen:
Würde das Aktualisieren eventuell ohne RunAs möglich sein (also ohne UAC/Kontensteuerungsabfrage) und wie?
Vielen Dank für eure Hilfe
Gruß
Evinben
Hallo,
ich möchte ein Kontextmenü-Eintrag einbauen, der je nach aktuellem Zustand z. B. "Deaktivieren" und "Aktivieren" heißen sollen. Wenn der Schlüssel in der Registry von "Deaktivieren" auf "Aktivieren" umbenannt und IE mit der Taste F5 aktualisiert wird, dann aktualisiert sich das Kontextmenü leider nicht mit, sodass der eigene Kontextmenü-Eintrag weiterhin als "Deaktivieren" angezeigt.
- Wie kann das Kontextmenü im Internet Explorer ohne IE-Neustart aktualisiert werden? Gibt es hierfür ein VB-Skript?
- Wie kann ein Symbol für eigene Kontextmenü-Einträge eingebaut werden?
Ich habe sehr viel recherchiert, aber nichts Relevantes war im Netz zu finden.
Wenn ich folgendes Skript von Desktop aus ausführe, dann wird das aktive Fenster von IE aktualisiert:
set ws = CreateObject("Wscript.shell")
ws.AppActivate ("Internet Explorer")
ws.sendkeys("{f5}")
Wenn ich das Skript in einer htm-Datei einbaue und ihr Pfad in der Registry in Standard REG_SZ für den jeweiligen Kontextmenü-Eintrag einfüge, dann aktualisiert sich das IE-Fenster beim Aufruf des Eintrages über das Kontextmenü leider nicht. So sieht die htm-Datei aus:
<HTML>
< SCRIPT LANGUAGE="VBSCRIPT">
set ws = CreateObject("Wscript.shell")
ws.AppActivate ("Internet Explorer")
ws.sendkeys("{f5}")
< /SCRIPT>
< /HTML>
Ansonsten andere Codes, z. B. zum Ausführen einer Datei, funktionieren dagegen:
<HTML>
< SCRIPT LANGUAGE="VBSCRIPT">
set Wshshell = CreateObject("Shell.Application")
Wshshell.ShellExecute "cmd.exe", "/c ""TEST.vbs"" " & str,"", "runas", 0
</SCRIPT>
< /HTML>
Würde das Aktualisieren eventuell ohne RunAs möglich sein (also ohne UAC/Kontensteuerungsabfrage) und wie?
Vielen Dank für eure Hilfe
Gruß
Evinben
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207775
Url: https://administrator.de/contentid/207775
Ausgedruckt am: 24.11.2024 um 13:11 Uhr
7 Kommentare
Neuester Kommentar
Moin evinben,
was eventuell funktionieren könnte :
mit VBS inetcpl.cpl öffnen, per Sendkeys
ALT-F TAB TAB TAB ENTER ESC
(Register Allgemein > Farben > OK > ESC schließt Fenster, danach lädt der IE offenbar seine Konfiguration, die er sich sonst NUR BEIM ProgrammSTART holt neu.
ausführen lassen, das funktioniert im IE8 unter XP und wird wohl auf ähnliche Art und Weise auch beim IE10 funktionieren.
Allerdings gibt es sicherlich Punktabzug bei der B-Note (Ästhetik und Eleganz).
Grüße
Biber
P.S. & OT:
Zusatzfrage an dich: Gäbe es bei deiner Idee auch irgendwann den Punkt, an dem du sagen würdest: "ja nee, da ist nur eine Frickellösung möglich.. ich stell mal das Projekt ein?"-
Ich meine, wenn inzwischen sogar schon Drohnen-Projekte nach wenigen Arbeitsjahrhunderten und ein paar hundert Milliarden verbrannten Steuereuronen gestoppt werden, dann solltest auch du erwägen....
Oder wie das Tao und Angies Imageberater immer sagen: Lerne, dich von Dingen zu trennen, die dir wichtig sind..
was eventuell funktionieren könnte :
mit VBS inetcpl.cpl öffnen, per Sendkeys
ALT-F TAB TAB TAB ENTER ESC
(Register Allgemein > Farben > OK > ESC schließt Fenster, danach lädt der IE offenbar seine Konfiguration, die er sich sonst NUR BEIM ProgrammSTART holt neu.
ausführen lassen, das funktioniert im IE8 unter XP und wird wohl auf ähnliche Art und Weise auch beim IE10 funktionieren.
Allerdings gibt es sicherlich Punktabzug bei der B-Note (Ästhetik und Eleganz).
Grüße
Biber
P.S. & OT:
Zusatzfrage an dich: Gäbe es bei deiner Idee auch irgendwann den Punkt, an dem du sagen würdest: "ja nee, da ist nur eine Frickellösung möglich.. ich stell mal das Projekt ein?"-
Ich meine, wenn inzwischen sogar schon Drohnen-Projekte nach wenigen Arbeitsjahrhunderten und ein paar hundert Milliarden verbrannten Steuereuronen gestoppt werden, dann solltest auch du erwägen....
Oder wie das Tao und Angies Imageberater immer sagen: Lerne, dich von Dingen zu trennen, die dir wichtig sind..
Moin evinben,
eine kleine Vereinfachung kann ich noch anbieten.
Voila. ;)
Aber nicht getestet unter Win8/IE 10 oder höher.
Grüße
Biber
eine kleine Vereinfachung kann ich noch anbieten.
' IE_RefreshKrams.vbs
' für %windir% korrekten Pfad einsetzen oder expandieren:
set oShell = CreateObject("Shell.Application")
set wshell = CreateObject("Wscript.shell")
oShell.ShellExecute "%windir%\System32\RUNDLL32.EXE", "inetcpl.cpl, ShowLanguageDialog"
wscript.sleep(100)
wShell.Sendkeys "{ENTER}"
wscript.quit
Voila. ;)
Aber nicht getestet unter Win8/IE 10 oder höher.
Grüße
Biber
Hallo evinben.
Location.Reload?
*.vbs
Bibers Version sollte aber trotzdem die bessere Wahl sein. In meinem Code wird jede Seite neu geladen. Nicht im Sinne des Erfinders ...
Grüße
rubberman
Location.Reload?
*.vbs
Option Explicit
Dim objShell, colWindows, objWindow, objDoc
Set objShell = CreateObject("Shell.Application")
Set colWindows = objShell.Windows
For Each objWindow In colWindows
If InStr(1, objWindow.FullName, "iexplore.exe", vbTextCompare) Then
Set objDoc = objWindow.Document
objDoc.Location.Reload(True)
WScript.Sleep 500
Set objDoc = Nothing
End if
Next
Set objWindow = Nothing
Set colWindows = Nothing
Set objShell = Nothing
Grüße
rubberman
Oh, da bin ich meilenweit am Ziel vorbei.
Intern wird sicher die API bemüht (InternetSetOption mit INTERNET_OPTION_SETTINGS_CHANGED und/oder INTERNET_OPTION_REFRESH als zweiten Parameter). Da bekommst du aber keinen Zugang per J-/VBScript
Grüße
rubberman
Intern wird sicher die API bemüht (InternetSetOption mit INTERNET_OPTION_SETTINGS_CHANGED und/oder INTERNET_OPTION_REFRESH als zweiten Parameter). Da bekommst du aber keinen Zugang per J-/VBScript
Grüße
rubberman