Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4288 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
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

Batch & Shell
gelöst Hilfe Bei einem vbs Script (19)

Frage von Hattori-Hanzo zum Thema Batch & Shell ...

Batch & Shell
gelöst Bash Script stoppt nach start (4)

Frage von flooo89 zum Thema Batch & Shell ...

Batch & Shell
Cpl Dateien per Batch oder VBS öffnen (1)

Frage von Angelo131095 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Web Development
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Web Development ...

Windows Server
solved Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...