Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Ist Windows Animation Aktiv (https://www.delphipraxis.net/200455-ist-windows-animation-aktiv.html)

Kidi 23. Apr 2019 05:28

Ist Windows Animation Aktiv
 
Hallo alle zusammen,
Wie kann ich unter Delphi herausfinden ob, "Animationen in Windows anzeigen" unter Einstellungen/Anzeige, aktiv ist?

mfg
Dietmar

Delphi.Narium 23. Apr 2019 08:53

AW: Ist Windows Animation Aktiv
 
Je nach Windows:

http://www.winfaq.de/sphider/search....&db=0&prefix=0

Bitte dort die für Dich passende Variante raussuchen.

U. a. wären da:
HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
MinAnimate = 1 oder der Wert fehlt

Ist die älteste mir bekannte Variante.

Kidi 23. Apr 2019 10:08

AW: Ist Windows Animation Aktiv
 
Hallo alle zusammen,
Danke für deine Antwort Delphi.Narium, habe aber noch eine Möglichkeit über

Delphi-Quellcode:
var
 Info: TAnimationInfo;
 B: Boolean;
begin
  SystemParametersInfo(SPI_GETANIMATION, SizeOf(Info), @Info, 0);
  B:= Boolean(Info.iMinAnimate)
end;
mfg
Dietmar

EWeiss 23. Apr 2019 13:55

AW: Ist Windows Animation Aktiv
 
Ich mache es so..

Delphi-Quellcode:
function TSkinEngine.SetMenuAnimation(HWND: DWORD; MenuAnimation: BOOL): Boolean;
begin

  // Bisherige Einstellung ermitteln:
  result := SystemParametersInfo(SPI_GETMENUANIMATION, 0, @FOldSetting, 0);
  if not result then
    // Result := False;
    // Der abfragende Aufruf war nicht erfolgreich
    exit; // Rückgabewert bleibt False

    // Wert ändern und Erfolg prüfen:
  if Bool(FOldSetting) <> MenuAnimation then
    result := SystemParametersInfo(SPI_SETMENUANIMATION, 0, Pointer(Ord(MenuAnimation)),
      SPIF_SENDCHANGE);
end;
SPI_GETMENUANIMATION mit SPI_GETANIMATION ersetzen.. sollte funktionieren. (aber nicht getestet)

Ich habe die Funktion erstellt damit man bei OwnerDraw Menus das korrekte MenuHandle erhält.
Deaktiviert man die Animation vorher nicht dann ist das Handle immer 0 bei dieser abfrage. (seltsamerweise nur unter Windows 10)

Delphi-Quellcode:
hMenuWnd := WindowFromDC(Pdis^.hDC);


gruss

Kidi 23. Apr 2019 15:27

AW: Ist Windows Animation Aktiv
 
Hallo EWeiss,
Wenn SystemParametersInfo mit SPI_GETANIMATION abgefragt wird, läst sich der Rückgabewert nur über TAnimationInfo auslesen.
Deswegen muß als zweiter Parameter SizeOf("TAnimationInfo") angegeben werden.
So hab ich es auf der Microsoft Seite verstanden.
Und es funktioniert auch.

Danke dir für deinen Beitrag

mfg
Dietmar

EWeiss 23. Apr 2019 15:42

AW: Ist Windows Animation Aktiv
 
Zitat:

Zitat von Kidi (Beitrag 1430815)
Hallo EWeiss,
Wenn SystemParametersInfo mit SPI_GETANIMATION abgefragt wird, läst sich der Rückgabewert nur über TAnimationInfo auslesen.
Deswegen muß als zweiter Parameter SizeOf("TAnimationInfo") angegeben werden.
So hab ich es auf der Microsoft Seite verstanden.
Und es funktioniert auch.

Danke dir für deinen Beitrag

mfg
Dietmar

Möglich das es bei SPI_GETANIMATION der fall ist.

Ich benötige aber bei SPI_GETMENUANIMATION TAnimationInfo nicht.
Deshalb sagte ich ja
Zitat:

(aber nicht getestet)
gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf