![]() |
ChangeDisplaySettings Hooken
Liste der Anhänge anzeigen (Anzahl: 1)
Ich versuche gerade mit dem Beispiel von toms zu API-Hooks
![]() Leider funktioniert mein Demo-Programm nicht, obwohl es eigentlich das Beispiel von toms ist. Ich hänge es hier mal an. |
Re: ChangeDisplaySettings Hooken
Zitat:
ist das nicht unnötig kompliziert? Die Positionen von Icons sollte man doch kennen, oder man kann sie rechtzeitig abfragen, und von der Displayänderung werden sowieso alle benachrichtigt. Gruss Reinhard |
Re: ChangeDisplaySettings Hooken
Zitat:
Zitat:
Zitat:
Aber wenn du eine einfachere Alternative kennst, ich bin für alles offen. |
Re: ChangeDisplaySettings Hooken
Zitat:
ich denke einfach nach folgender Logik: A wenn du die Position vorher weisst, existiert das Problem nicht. B wenn nicht, warum must du es danach dann plötzlich wissen? m.a.W. wenn der Anwender das Icon verschiebt, weisst du nicht, wo es ist - warum ist dir das vor der Displayumschaltung egal und nachher nicht mehr? Ich sage ja nicht, dass du keine guten Gründe hast, ich kenne sie nur bisher nicht. Ich persönlich würde das so angehen: wenn ich die Position kennen muss, speichere ich sie von Anfang an - nach einer Displayänderung eben die neue. Einen Hook würde ich ungern dafür aufwenden. Gruss Reinhard |
Re: ChangeDisplaySettings Hooken
Hallo Reinhard,
was für eine überflüssige Diskussion. Er hat eine klare Frage gestellt und erwartet eine klare Antwort. Hier gibt's bereits einige threads zu diesem Thema, aber nie eine befriedigende Antwort. Das ganze ist zum Beispiel sinnvoll um eine Änderung der Display-Skalierung zu verhindern. Rainer |
Re: ChangeDisplaySettings Hooken
Zitat:
Aber da shab eich alles schon im ersten Posting erklärt: Zitat:
|
Re: ChangeDisplaySettings Hooken
Konnte sich das mittlerweile mal jemand näher angucken?
|
Re: ChangeDisplaySettings Hooken
Moin moin,
Zitat:
In meiner Windows.pas ist ChangeDisplaySettings so deklariert
Delphi-Quellcode:
Wenn ich die hooke und von einem anderen Programm ChangeDisplaySettings aufrufe, erscheint die
type
//TChangeDisplaySettings = function(dwWidth: DWORD; dwHeight: DWORD; dwBpp: DWORD): HRESULT; stdcall; TChangeDisplaySettings = function(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall; MessageBox --> scheint also zu funktionieren... Wenn ich allerdings meine Auflösung über Einstellungen Anzeige ändere, erscheint sie nicht. Kann es vll. sein, dass dabei ChangeDisplaySettings gar nicht aufgerufen wird? |
Re: ChangeDisplaySettings Hooken
Moin Peter,
seit 98/2000 gibt es noch die Funktion ChangeDisplaySettingsEx, und ich möchte mal stark annehmen, dass das Betriebssystem diese Funktion benutzt, wenn sie vorhanden ist. |
Re: ChangeDisplaySettings Hooken
Moin Christian,
das funktioniert auch nicht. Ich hab mal CounterStrike gestartet, auch dort lässt sich die MessageBox nicht blicken. Wie gesagt, aus einem anderen Delphi-Projekt aufgerufen, erscheint sie. |
Re: ChangeDisplaySettings Hooken
Von hinten durch die Brust ins Auge?
Mit nem Timer die Iconpositionen minütlich in einer INI speichern. Das minütliche Speichern der Iconpositionen abhängig machen von ChangeDisplaySettings: If ChangeDisplaySettings then DoNotSave. Das Programm zum Speichern muss wohl ständig laufen, damit es die Änderungen der Iconpositionen mitkriegt. Was wohl selbst bei nonVCL reichlich RAM verbrät. Also nicht Kleckern, sondern Klotzen! RH |
Re: ChangeDisplaySettings Hooken
Zitat:
|
Re: ChangeDisplaySettings Hooken
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Nein, das tut es auch nicht. :( Ich habe es so deklariert:
Delphi-Quellcode:
Neue Version wieder im Anhang (acuh mit der geänderten Deklaration von ChangeDeviceSettings, keine Ahnung, wo ich meine her hatte).
TChangeDisplaySettingsEx = function(DeviceName: PChar; var DevMode: DWORD; hWnd: THandle; flags: DWORD; Param: Pointer): Longint; stdcall;
|
Re: ChangeDisplaySettings Hooken
Hat sich das mal einer angeguckt?
|
Re: ChangeDisplaySettings Hooken
Würde mich auch interessieren ..
|
Re: ChangeDisplaySettings Hooken
Liste der Anhänge anzeigen (Anzahl: 1)
Warum ein Hook und nicht WM_DISPLAYCHANGE verwenden bzw. belauschen ? :gruebel:
Zitat:
|
Re: ChangeDisplaySettings Hooken
Naja, der Hook / die Message sollte VOR dem Ändern der Auflösung ausgelöst werden .. WM_DISPLAYCHANGE wird meines Wissens nach erst ausgelöst, nachdem sich die Auflösung geändert hat.
|
Re: ChangeDisplaySettings Hooken
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz