SysGet

Ermittelt Bildschirmauflösungen, Multi-Bildschirm-Informationen, Dimensionen von Systemobjekten und andere Systemeigenschaften.

SysGet, AusgabeVar, Unterbefehl , Wert

Der AusgabeVar-Parameter ist Name der Variable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl und Wert sind voneinander abhängig und können wie folgt genutzt werden.

Unterbefehle

Geben Sie für Unterbefehl Folgendes an:

MonitorCount

Ermittelt die Gesamtanzahl der Bildschirme.

SysGet, AusgabeVar, MonitorCount

Im Gegensatz zu SM_CMONITORS von der unteren Tabelle erfasst dieser Unterbefehl alle Bildschirme, selbst solche, die nicht zum Desktop gehören.

MonitorPrimary

Ermittelt die Nummer des primären Bildschirms.

SysGet, AusgabeVar, MonitorPrimary

In einem System mit nur einem einzigen Bildschirm wird das immer 1 sein.

Monitor

Ermittelt die Abgrenzungskoordinaten des Bildschirms Nummer N.

SysGet, AusgabeVar, Monitor , N

Lässt man N weg, wird der primäre Bildschirm verwendet. Die Information wird in vier Variablen aufgeteilt, deren Namen alle mit AusgabeVar beginnen. Falls N zu hoch ist oder die Informationen aufgrund eines Problems nicht abgerufen werden können, werden alle Variablen leer gemacht. Zum Beispiel:

SysGet, Mon2, Monitor, 2
MsgBox, Links: %Mon2Left% -- Oben: %Mon2Top% -- Rechts: %Mon2Right% -- Unten: %Mon2Bottom%.

Um innerhalb einer Funktion einen Satz von Variablen global statt lokal zu machen, deklarieren Sie Mon2 als globale Variable, bevor Sie diesen Befehl verwenden (das Gegenteil davon gilt für Assume-Global-Funktionen). Oft ist es auch notwendig, jede Variable in diesem Satz einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt.

MonitorWorkArea

Ermittelt die Abgrenzungskoordinaten des Arbeitsbereichs des Bildschirms Nummer N.

SysGet, AusgabeVar, MonitorWorkArea , N

Das Gleiche wie der Monitor-Unterbefehl oben, außer dass der Bereich ohne die Taskleiste und andere registrierte Desktop-Toolbars gemeint ist.

MonitorName

Ermittelt den im Betriebssystem angezeigten Namen des Bildschirms Nummer N.

SysGet, AusgabeVar, MonitorName , N

Lässt man N weg, wird der primäre Bildschirm verwendet.

(Numerisch)

Geben Sie für Unterbefehl eine Nummer aus den unteren Tabellen an, um den entsprechenden Wert abzurufen.

SysGet, AusgabeVar, N

Das folgende Beispiel würde die Anzahl der Maustasten in eine Variable namens "AnzahlMaustasten" speichern: SysGet, AnzahlMaustasten, 43.

Häufig verwendet

