schuleamauetal
Goto Top

Ich möchte ein IE Fenster an einer bestimmten Position des Bildschirms öffnen

Ich möchte 2 IE Fenster an je einer bestimmten Position des Bildschirms mit einer definierten Größe öffnen.

Ich muss 2 HTML Dateien gleichzeitig auf einem Bilschirm nebeneinander darstellen. Leider schaffe ich es nur die beiden Fenster übereinander aufzurufen. Ich muss dann mit Hand die Fenster (evtl. die Größe anpassen) an die richtige Position schieben. Dieses möchte ich durch ein Aufruf in der Autostart mit entsprechenden Angaben oder durch ein Script Automatisieren.

währe schön wenn man "ie.exe + xxx.html + Fensterposition + Fenstergröße" aufrufen könnte. oder anders.

Ich verwende Win XP-Proff. und den Internetexplorer.

Danke für Eure Hilfe im voraus.

Gruß
Reinhard

Content-Key: 164222

Url: https://administrator.de/contentid/164222

Printed on: April 26, 2024 at 04:04 o'clock

Member: potshock
potshock Apr 08, 2011 at 10:53:44 (UTC)
Goto Top
Hi Reinhard,

mhhh... ich fürchte das kannst du nicht automatisieren. Ich habe schon einmal selbst nach einer solchen Lösung gesucht und bin nicht fündig geworden, lasse mich aber natürlich gerne eines besseren belehren face-wink!

Aber vielleicht hilft dir ja folgende Vorgehensweise, erspart auf jeden Fall diese Fummelei, mit dem Geschiebe und der Größe:
Öffne deine beiden Seiten und dann mit der rechten Maustaste auf einen freien Bereich in der Taskleiste klicken -> Nebeneinander anklicken -> Fertig.
Willst du anschließend deine Fenster wieder in Ursprungsgröße und Anordnung wiederherstellen, klicke wieder mit der rechten Maustaste auf einen freien Bereich in der Taskleiste -> Nebeneinander rückgängig machen anklicken -> Fertig.

Potshock
Member: Skyemugen
Skyemugen Apr 08, 2011 at 12:03:39 (UTC)
Goto Top
Aloha,

abgesehen davon, dass dein Beitrag im falschen Bereich ist ...

könnte ich dir eventuell helfen.

Voraussetzungen:
  • html-Dateien werden standardmäßig mit dem IE aufgerufen, dann wäre folgendes möglich, um 2x den IE nebeneinander zu bekommen (es dürfen keine weiteren Programme aktiv offen sein - minimiert ja)
  • Ausführung der VBSkripte ist nicht deaktiviert
  • Den (Quell)code kopieren und als .vbs speichern
Option Explicit

const programm1 = "C:\Ordner\Irgendwas.html"  
const programm2 = "C:\Ordner\Irgendwas anderes.html"  
' um nur den IE 2x aufzurufen - wenn z.B. die html-Dateien nicht standardmäßig damit aufgerufen werden  
' muss man einfach die "C:\Programme\Internet Explorer\IEXPLORE.exe" statt der html einsetzen  

Dim shell

Set shell = WScript.Createobject("shell.Application")  

shell.open programm1
shell.open programm2

' Pause  
WScript.sleep (3000)

' geöffnete Fenster anordnen  
shell.Tilevertically

WScript.Quit

Damit werde ich zwar nur annähernd deinen Forderungen gerecht (denn es kann keine Position und Größe bestimmt werden) aber es ist ein Anfang ...

greetz André
Mitglied: 76109
76109 Apr 08, 2011 at 13:57:09 (UTC)
Goto Top
Hallo zusammen!

Zitat von @Skyemugen:
Damit werde ich zwar nur annähernd deinen Forderungen gerecht (denn es kann keine Position und Größe bestimmt werden) aber es ist ein Anfang ...
Na dann in etwa so (*.vbs):
Option Explicit

