Progress / SplashImage

Erstellt oder aktualisiert ein Fenster, das einen Fortschrittsbalken oder ein Bild enthält.

SplashImage, Off
SplashImage , Bilddatei, Optionen, Nebentext, Haupttext, Fenstertitel, Schriftname

Progress, Off
Progress, ProgressParam1 , Nebentext, Haupttext, Fenstertitel, Schriftname

Parameter

Bilddatei

Ist das Wort OFF enthalten, wird das Fenster zerstört. Ist das Wort SHOW enthalten, wird das Fenster wieder sichtbar gemacht, falls es zuvor versteckt wurde.

Ansonsten kann der Dateiname eines BMP-, GIF- oder JPG-Bildes angegeben werden, das angezeigt werden soll (um andere Dateiformate wie PNG, TIF und ICO anzuzeigen, ist es ratsam, den Gui-Befehl zu nutzen, um ein Fenster mit einem Picture-Steuerelement zu erstellen).

[AHK_L 59+]: Jedes Bildformat, das von Gui unterstützt wird, kann mit SplashImage verwendet werden.

Wenn kein absoluter Pfad angegeben ist, wird Bilddatei im A_WorkingDir-Verzeichnis vermutet. Wenn Bilddatei und Optionen leer sind und das Fenster bereits existiert, bleibt das Bild zwar unverändert, aber seine Texte werden aktualisiert, falls ein neuer Nebentext, Haupttext und/oder Fenstertitel angegeben wurde.

Wenn Bilddatei leer ist oder das Laden des Bildes fehlschlägt, werden neu erstellte Fenster ohne Bild dargestellt.

[v1.1.23+]: Anstelle eines Dateinamens kann auch ein Bitmap- oder Symbol-Handle verwendet werden. Zum Beispiel HBITMAP:%handle%.

ProgressParam1

Bei einem bereits vorhandenen Progress-Fenster: Wenn Param1 das Wort OFF ist, wird das Fenster zerstört. Wenn Param1 das Wort SHOW ist, wird das Fenster wieder sichtbar gemacht, falls es zuvor versteckt wurde.

Wenn Param1 eine reine Zahl ist, wird die Position des Balkens auf diesen Wert gesetzt. Wenn Param1 leer ist, bleibt die Position des Balkens zwar unverändert, aber seine Texte werden aktualisiert, falls ein neuer Nebentext, Haupttext und/oder Fenstertitel angegeben wurde. Wenn das Fenster in beiden Modi noch nicht existiert, wird es mit den Standardoptionen erstellt.

Bei einem noch nicht vorhandenen Progress-Fenster: Ein neues Progress-Fenster wird erstellt (ersetzt das alte Fenster). Param1 kann genutzt werden, um die Optionen aus der unteren Liste zu setzen.

Optionen

Eine Zeichenkette mit beliebig vielen Optionen aus der unteren Liste.

Nebentext

Ein Text, der unterhalb des Bildes oder Balkens angezeigt werden soll. Standardmäßig werden lange Zeilen umbrochen. Mit einem Zeilenumbruchszeichen (`n) kann der Zeilenumbruch erzwungen werden. Um den Text eines vorhandenen Fensters leer zu machen, fügt man %A_Space% ein. Um die Höhe des Fensters automatisch zu berechnen, können leere Zeilen ähnlich wie bei Haupttext reserviert werden.

Haupttext

Ein Text, der oberhalb des Bildes oder Balkens angezeigt werden soll (die Schrift wird halbfett dargestellt). Standardmäßig werden lange Zeilen umbrochen. Mit einem Zeilenumbruchszeichen (`n) kann der Zeilenumbruch erzwungen werden.