Nummer Beschreibung
80 SM_CMONITORS: Anzahl der anzeigefähigen Bildschirme auf dem Desktop (also keine "nicht-anzeigefähige Pseudo-Bildschirme").
43 SM_CMOUSEBUTTONS: Anzahl der Tasten auf der Maus (0, wenn keine Maus angeschlossen ist).
16, 17 SM_CXFULLSCREEN, SM_CYFULLSCREEN: Breite und Höhe des Clientbereichs eines Vollbildfensters auf dem primären Bildschirm (in Pixel).
61, 62 SM_CXMAXIMIZED, SM_CYMAXIMIZED: Breite und Höhe eines maximierten nicht-untergeordneten Fensters auf dem primären Bildschirm (in Pixel).
59, 60 SM_CXMAXTRACK, SM_CYMAXTRACK: Maximale Breite und Höhe eines Fensters mit einem Titel und Rahmen zum Ändern der Fenstergröße (in Pixel). Diese Maße beziehen sich auf den ganzen Desktop. Der Benutzer kann den Fensterrahmen nicht auf eine Größe ziehen, die diese Abmessungen überschreiten würden.
28, 29 SM_CXMIN, SM_CYMIN: Minimale Breite und Höhe des Fensters (in Pixel).
57, 58 SM_CXMINIMIZED, SM_CYMINIMIZED: Breite und Höhe eines minimierten Fensters (in Pixel).
34, 35 SM_CXMINTRACK, SM_CYMINTRACK: Minimale Breite und Höhe eines Fensters (in Pixel). Der Benutzer kann den Fensterrahmen nicht auf eine Größe ziehen, die diese Abmessungen unterschreiten würden. Durch Verarbeiten der WM_GETMINMAXINFO-Meldung kann ein Fenster diese Werte überschreiben.
0, 1 SM_CXSCREEN, SM_CYSCREEN: Breite und Höhe des primären Bildschirms (in Pixel). Diese sind identisch mit den internen Variablen A_ScreenWidth und A_ScreenHeight.
78, 79 SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN: Breite und Höhe des virtuellen Bildschirms (in Pixel). Der virtuelle Bildschirm ist ein Rechteck, der alle Bildschirme umschließt. SM_XVIRTUALSCREEN und SM_YVIRTUALSCREEN sind die Koordinaten der oberen linken Ecke des virtuellen Bildschirms.
19 SM_MOUSEPRESENT: Ungleich 0, wenn eine Maus angeschlossen ist, ansonsten 0.
75 SM_MOUSEWHEELPRESENT: Ungleich 0, wenn eine Maus mit Mausrad angeschlossen ist, ansonsten 0.
63 SM_NETWORK: Ist ein Netzwerk vorhanden, wird das niederwertigste Bit gesetzt, andernfalls wird es gelöscht. Die anderen Bits werden für die zukünftige Verwendung reserviert.
8193 SM_REMOTECONTROL: Diese Systemmetrik wird in einer Terminaldienstumgebung verwendet. Ungleich 0, wenn die aktuelle Sitzung remote gesteuert wird, ansonsten 0.
4096 SM_REMOTESESSION: Diese Systemmetrik wird in einer Terminaldienstumgebung verwendet. Wenn der aufrufende Prozess einer Terminaldienste-Clientsitzung zugeordnet ist, ist der Rückgabewert ungleich 0. Wenn der aufrufende Prozess einer Terminaldienst-Konsolensitzung zugeordnet ist, ist der Rückgabewert 0. Die Konsolensitzung ist nicht unbedingt die physische Konsole.
70 SM_SHOWSOUNDS: Ungleich 0, wenn die Anwendung Informationen für den Benutzer visuell anzeigen soll, die sonst nur als Audiodaten ausgegeben werden, ansonsten 0.
8192 SM_SHUTTINGDOWN: Ungleich 0, wenn die aktuelle Sitzung heruntergefahren wird, ansonsten 0. Windows 2000: Der abgerufene Wert ist immer 0.
23 SM_SWAPBUTTON: Ungleich 0, wenn die Funktionen der linken und rechten Maustaste getauscht wurden, ansonsten 0.
76, 77 SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN: Koordinaten für die obere linke Ecke des virtuellen Bildschirms. Der virtuelle Bildschirm ist ein Rechteck, der alle Bildschirme umschließt. SM_CXVIRTUALSCREEN und SM_CYVIRTUALSCREEN (weiter oben zu finden) sind die Breite und Höhe des virtuellen Bildschirms.

Selten verwendet

Nummer Beschreibung
56 SM_ARRANGE: Flags geben an, wie das System minimierte Fenster anordnen soll. Siehe MSDN für mehr Informationen.
67 SM_CLEANBOOT: Gibt an, wie das System gestartet wurde:
0 Normaler Start
1 Abgesicherter Start
2 Abgesicherter Start mit Netzwerk
5, 6 SM_CXBORDER, SM_CYBORDER: Breite und Höhe eines Fensterrahmens (in Pixel). Das ist identisch mit dem SM_CXEDGE-Wert für Fenster im 3D-Look.
13, 14 SM_CXCURSOR, SM_CYCURSOR: Breite und Höhe eines Cursors (in Pixel). Das System kann keine Cursor in anderen Größen erstellen.
36, 37 SM_CXDOUBLECLK, SM_CYDOUBLECLK: Breite und Höhe des Rechtecks rund um den Standort des ersten Klicks einer Doppelklick-Sequenz (in Pixel). Der zweite Klick muss innerhalb dieses Rechtecks erfolgen, damit das System die zwei Klicks als Doppelklick anerkennt. Zudem müssen die zwei Klicks innerhalb einer bestimmten Zeit auftreten.
68, 69 SM_CXDRAG, SM_CYDRAG: Breite und Höhe des Rechtecks, dessen Mitte sich an einem Ziehpunkt befindet, um eine eingeschränkte Bewegung des Mauszeigers zu ermöglichen, bevor ein Ziehvorgang begonnen wird. Diese Werte sind in Pixel. Dadurch kann der Benutzer die Maustaste drücken und einfach loslassen, ohne versehentlich ein Ziehvorgang zu beginnen.
45, 46 SM_CXEDGE, SM_CYEDGE: Höhe und Breite eines 3D-Rahmens (in Pixel). Sie sind die 3D-Gegenstücke von SM_CXBORDER und SM_CYBORDER.
7, 8 SM_CXFIXEDFRAME, SM_CYFIXEDFRAME (gleichbedeutend mit SM_CXDLGFRAME, SM_CYDLGFRAME): Dicke des Rahmens um ein Fenster, das eine Titelleiste hat, aber nicht skalierbar ist (in Pixel). SM_CXFIXEDFRAME ist die Höhe des horizontalen Rands und SM_CYFIXEDFRAME die Breite des vertikalen Rands.
83, 84 SM_CXFOCUSBORDER, SM_CYFOCUSBORDER: Höhe vom oberen/unteren Rand und Breite vom linken/rechten Rand des Fokusrechtecks eines Steuerelements. Windows 2000: Der abgerufene Wert ist immer 0.
21, 3 SM_CXHSCROLL, SM_CYHSCROLL: Pfeilbreite in einem horizontalen Scrollbalken; und Höhe eines horizontalen Scrollbalkens (in Pixel).
10 SM_CXHTHUMB: Breite des Ziehpunkts in einem horizontalen Scrollbalken (in Pixel).
11, 12 SM_CXICON, SM_CYICON: Standardbreite und -höhe eines Symbols (in Pixel).
38, 39 SM_CXICONSPACING, SM_CYICONSPACING: Breite und Höhe eines Rasters für Elemente innerhalb der Große-Symbole-Ansicht (in Pixel). Jedes Element, das darauf vorbereitet ist, passt in ein Rechteck dieser Größe. Diese Werte sind immer größer gleich SM_CXICON und SM_CYICON.
71, 72 SM_CXMENUCHECK, SM_CYMENUCHECK: Breite und Höhe der Standard-Bitmap für ein Häkchen im Menü (in Pixel).
54, 55 SM_CXMENUSIZE, SM_CYMENUSIZE: Breite und Höhe von Menüleistenschaltflächen, wie z. B. die Schließen-Schaltfläche eines untergeordneten Fensters in einem Multiple Document Interface (in Pixel).
47, 48 SM_CXMINSPACING SM_CYMINSPACING: Breite und Höhe einer Rasterzelle für ein minimiertes Fenster (in Pixel). Jedes minimierte Fenster, das darauf vorbereitet ist, passt in ein Rechteck dieser Größe. Diese Werte sind immer größer gleich SM_CXMINIMIZED und SM_CYMINIMIZED.
30, 31 SM_CXSIZE, SM_CYSIZE: Breite und Höhe einer Schaltfläche in der Titelleiste eines Fensters (in Pixel).
32, 33 SM_CXSIZEFRAME, SM_CYSIZEFRAME: Dicke des Rahmens um ein Fenster, dessen Größe angepasst werden kann (in Pixel). SM_CXSIZEFRAME ist die Breite des horizontalen Rands und SM_CYSIZEFRAME die Höhe des vertikalen Rands. Gleichbedeutend mit SM_CXFRAME und SM_CYFRAME.
49, 50 SM_CXSMICON, SM_CYSMICON: Empfohlene Breite und Höhe für ein kleines Symbol (in Pixel). Kleine Symbole werden normalerweise in der Titelleiste und in der Kleine-Symbole-Ansicht dargestellt.
52, 53 SM_CXSMSIZE SM_CYSMSIZE: Breite und Höhe einer Schaltfläche in der kleinen Titelleiste eines Fensters (in Pixel).
2, 20 SM_CXVSCROLL, SM_CYVSCROLL: Breite eines vertikalen Scrollbalkens; und Pfeilhöhe in einem vertikalen Scrollbalken (in Pixel).
4 SM_CYCAPTION: Höhe eines Titelleistenbereichs (in Pixel).
18 SM_CYKANJIWINDOW: Höhe des Kanji-Fensters am unteren Rand des Bildschirms für Systeme mit Doppelbyte-Zeichensatz (in Pixel).
15 SM_CYMENU: Höhe einer einzeiligen Menüleiste (in Pixel).
51 SM_CYSMCAPTION: Höhe eines kleinen Titelleistenbereichs (in Pixel).
9 SM_CYVTHUMB: Höhe des Ziehpunkts in einem vertikalen Scrollbalken (in Pixel).
42 SM_DBCSENABLED: Ungleich 0, wenn User32.dll Doppelbyte-Zeichensatz unterstützt, ansonsten 0.
22 SM_DEBUG: Ungleich 0, wenn die Debug-Version von User.exe installiert ist, ansonsten 0.
82 SM_IMMENABLED: Ungleich 0, wenn Features vom Input Method Manager/Input Method Editor aktiviert sind, ansonsten 0.

SM_IMMENABLED gibt an, ob das System bereit ist, einen unicode-basierten IME auf eine Unicode-Anwendung anzuwenden. Um sicherzustellen, dass ein sprachabhängiger IME ordnungsgemäß funktioniert, sollten Sie zuvor SM_DBCSENABLED und den ANSI-Zeichensatz des Systems überprüfen. Andernfalls könnte es sein, dass die ANSI-zu-Unicode-Konvertierung nicht richtig durchgeführt wird, oder dass einige Komponenten wie Schriften oder Registry-Einstellungen nicht vorhanden sind.

87 SM_MEDIACENTER: Ungleich 0, wenn das aktuelle Betriebssystem Windows XP Media Center Edition ist, ansonsten 0.
40 SM_MENUDROPALIGNMENT: Ungleich 0, wenn die Menüpunkte in Dropdownmenüs rechtsbündig sind, ansonsten 0.
74 SM_MIDEASTENABLED: Ungleich 0, wenn im System die Sprachunterstützung für Hebräisch und Arabisch aktiviert ist, ansonsten 0.
41 SM_PENWINDOWS: Ungleich 0, wenn die Erweiterungen für Pen Computing installiert sind, ansonsten 0.
44 SM_SECURE: Ungleich 0, wenn die Sicherheitsfunktionen eingeschaltet sind, ansonsten 0.
81 SM_SAMEDISPLAYFORMAT: Ungleich 0, wenn alle Bildschirme das gleiche Farbformat haben, ansonsten 0. Beachten Sie, dass zwei Bildschirme mit gleicher Farbtiefe unterschiedliche Farbformate haben können. Zum Beispiel können die roten, grünen und blauen Pixel mit einer unterschiedlichen Anzahl an Bits codiert sein, oder dass solche Bits an verschiedenen Stellen im Farbwert eines Pixels vorkommen.
86 SM_TABLETPC: Ungleich 0, wenn das aktuelle Betriebssystem Windows XP Tablet PC Edition ist, ansonsten 0.

Bemerkungen

Die internen Variablen A_ScreenWidth und A_ScreenHeight enthalten die Breite und Höhe des primären Bildschirms (in Pixel).

Siehe auch

DllCall(), WinGet

Beispiele

#1

SysGet, AnzahlMaustasten, 43
SysGet, VirtuellBildschirmBreite, 78
SysGet, VirtuellBildschirmHöhe, 79

#2: Zeigt Informationen zu jedem Bildschirm an:

SysGet, BildschirmAnzahl, MonitorCount
SysGet, BildschirmPrimär, MonitorPrimary
MsgBox, Bildschirmanzahl:`t%BildschirmAnzahl%`nPrimärer Bildschirm:`t%BildschirmPrimär%
Loop, %BildschirmAnzahl%
{
    SysGet, BildschirmName, MonitorName, %A_Index%
    SysGet, Bildschirm, Monitor, %A_Index%
    SysGet, BildschirmAB, MonitorWorkArea, %A_Index%
    MsgBox, Bildschirm:`t#%A_Index%`nName:`t%BildschirmName%`nLinks:`t%BildschirmLeft% (%BildschirmABLeft% AB)`nOben:`t%BildschirmTop% (%BildschirmABTop% AB)`nRechts:`t%BildschirmRight% (%BildschirmABRight% AB)`nUnten:`t%BildschirmBottom% (%BildschirmABBottom% AB)
}