Const TaskHeight = 30                           'Höhe der Taskleiste anpassen  
Const READYSTATE_COMPLETE = 4                   'IE-Konstante Ready  

Const HtmlLeftPath = "E:\Test\Test1.htm"        'Html-Dateipfad Fenster Links  
Const HtmlRightPath = "E:\Test\Test2.htm"       'Html-Dateipfad Fenster Rechts  


Dim objIE, intWidth, intHeight, strTitelLeft, strTitelRight
 
Set objIE = CreateObject("InternetExplorer.Application")  

With objIE
    .MenuBar = True                     'Menu-Bar anzeigen True/False  
    .Toolbar = True                     'Tool-Bar anzeigen True/False  
    .StatusBar = True                   'Status-Bar anzeigen True/False  
    .FullScreen = True                  'FullScreen = True, dann .Width = Max-Width und .Height = Max-Height  
     intWidth = .Width                  'Max-Width in Variable sichern  
     intHeight = .Height                'Max-Height in Variable sichern  
    .FullScreen = False                 'FullScreen = False  
    .Top = 0                            'Position Top  
    .Left = 0                           'Position Left  
    .Height = intHeight - TaskHeight    'Höhe - Taskhöhe  
    .Width = intWidth / 2               'Breite / 2  
    .navigate HtmlLeftPath              'Html-Datei  
    .Visible = True                     'Fenster sichtbar  
     Do: Loop Until .ReadyState = READYSTATE_COMPLETE   'Warten bis Datei geladen ist  
     strTitelLeft = .Document.Title     'Html-Titel in Variable sichern  
End With

Set objIE = CreateObject("InternetExplorer.Application")  

With objIE
    .MenuBar = True
    .Toolbar = True
    .StatusBar = True
    .Top = 0
    .Left = intWidth / 2
    .Height = intHeight - TaskHeight
    .Width = intWidth / 2
    .navigate HtmlRightPath
    .Visible = True
     Do: Loop Until .ReadyState = READYSTATE_COMPLETE
     strTitelRight = .Document.Title
End With

Set objIE = Nothing

'Für den Fall aktivieren, falls die Fenster nicht angezeigt werden  
With CreateObject("Wscript.Shell")  
    .AppActivate strTitelLeft
    .AppActivate strTitelRight
End With
Wobei die Positionen/Größen beliebig angepasst werden können (aktuell Nebenaneinander in voller Größe)

Gruß Dieter
Member: SchuleAmAuetal
SchuleAmAuetal Apr 09, 2011 at 18:23:30 (UTC)
Goto Top
Sauber, danke für die schnelle Hilfe. Hatte schon überal im Bekantenkreis rumgefragt, aber keiner hatte eine Lösung. Hast Du eine Buchempfehlung für mich? in dem ich Nachschlagen kann?

Sag mal, eine kleine Sache währe noch zu verbessern, gibt es die möglichkeit die Seiten in den IE Fenstern automatisch langsam hoch und dann wieder runter zu scrollen?

Es handelt sich hierbei um die Anzeige in meiner Schule die den Vertretunsplan anzeigt. In der linken hälfte des Bildschirms den Vertretungsplan von heute auf der rechten den vom nächsten Schultag.
Das ist dank Dir nun schon mal automatisch geschafft.

Wenn Du jetzt noch einen Tip zum autoscrollen hoch und runter hast währe es perfekt!!!

DANKE für Deine Mühe
Gruß
Reinhard
Mitglied: 76109
76109 Apr 11, 2011 at 23:54:56 (UTC)
Goto Top
Hallo SchuleAmAuetal!

Versuchs mal damit:
Option Explicit

Const TaskHeight = 30                   'Höhe der Taskleiste anpassen  
Const READYSTATE_COMPLETE = 4           'IE-Konstante Ready  

Const HtmlLeftPath = "E:\Test1.htm"     'Html-Dateipfad Fenster Links  
Const HtmlRightPath = "E:\Test2.htm"    'Html-Dateipfad Fenster Links  


