Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS-Script soll den IE öffnen - aber auch bei mehrmaligem Aufruf immer im gleichen Fenster starten!

Frage Entwicklung Batch & Shell

Mitglied: Maikell84

Maikell84 (Level 1) - Jetzt verbinden

20.01.2014, aktualisiert 16:28 Uhr, 4489 Aufrufe, 2 Kommentare, 1 Danke

Hallo!

Ich habe eine Frage zu einem VBS-Script, welches ich aus dem Internet kopiert und etwas angepasst habe.
Das folgende Script ruft den Internetexplorer ohne Statuszeile, Menüleiste usw... auf und navigiert sofort zu der URL, die ich dem Script übergebe.

01.
Dim objExplorer, url 
02.
url = WScript.Arguments.Named.Item("url") 
03.
Set objExplorer = WScript.CreateObject("InternetExplorer.Application") 
04.
 
05.
Do While (objExplorer.Busy) 
06.
    Wscript.Sleep 250 
07.
Loop 
08.
 
09.
objExplorer.TheaterMode = False 
10.
objExplorer.AddressBar = True 
11.
objExplorer.MenuBar = False 
12.
objExplorer.StatusBar = False 
13.
objExplorer.ToolBar = False 
14.
objExplorer.Resizable = True 
15.
 
16.
' Hier die Fenstergröße definieren 
17.
objExplorer.Height = 715 
18.
objExplorer.Width = 650 
19.
objExplorer.Left = 0 
20.
objExplorer.Top = 0 
21.
'objExplorer.FullScreen = True 
22.
objExplorer.Silent = False 
23.
objExplorer.Visible = True 
24.
 
25.
objExplorer.Navigate url 
26.
 
27.
 
28.
objShell.AppActivate objExplorer 
29.
 
30.
 
31.
'WshShell.AppActivate oWshShell.ProcessID	 
32.
 
33.
Set objExplorer = nothing
Soweit so gut. Funktioniert auch


Nun wird das Script jedes Mal in einem neuen Fenster aufgerufen, was schlecht ist. Es sollte einmal in einem neuen Fenster aufgehen, und dann sollte die Seite immer wieder im gleichen Fenster aufgerufen werden, wenn der Benutzer das Fenster noch nicht geschlossen hat.

Nun bin ich mit meinen bescheidenen vbs und batch-Kenntnissen am Ende, weswegen ich mich fragend an Euch wende.
Wie ist das zu realisieren?

Mein Gedanke war:
Erkennen ob das Fenster schon offen ist. Falls ja das Fenster killen und neu aufmachen.
Z.B.:

01.
   Set objWMIService = GetObject("winmgmts:\\localhost\root\CIMV2") 
02.
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE '%iexplore.exe%'  ", "WQL", _ 
03.
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly) 
04.
 
05.
   For Each objItem In colItems 
06.
 WScript.Echo "ProcessId: " & objItem.ProcessId 
07.
next
Dadurch habe ich die Prozess-ID des IE Fensters, und kann sie dann mit taskkill killen.
Problem bei der Sache:
1.) Ich kann nicht herausfinden, welches das IE-Fenster ist, mit dem der Nutzer durch das Internet surft und welches das Fenster ist, welches ich durch das obige Script aufgemacht habe.
2.) Ich erhalte durch den Befehl 6 IE-PIDs, obwohl nur 2 Fenster offen sind?


Habt Ihr eine Idee, wie ich die Problemstellung lösen kann?

Viele Grüße
Maikell
Mitglied: colinardo
LÖSUNG 20.01.2014, aktualisiert um 16:28 Uhr
Hallo Maikell,
machs mal so:
01.
Dim objExplorer, url 
02.
url = WScript.Arguments.Named.Item("url") 
03.
 
04.
Set objShell = CreateObject("Shell.Application") 
05.
Set WshShell = CreateObject("Wscript.Shell") 
06.
 
07.
'Objekt mit allen aktuellen Fenstern holen 
08.
Set objWindow = objShell.Windows() 
09.
For Each objItem In objWindow 
10.
    ' Wenn die Befehlszeile des Fensters 'iexplore' enthält und die Breite des Fensters 650 beträgt, dann setze objExplorer auf das Fenster-Objekt 
11.
    If InStr(1,LCase(objItem.FullName),"iexplore",1) and objItem.Width = 650 Then 
12.
    	Set objExplorer = objItem 
13.
        Exit For 
14.
    End If 
15.
Next 
16.
 
17.
' Wenn kein passendes IE-Fenster gefunden wurde, erzeuge ein neues IE-Object 
18.
If IsEmpty(objExplorer) Then 
19.
    Set objExplorer = CreateObject("InternetExplorer.Application") 
20.
End If 
21.
 
22.
objExplorer.TheaterMode = False 
23.
objExplorer.AddressBar = True 
24.
objExplorer.MenuBar = False 
25.
objExplorer.StatusBar = False 
26.
objExplorer.ToolBar = False 
27.
objExplorer.Resizable = True 
28.
 
29.
' Hier die Fenstergröße definieren 
30.
objExplorer.Height = 715 
31.
objExplorer.Width = 650 
32.
objExplorer.Left = 0 
33.
objExplorer.Top = 0 
34.
objExplorer.Silent = False 
35.
objExplorer.Visible = True 
36.
 
37.
objExplorer.Navigate url 
38.
 
39.
Do While (objExplorer.Busy) 
40.
    Wscript.Sleep 250 
41.
Loop 
42.
 
43.
wshShell.AppActivate objExplorer 
44.
 
45.
Set objExplorer = Nothing 
46.
Set objShell = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: Maikell84
20.01.2014 um 16:28 Uhr
Hallo Uwe,

Klasse, vielen Dank!!
Das funktioniert so genau wie es soll!
Perfekt!

Viele Grüße
Maikell
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Hilfe Bei einem vbs Script
Beitrag von 19 Kommentare

Frage von Hattori-Hanzo zum Thema Batch & Shell

Entwicklung
Mehrere Chrome Fenster nebeneinander öffnen beim Autostart
Beitrag von 1 Kommentar

Frage von elemeno zum Thema Entwicklung

Batch & Shell
Bash Script stoppt nach start
Beitrag von 4 Kommentare

Frage von flooo89 zum Thema Batch & Shell

Batch & Shell
Cpl Dateien per Batch oder VBS öffnen
Beitrag von 1 Kommentar

Frage von Angelo131095 zum Thema Batch & Shell

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Beitrag von 4 Kommentare

Anleitung von colinardo zum Thema MikroTik RouterOS

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Beitrag von

Information von BassFishFox zum Thema Sicherheit

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Beitrag von 5 Kommentare

Information von admtech zum Thema Administrator.de Feedback

Vmware

VMware Desktopprodukte sind verwundbar

Beitrag von

Information von Penny.Cilin zum Thema Vmware

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Beitrag von 24 Kommentare

Frage von ahstax zum Thema Visual Studio

Windows Server
RDP macht Server schneller???
Beitrag von 16 Kommentare

Frage von JaniDJ zum Thema Windows Server

Windows Netzwerk
Netzwerk Neustrukturierung
Beitrag von 16 Kommentare

Frage von IT-Dreamer zum Thema Windows Netzwerk

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Beitrag von 15 Kommentare

Frage von Akcent zum Thema Windows 10