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, 3629 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

VB for Applications
gelöst VBS Script kann Prgramm nicht starten (15)

Frage von C.Boerner zum Thema VB for Applications ...

Windows Server
Aufgabenplanung bringt bei VBS Script immer 0x41301 (14)

Frage von 116480 zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...