Dim objIE, objDocE_L, objDocE_R, intWidth, intHeight
Dim strTitle_L, strTitle_R, intScrollMax_L, intScrollMax_R, intScrollMax, i
 
Set objIE = CreateObject("InternetExplorer.Application")  

With objIE
    .AddressBar = False                 'Address-Bar anzeigen True/False  
    .MenuBar = False                    'Menu-Bar anzeigen True/False  
    .Toolbar = False                    'Tool-Bar anzeigen True/False  
    .StatusBar = False                  'Status-Bar anzeigen True/False  
    .FullScreen = True                  'FullScreen = True, dann .Width = Max-Width und .Height = Max-Height  
     intWidth = .Width                  'Max-Width in Variable sichern  
     intHeight = .Height                'Max-Height in Variable sichern  
    .FullScreen = False                 'FullScreen = False  
    .Top = 0                            'Position Top  
    .Left = 0                           'Position Left  
    .Height = intHeight - TaskHeight    'Höhe - Taskhöhe  
    .Width = intWidth / 2               'Breite / 2  
    .navigate HtmlLeftPath              'Html-Datei  
    .Visible = True                     'Fenster sichtbar  
     Do: Loop Until .ReadyState = READYSTATE_COMPLETE   'Warten bis Datei geladen ist  
     strTitle_L = .Document.Title                       'Html-Titel in Variable sichern  
     Set objDocE_L = .Document.DocumentElement          'Objekt Scroll-Daten  
     intScrollMax_L = objDocE_L.ScrollHeight            'Scroll-Max in Variable sichern  
     End With

Set objIE = CreateObject("InternetExplorer.Application")  

With objIE
    .AddressBar = False
    .MenuBar = False
    .Toolbar = False
    .StatusBar = False
    .Top = 0
    .Left = intWidth / 2
    .Height = intHeight - TaskHeight
    .Width = intWidth / 2
    .navigate HtmlRightPath
    .Visible = True
     Do: Loop Until .ReadyState = READYSTATE_COMPLETE
     strTitle_R = .Document.Title
     Set objDocE_R = .Document.DocumentElement
     intScrollMax_R = objDocE_R.ScrollHeight
End With

'Für den Fall aktivieren, falls die Fenster nicht angezeigt werden  
With CreateObject("Wscript.Shell")  
    .AppActivate strTitle_L
    .AppActivate strTitle_R
End With

'Scroll-Max ermitteln  
If intScrollMax_L > intScrollMax_R Then intScrollMax = intScrollMax_L Else intScrollMax = intScrollMax_R

On Error Resume Next
Do
  'Der (-)Wert 850 muss entsprechend angepasst werden. Dert Wert ist abhängig von der Größe des Scroll-Balkens  
  'Wenn das Ende nicht erreicht wird, dann einen kleineren (-)Wert wählen  
  'Wenn der Wechsel vom Ende wieder zum Anfang verzögert ist, dann einen größeren (-)Wert wählen.  
  For i = 0 To intScrollMax - 850                           'Scroll-Bereich  
      If Err Then Exit Do                                   'Skript beenden, wenn IE-Fenster geschlossen wird  
      WScript.Sleep 2                                       'Scroll-Pause in Milisekunden  
      If i < intScrollMax_L Then objDocE_L.ScrollTop = i    'Scrollen linkes Fenster  
      If i < intScrollMax_R Then objDocE_R.ScrollTop = i    'Scrollen rechtes Fenster  
  Next
Loop
In der letzten Forschleife musst Du ein wenig mit Werten experementierenface-wink

Gruß Dieter

PS.
Wenn das Scrollen so nicht funktioniert, dann die Codezeile 32 und 51 ersetzen:
Codezeile 32 durch:
Set objDocE_L = .Document.ActiveElement 
Codezeile 51 durch:
Set objDocE_R = .Document.ActiveElement