PDA

Vollständige Version anzeigen : per VBS Bild in ie öffnen


phobos
15.02.2017, 09:55
Hi,

wie kann ich ein Bild, oder noch besser mehrere Bilder im slidemodus, aus einem Ordner auf PC-Laufwerk in Fullscreen im ie oder Firefox anzeigen.

Das Bild sollte praktisch den ganzen Bildschirm ausfüllen.

_anton_
15.02.2017, 18:38
Hallo mario,

so?:
<fieldset><legend>Code:</legend><div ID='code'><span style="font-family: Courier New,FixedSys;">
<span style="color: #0000CC;">Set</span> ie4 = GetObject(&quot;new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}&quot;) &nbsp;
<span style="color: #0000CC;">With</span> ie4
&nbsp; .Visible = <span style="color: #0000CC;">True</span>
&nbsp; .FullScreen = <span style="color: #0000CC;">True</span>
&nbsp; .navigate (&quot;about:blank&quot;)
&nbsp; CreateObject(&quot;WScript.Shell&quot;).AppActivate &quot;Internet&quot; &nbsp;
&nbsp; .document.body.innerHTML = &quot;&lt;img id = 'bild' width = '100%'&gt;&lt;/img&gt;&quot;
&nbsp; <span style="color: #0000CC;">Set</span> fso = CreateObject(&quot;Scripting.FileSystemObject&quot;) &nbsp;
&nbsp; <span style="color: #0000CC;">Set</span> o = fso.GetFolder(&quot;F:\2008\Herbst&quot;) &nbsp; <span style="color: #009900;">'Ordner anpassen</span>
&nbsp; <span style="color: #0000CC;">For Each</span> d <span style="color: #0000CC;">In</span> o.Files &nbsp;
&nbsp; &nbsp; <span style="color: #0000CC;">Set</span> oBild = .document.getelementbyid(&quot;bild&quot;)
&nbsp; &nbsp; <span style="color: #0000CC;">If Not</span> oBild <span style="color: #0000CC;">Is</span> Nothing <span style="color: #0000CC;">Then</span> &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; oBild.src = d
&nbsp; &nbsp; &nbsp; wscript.sleep 3000
&nbsp; &nbsp; <span style="color: #0000CC;">End If</span> &nbsp;
&nbsp; <span style="color: #0000CC;">Next</span>
&nbsp; .Quit
<span style="color: #0000CC;">End With</span> &nbsp;
<span style="color: #0000CC;">Set</span> ie4 = Nothing &nbsp;
</span></div>
</fieldset>

mfg Anton

phobos
16.02.2017, 08:58
Hi Anton,

wiedermal Danke für die Hilfe:top:

Soweit funktioniert das ganze.

Hab noch ein paar Fragen zu deinem Code:

Ich möchte eine EndlosSchleife einbauen.
1.) Aber nach dem ersten Durchlauf kommt immer ein weißer Bildschirm.
Hast Du ne Idee?
2.) wie kann man einen Button einbauen mit dem man z.B: eine Do loop Schleife verlassen kann

3.) Und was bedeutet: ("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}") ?

_anton_
16.02.2017, 18:03
Hallo Mario,

zu 1und 2:
Ich möchte eine EndlosSchleife einbauen.
1.) Aber nach dem ersten Durchlauf kommt immer ein weißer Bildschirm.
zeige deinen Code, dann könnte man sagen, woran es liegt und auch vielleicht einen Button einbauen.

zu 3 gibt es <a href=http://stackoverflow.com/questions/6909226/ie-navigate2-fails-with-protected-mode-off>hier</a> eine Beschreibung.
Du kannst auch Set ie4 = CreateObject("InternetExplorer.Application") benutzen.

mfg Anton

phobos
17.02.2017, 07:17
Moin Anton,

im Endeffekt dein Code mit einer Loop-Schleife
Set ie4 = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
With ie4
.Visible = True
.FullScreen = True
.navigate ("about:blank")
CreateObject("WScript.Shell").AppActivate "Internet"
.document.body.innerHTML = "<img id = 'bild' width = '100%'></img>"
.Document.getElementsByTagName("input")
Set fso = CreateObject("Scripting.FileSystemObject")
Set o = fso.GetFolder("C:xxx") 'Ordner anpassen
do
For Each d In o.Files
Set oBild = .document.getelementbyid("bild")
If Not oBild Is Nothing Then
oBild.src = d
wscript.sleep 3000
End If
next

loop until false
.Quit
End With
Set ie4 = Nothing

Du kannst auch Set ie4 = CreateObject("InternetExplorer.Application") benutzen
Aha!;)

_anton_
17.02.2017, 19:53
Hallo Mario,

als vbs:
<fieldset><legend>Code:</legend><div ID='code'><span style="font-family: Courier New,FixedSys;">
<span style="color: #0000CC;">On Error Resume Next</span> &nbsp; &nbsp;
<span style="color: #0000CC;">Set</span> ie4 = CreateObject(&quot;internetexplorer.application&quot;) &nbsp;
<span style="color: #0000CC;">With</span> ie4
&nbsp; .Visible = <span style="color: #0000CC;">True</span>
&nbsp; .FullScreen = <span style="color: #0000CC;">True</span>
&nbsp; .navigate (&quot;about:blank&quot;)
&nbsp; CreateObject(&quot;WScript.Shell&quot;).AppActivate &quot;Internet&quot; &nbsp;
&nbsp; sHTML = &quot;&lt;center&gt;&lt;INPUT TYPE='button' ONCLICK='javascript:window.close()' VALUE='Beenden'&lt;/input&gt;&lt;br&gt;&quot;
&nbsp; sHTML = sHTML & &quot;&lt;span&gt;&lt;img id = 'bild' height = '95%'&gt;&lt;/img&gt;&lt;/span&gt;&lt;/center&gt;&quot;
&nbsp; .document.body.innerHTML = sHTML
&nbsp; <span style="color: #0000CC;">Set</span> fso = CreateObject(&quot;Scripting.FileSystemObject&quot;) &nbsp;
&nbsp; <span style="color: #0000CC;">Set</span> o = fso.GetFolder(&quot;F:\2008\Herbst&quot;) &nbsp; &nbsp; <span style="color: #009900;">'Ordner anpassen</span>
&nbsp; <span style="color: #0000CC;">Do</span>
&nbsp; &nbsp; <span style="color: #0000CC;">For Each</span> d <span style="color: #0000CC;">In</span> o.Files &nbsp;
&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">Set</span> oBild = .document.getelementbyid(&quot;bild&quot;)
&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">If</span> Err.Number &lt;&gt; 0 <span style="color: #0000CC;">Then</span> wscript.Quit &nbsp;
&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">If Not</span> oBild <span style="color: #0000CC;">Is</span> Nothing <span style="color: #0000CC;">Then</span> &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; oBild.src = d
&nbsp; &nbsp; &nbsp; &nbsp; wscript.sleep 3000
&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">End If</span> &nbsp;
&nbsp; &nbsp; <span style="color: #0000CC;">Next</span>
&nbsp; <span style="color: #0000CC;">Loop</span>
<span style="color: #0000CC;">End With</span> &nbsp;
<span style="color: #0000CC;">Set</span> ie4 = Nothing &nbsp;
</span></div>
</fieldset>
oder als HTA:
<HTML>
<HEAD>
<HTA:APPLICATION ID="Slideshow"
APPLICATIONName="Slideshow"
BORDER="none"
CAPTION="no"
SHOWINTASKBAR="yes"
INNERBORDER = "no"
MAXIMIZEBUTTON = "no"
MINIMIZEBUTTON = "no"
WINDOWSTATE="maximize"
SINGLEINSTANCE="yes"
CONTEXTMENU = "no"
SYSMENU = "no">
<script language="VBScript">
'|-----------------------------------------------------------|'
Dim bilder(), i, anzahl
'|-----------------------------------------------------------|'
Sub SubInitFenster()
Set fso = CreateObject("Scripting.FileSystemObject")
Set o = fso.GetFolder("F:\2008\Herbst")
anzahl = o.Files.Count
ReDim bilder(anzahl)
i = 1
For Each d In o.Files
bilder(i) = d
i = i + 1
Next
Set fso = Nothing
i = 0
anzeigen
End Sub
'|-----------------------------------------------------------|'
Sub anzeigen()
i = i + 1
bild.src = bilder(i)
If i = anzahl Then i = 0
Window.settimeout "anzeigen", 3000
End Sub
'|-----------------------------------------------------------|'
Sub SubQuit
Window.Close
End Sub
</script>
</HEAD>
<BODY onload="SubInitFenster" scroll="no">
<center>
<INPUT
TYPE=button
style ="cursor: hand;width:90px"
TITLE = "Slideshow beenden"
VALUE="Beenden"
ONCLICK="SubQuit"><br>
<span><img id ='bild' height = '95%'></img></span></center>
</HTML>

mfg Anton

phobos
20.02.2017, 07:36
Hi Anton,

Super, Danke! Bei beiden Funktioniert der Button.

Aber es wird immer noch ein weißer Bildschirm nach den eigentlichen Bildern eingeblendet. Als gäbe es ein weißes Bild in dem Ordner.
Bei beiden Code-Versionen.

_anton_
20.02.2017, 09:56
Hallo Mario,

kann es sein, dass im Ordner nicht nur Bilder gespeichert sind?
Weil es werden alle Dateien im Ordner als src des Images benutzt.

mfg Anton

phobos
21.02.2017, 07:45
Hi Anton,

Tatsächlich habe ich in den Ordnern noch die Thumbs.db.
Wahrscheinlich wird die als "Bild" mit angezeigt.

Hab jetzt ne Abfrage eingebaut die nur die Dateien mit ".gif" Endung anzeigt.
Sollte funktionieren.

phobos
24.02.2017, 16:08
Hi Anton,

Wenn mehrere Bilder vorhanden sind, und eines sich aktualisiert, wird das aktualierte Bild neu geladen und angezeigt. - alles fein.

Wenn aber nur ein Bild vorhanden ist, und dieses sich aber nur aktualisiert, wird es nicht neu geladen, sondern die alte version des Bildes bleibt sichtbar.

Wie muss mann das in der VBS-Version deines codes anpassen?

_anton_
25.02.2017, 10:37
Hallo Mario,

so?:
...
wscript.sleep 3000
oBild.src = ""mfg Anton

phobos
28.02.2017, 08:54
Hi anton,

ich musste die Zeit erhöhen da das Bild sonst ständig flackert.
Aber soweit funktionierts!

Danke Dir!:top: