Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vista Aero Effekt deaktiveren (https://www.delphipraxis.net/137018-vista-aero-effekt-deaktiveren.html)

Larsi 12. Jul 2009 15:17


Vista Aero Effekt deaktiveren
 
Hi,

wie kann ich den Vista Aero Effekt eigentlich für die Nutzung meines Programmes auf Wunsch ausschalten, natürlich in Delphi?

MFG Lars Wiltfang

Edit: Mir würde es schon reichen wenn die Schatten weg wären.

turboPASCAL 12. Jul 2009 15:39

Re: Vista Aero Effekt deaktiveren
 
Zitat:

Edit: Mir würde es schon reichen wenn die Schatten weg wären.
Darf man fragen wieso bzw. wozu ?

Zitat:

wie kann ich den Vista Aero Effekt eigentlich für die Nutzung meines Programmes auf Wunsch ausschalten
Unter Nutzung der Forensuche oder Google. :stupid:

http://groups.google.com/group/borla...15e2d42fec6100


// Edit: Aber wenn du meinst nur für dein Programm "lokal" das geht nicht.

Larsi 12. Jul 2009 15:43

Re: Vista Aero Effekt deaktiveren
 
Und wie muss ich die ganzen Variablen deklarieren? Bekomme sehr viele Fehler.

Die Muhkuh 12. Jul 2009 15:46

Re: Vista Aero Effekt deaktiveren
 
Was für Fehler?

Larsi 12. Jul 2009 15:47

Re: Vista Aero Effekt deaktiveren
 
Ok habs hingekriegt.

Namenloser 12. Jul 2009 15:48

Re: Vista Aero Effekt deaktiveren
 
Da guckst du am besten auf msdn nach: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

In Delphi musst du es dann so deklarieren:
Delphi-Quellcode:
type
  TDwmEnableComposition = function(uCompositionAction: longint): hResult;

...
var
  DwmEnableComposition: TDwmEnableComposition;
Sollte klappen, aber wie immer ohne Gewähr.

freak4fun 12. Jul 2009 15:59

Re: Vista Aero Effekt deaktiveren
 
Zitat:

Zitat von Larsi
Ok habs hingekriegt.

Und wie? Könnte ja auch andere interessieren. :drunken:

turboPASCAL 12. Jul 2009 16:02

Re: Vista Aero Effekt deaktiveren
 
@NamenLozer, Das Beispiel oben im Link gefällt dir wohl nicht ?

@freak4fun, fasst nur eine Copy&Paste Action


Eine AllinOne-Procedure:

Delphi-Quellcode:
procedure AeroSetEnable (enable: boolean);
const
  DWM_EC_DISABLECOMPOSITION = 0;
  DWM_EC_ENABLECOMPOSITION = 1;
var
  DwmEnableComposition: function(uCompositionAction: UINT): HRESULT; stdcall;
  DWMlibrary: THandle;
begin
  DWMlibrary := LoadLibrary ('DWMAPI.dll');

  if DWMlibrary <> 0 then
  begin
    DwmEnableComposition := GetProcAddress(DWMLibrary, 'DwmEnableComposition');

    if @DwmEnableComposition <> nil then
    begin
      if enable
        then DwmEnableComposition(DWM_EC_ENABLECOMPOSITION)
        else DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);
    end;
  end;

  FreeLibrary(DWMlibrary);
end;


// Aufruf zum ausschalten des Aeroef.
procedure TForm1.FormCreate(Sender: TObject);
begin
  AeroSetEnable(false);
end;

// Edit:
Bin etwas zersteut heute, die Funktion im Link oben ist etwas desulat..
Ich habe mal hier eine einfache Variante bereitgestellt.

Wird die Procedure wie im Beispiel aufgerufen bleibt der Aeroeffect so lange aus bist das
Programm beendet wird.
In Normalfall würde ich LoadLibrary & FreeLibrary aus der Procedure lösen und die DLL
Im Create & Destroy laden bzw. entladen.

Namenloser 12. Jul 2009 16:07

Re: Vista Aero Effekt deaktiveren
 
Zitat:

Zitat von turboPASCAL
@NamenLozer, Das Beispiel oben im Link gefällt dir wohl nicht ?

Doch, mein Code bezieht sich doch darauf :gruebel: Meine Glaskugel hat mir nunmal gesagt, dass DwmEnableComposition in Larsis Delphi nicht deklariert ist (weil ich selbst mal eine Dwm*-Funktion benutzen wollte und dieses Problem hatte).

turboPASCAL 12. Jul 2009 16:17

Re: Vista Aero Effekt deaktiveren
 
Siehe Edit in Post #8. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.

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