Fehlt dieser Parameter oder ist er leer, wird im Fenster kein Platz für Haupttext reserviert. Fügen Sie %A_Space% ein, um Platz für eine einzelne Zeile zu reservieren, die Sie später hinzufügen wollen, oder um den Text eines vorhandenen Fensters zu leeren. Um Platz für mehr als eine Zeile zu reservieren, fügt man ein oder mehrere Zeilenumbruchszeichen (`n) an.

Nachdem die Höhe des Kontrollbereichs von Haupttext gesetzt wurde, kann sie nicht mehr geändert werden, ohne das Fenster neu zu erstellen.

Fenstertitel

Der Titel des Fensters. Wenn dieser Parameter fehlt und das Fenster neu erstellt wurde, ist der Titel standardmäßig der Name des Skripts (ohne Pfad). Wenn die B-Option (randlos) angegeben wurde, wird das Fenster ohne Titelleiste angezeigt, aber Befehle wie WinMove können weiterhin den Fenstertitel nutzen, um mit dem Fenster zu agieren.

Schriftname

Der Name der Schrift, die für Haupttext und Nebentext genutzt werden soll. In der Schriftentabelle sind Schriften von verschiedenen Windows-Versionen aufgelistet. Wenn dieser Parameter leer ist, fehlt oder eine ungültige Schrift enthält, wird standardmäßig die Standard-GUI-Schrift des Betriebssystems verwendet.

In den nachfolgenden Abschnitten wird erklärt, wie die Größe, Breite und Farbe der Schrift geändert werden kann.

Größe, Position und Verhalten des Fensters

A: Entfernt die Immer-Im-Vordergrund-Eigenschaft des Fensters.

B: Randlos: Zeigt das Fenster ohne Rahmen und Titelleiste an. Um die Titelleiste des Fensters zu entfernen und den Rahmen dünner darzustellen, nutzt man B1. Um die Titelleiste des Fensters zu entfernen und den Rahmen im Dialogfenster-Stil darzustellen, nutzt man B2.

M: Das Fenster kann vom Benutzer verschoben werden (sofern es einen Rahmen hat). Damit das Fenster zusätzlich größer/kleiner gemacht werden kann (durch Ziehen der Rahmen), fügt man M1 ein. Um die Titelleiste des Fensters mit einem Systemmenü und den Schaltflächen Minimieren/Maximieren/Schließen auszustatten, fügt man M2 ein.

Pn: Nur für Progress-Fenster: Geben Sie für n die neue Startposition des Fortschrittsbalkens an (ist diese Option nicht vorhanden, gilt standardmäßig 0 oder der niedrigste zulässige Bereichswert). Die Position des Balkens kann später wie folgt geändert werden: Progress, 50.

Rx-y: Nur für Progress-Fenster: Geben Sie für x-y den neuen numerischen Bereich des Fortschrittsbalkens an (ist die R-Option nicht vorhanden, gilt standardmäßig 0-100). Zum Beispiel würde R0-1000 eine Zahl zwischen 0 und 1000 erlauben, R-50-50 eine Zahl zwischen -50 und 50 und R-10--5 eine Zahl zwischen -10 und -5.

T: Das Fenster bekommt eine eigene Taskleistenschaltfläche. Normalerweise hat das Fenster keine eigene Taskleistenschaltfläche, weil es standardmäßig dem Hauptfenster des Skripts untergeordnet ist. Diese Option verhindert auch, dass ein Splash- oder Progress-Fenster einem GUI-Fenster via Gui +OwnDialogs untergeordnet werden kann.

Hn: Geben Sie für n die neue Höhe des Clientbereichs an (das ist der Fensterbereich ohne Titelleiste und Rahmen). Fehlt diese Option, wird die Höhe automatisch anhand der Höhe des Bildes/Balkens und des Textes im Fenster berechnet.

Wn: Geben Sie für n die neue Breite des Clientbereichs an. Fehlt diese Option, wird die Breite des SplashImage-Fensters automatisch berechnet (sofern ein Bild vorhanden ist). Ansonsten gilt standardmäßig 300.

Xn: Geben Sie für n die neue X-Koordinate der oberen linken Ecke des Fensters an. Fehlt diese Option, wird das Fenster horizontal auf dem Bildschirm zentriert.

Yn: Geben Sie für n die neue Y-Koordinate der oberen linken Ecke des Fensters an. Fehlt diese Option, wird das Fenster vertikal auf dem Bildschirm zentriert.

Hide: Das Fenster wird zu Beginn versteckt. Mit Progress Show oder SplashImage Show kann das Fenster später wieder sichtbar gemacht werden.

Layout der Elemente im Fenster

Cxy: Zentriert: Fehlt diese Option, werden sowohl Nebentext als auch Haupttext im Fenster zentriert. Geben Sie für x eine 0 an, um Nebentext linksbündig zu machen. Geben Sie eine 1 an, damit der Text zentriert bleibt. Das Gleiche gilt für y, aber auf Haupttext bezogen (y kann weggelassen werden). Zum Beispiel: c10.

ZHn: Höhe des Elements: Für Progress-Fenster: Geben Sie für n die neue Dicke des Fortschrittsbalkens an (standardmäßig 20). Für SplashImage-Fenster: Geben Sie für n die neue Höhe an, auf die das Bild skaliert werden soll. Geben Sie -1 an, um die Höhe proportional zur Breite zu machen, die in ZWn angegeben ist (also "Seitenverhältnis beibehalten"). Fehlt diese Option, wird die tatsächliche Höhe des Bildes verwendet. In beiden Fällen kann eine 0 angegeben werden, um das Element vollständig zu entfernen, so dass das Fenster nur zum Anzeigen von Text in benutzerdefinierten Schriften, Größen und Farben genutzt werden kann.

ZWn: Breite des Elements (gilt nur für SplashImage-Fenster): Geben Sie für n die neue Breite an, auf die das Bild skaliert werden soll. Geben Sie -1 an, um die Breite proportional zur Höhe zu machen, die in ZHn angegeben ist (also "Seitenverhältnis beibehalten"). Fehlt diese Option, wird die tatsächliche Breite des Bildes verwendet.

ZXn: Geben Sie für n an, wie viel Platz auf der linken/rechten Seite des Fensters freigelassen werden soll. Standardmäßig gilt 10. Bei SplashImage-Fenstern ohne Text gilt standardmäßig 0.

ZYn: Geben Sie für n an, wie viel vertikaler Platz auf der oberen/unteren Seite des Fensters und zwischen den einzelnen Steuerelementen freigelassen werden soll. Standardmäßig gilt 5. Bei SplashImage-Fenstern ohne Text gilt standardmäßig 0.

Hinweis: Das folgende Beispiel zeigt, wie man den Gui-Befehl nutzen kann, um einen vertikalen Fortschrittsbalken zu erstellen oder um mehr Flexibilität beim Erstellen des Layouts zu haben:

Gui, Add, Progress, Vertical vMeinProgress
Gui, Show
return
; ... später ...
GuiControl,, MeinProgress, +10  ; Schiebt den Balken 10 Prozent nach oben. Lassen Sie das Pluszeichen weg, um eine absolute Position zu setzen.

Größe und Dicke der Schrift

FMn: Geben Sie für n die neue Schriftgröße für Haupttext an. Standardmäßig gilt 0, was bei den meisten Betriebssystemen eine 10 ist. Die ausgewählte Schriftgröße via "Systemsteuerung > Anzeige" hat keinen Einfluss auf diesen Standardwert.

FSn: Geben Sie für n die neue Schriftgröße für Nebentext an. Standardmäßig gilt 0, was bei den meisten Betriebssystemen eine 8 ist.

WMn: Geben Sie für n die neue Schriftdicke für Haupttext an. Die Dicke sollte zwischen 1 und 1000 liegen. Fehlt diese Option, wird standardmäßig 600 (halbfett) verwendet.

WSn: Geben Sie für n die neue Schriftdicke für Nebentext an. Die Dicke sollte zwischen 1 und 1000 liegen (700 gilt traditionell als "fett"). Fehlt diese Option, wird 400 (normal) verwendet.

Farben der Fensterelemente

Die Farbe kann ein Name aus der unteren Liste oder ein 6-stelliger hexadezimaler RGB-Wert sein. cw1A00FF beispielsweise würde bewirken, dass die Hintergrundfarbe des Fensters auf Rotanteil 1A, Grünanteil 00 und Blauanteil FF gesetzt wird.

Fügen Sie nach jeder Farboption ein Leerzeichen hinzu, wenn Sie mehr als eine Option angeben müssen. Zum Beispiel: cbRed ct900000 cwBlue.

CBn: Farbe des Fortschrittsbalkens: Geben Sie für n einen der 16 primären HTML-Farben oder einen 6-stelligen RGB-Farbwert an. Fehlt diese Option, wird die Standard-Balkenfarbe des Systems verwendet. Geben Sie das Wort Default an, um die Standard-Balkenfarbe des Systems wiederherzustellen.

CTn: Farbe des Textes: Geben Sie für n einen der 16 primären HTML-Farben oder einen 6-stelligen RGB-Farbwert an. Fehlt diese Option, wird die Standard-Textfarbe des Systems verwendet (normalerweise schwarz). Geben Sie das Wort Default an, um die Standard-Textfarbe des Systems wiederherzustellen.

CWn: Farbe des Fensters (Hintergrund): Geben Sie für n einen der 16 primären HTML-Farben oder einen 6-stelligen RGB-Farbwert an. Fehlt diese Option, wird die Standard-Schaltflächenfarbe des Systems verwendet (geben Sie das Wort Default an, um diese Farbe bei Bedarf wiederherzustellen). Um den Hintergrund transparent zu machen, verwendet man WinSet TransColor.

Farbname RGB-Wert
Black (schwarz) 000000
Silver (silbergrau) C0C0C0
Gray (grau) 808080
White (weiß) FFFFFF
Maroon (dunkelrot) 800000
Red (rot) FF0000
Purple (lila) 800080
Fuchsia (pink) FF00FF
Green (grün) 008000
Lime (gelbgrün) 00FF00
Olive (olivgrün) 808000
Yellow (gelb) FFFF00
Navy (dunkelblau) 000080
Blue (blau) 0000FF
Teal (blaugrün) 008080
Aqua (hellblau) 00FFFF

Bemerkungen

Wenn der erste Parameter das Wort OFF ist, wird das Fenster zerstört.

Jedes Skript kann bis zu 10 Progress-Fenster und 10 SplashImage-Fenster anzeigen. Jedes neu erstellte Fenster bekommt eine Nummer zugewiesen. Wenn keine Nummer angegeben ist, gilt standardmäßig 1 (das erste Fenster). Ansonsten können Sie vor dem ersten Parameter die Nummer des Fensters angeben, gefolgt von einem Doppelpunkt. Progress, 2:Off beispielsweise deaktiviert das zweite Progress-Fenster, Progress, 2:75 setzt den Balken auf 75%, Progress, 2: ändert ein oder mehrere Textfelder und Progress, 2:B erstellt ein neues randloses Progress-Fenster. SplashImage, 2:Off hingegen deaktiviert das zweite SplashImage-Fenster, SplashImage, 2: ändert ein oder mehrere Textfelder und SplashImage, 2:C:\Meine Bilder\Bild1.jpg erstellt ein neues zweites SplashImage-Fenster.

Wenn ein Fenster die Größe des Desktops überschreitet, wird es automatisch verkleinert.

Um einen reinen Fortschrittsbalken anzuzeigen, lässt man Nebentext und Haupttext weg und fügt folgende Optionen ein: b zx0 zy0. Um ein reines Bild anzuzeigen, muss dasselbe gemacht werden, aber nur die B-Option angegeben werden.

Wenn in Windows XP oder höher ein nicht-klassisches Design aktiv ist, enthält der Innenbereich des Fortschrittsbalkens eventuell mehrere Segmente statt einen durchgehenden Balken. Um das zu verhindern, gibt man explizit eine Balkenfarbe an, wie z. B. cbBlue.

Beachten Sie, dass die Nummern neben den Optionsbuchstaben in der Regel dezimal (nicht hexadezimal) sein müssen, es sei denn, es wurde darauf hingewiesen.

Befehle wie WinSet und WinMove können verwendet werden, um die Eigenschaften eines vorhandenen Fensters zu ändern, ohne es neu erstellen zu müssen.

Ein Progress- oder SplashImage-Fenster kann einem GUI-Fenster via Gui +OwnDialogs untergeordnet werden. Dies hat zur Folge, dass das SplashImage- oder Progress-Fenster immer über dem Hauptfenster angezeigt wird. Ein untergeordnetes Progress- oder SplashImage-Fenster wird automatisch zerstört, sobald das Hauptfenster zerstört wird.

Siehe auch

GUI, SplashTextOn, ToolTip

Beispiele

Progress, b w200, Mein Untertext, Mein Haupttext, Mein Titel
Progress, 50 ; Setzt die Balkenposition auf 50%.
Sleep, 4000
Progress, Off

; Erstellt ein Fenster, nur um 18-Punkt-Courier-New-Text anzuzeigen:
Progress, m2 b fs18 zh0, Ein beliebiger Text.`nDie 2. Zeile., , , Courier New

; Erstellt ein einfaches SplashImage-Fenster:
SplashImage, C:\Meine Bilder\Company Logo.gif

; Erstellt ein randloses SplashImage-Fenster mit etwas Text unterhalb des Bildes:
SplashImage, C:\Meine Bilder\Company Logo.gif, b fs18, Das ist unser Firmenlogo.
Sleep, 4000
SplashImage, Off

; Dieses Beispiel zeigt, wie ein SplashImage-Fenster mit einem Progress-Fenster überdeckt werden kann,
; um einen professionell aussehenden Installer zu erstellen:
IfExist, C:\WINDOWS\system32\ntimage.gif, SplashImage, %A_WinDir%\system32\ntimage.gif, A,,, Installation
Loop, %A_WinDir%\system32\*.*
{
    Progress, %A_Index%, %A_LoopFileName%, Installiere ..., Installationsvorgang
    Sleep, 50
    if A_Index = 100
        break
}
; Auf der GUI-Seite ganz unten finden Sie ein ähnliches Beispiel. Der Vorteil von diesem ist,
; dass es nur ein Fenster nutzt und dass Sie mehr Kontrolle über das Layout des Fensters haben.