AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ChangeDisplaySettings Hooken

Ein Thema von Luckie · begonnen am 21. Okt 2006 · letzter Beitrag vom 28. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

ChangeDisplaySettings Hooken

  Alt 21. Okt 2006, 11:38
Ich versuche gerade mit dem Beispiel von toms zu API-Hooks http://www.michael-puff.de/dirindex..../Importe/toms/ , ChangeDisplaySettings zu hooken, damit ich mitbekommen, wenn sich die Auflösung ändert und zwar bevor sie geändert wird, damit ich noch die Icon Poitionen sichern kann.

Leider funktioniert mein Demo-Programm nicht, obwohl es eigentlich das Beispiel von toms ist. Ich hänge es hier mal an.
Angehängte Dateien
Dateityp: zip apihook_172.zip (250,3 KB, 25x aufgerufen)
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#2

Re: ChangeDisplaySettings Hooken

  Alt 22. Okt 2006, 13:58
Zitat von Luckie:
Ich versuche gerade mit dem Beispiel von toms zu API-Hooks http://www.michael-puff.de/dirindex..../Importe/toms/ , ChangeDisplaySettings zu hooken, damit ich mitbekommen, wenn sich die Auflösung ändert und zwar bevor sie geändert wird, damit ich noch die Icon Poitionen sichern kann.

Leider funktioniert mein Demo-Programm nicht, obwohl es eigentlich das Beispiel von toms ist. Ich hänge es hier mal an.
Hallo,

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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ChangeDisplaySettings Hooken

  Alt 22. Okt 2006, 22:10
Zitat von Reinhard Kern:
Die Positionen von Icons sollte man doch kennen,
Und woher, wenn ich sie nicht vorher speichere? Wenn ich sie beim Programmstart speichere, ok, und wenn er dann ein Icon verschiebt bevor er die Auflösung ändert?

Zitat:
oder man kann sie rechtzeitig abfragen,
Und wie?

Zitat:
und von der Displayänderung werden sowieso alle benachrichtigt.
Aber erst, wenn die Auflösung geändert wurde, dann ist es natürlich zu spät zum Speichern.

Aber wenn du eine einfachere Alternative kennst, ich bin für alles offen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

Re: ChangeDisplaySettings Hooken

  Alt 23. Okt 2006, 00:18
Zitat von Luckie:
Zitat von Reinhard Kern:
Die Positionen von Icons sollte man doch kennen,
Und woher, wenn ich sie nicht vorher speichere? Wenn ich sie beim Programmstart speichere, ok, und wenn er dann ein Icon verschiebt bevor er die Auflösung ändert?

Zitat:
oder man kann sie rechtzeitig abfragen,
Und wie?

Zitat:
und von der Displayänderung werden sowieso alle benachrichtigt.
Aber erst, wenn die Auflösung geändert wurde, dann ist es natürlich zu spät zum Speichern.

Aber wenn du eine einfachere Alternative kennst, ich bin für alles offen.
Hallo,

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
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#5

Re: ChangeDisplaySettings Hooken

  Alt 23. Okt 2006, 05:15
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: ChangeDisplaySettings Hooken

  Alt 23. Okt 2006, 08:39
Zitat von Reinhard:
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 muss es vorher wissen, um die Icon-Positionen zu sichern, damit ich sie danach eventuell wieder herstellen kann. Beipsiel: Nehmen wir an du hast viele Icon auf dem Desktop und alle schön angeordnet. Jetzt startest du ein Spiel, welches die Auflösung ändert. Beendest du das Spiel und es stellt die Auflösung wieder zurück, kannst du deine 125 Icons wieder alle neu anordnen. Deswegen muss ich die Positionen vorher sichern können. Und dazu muss ich mitbekommen wann die Auflösung geändert wird, dies abfangen, die Icon-Positionen sichern und dann kann die Auflösung geändert werden.

Aber da shab eich alles schon im ersten Posting erklärt:
Zitat von Luckie:
damit ich mitbekommen, wenn sich die Auflösung ändert und zwar bevor sie geändert wird, damit ich noch die Icon Poitionen sichern kann.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: ChangeDisplaySettings Hooken

  Alt 27. Okt 2006, 00:06
Konnte sich das mittlerweile mal jemand näher angucken?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#8

Re: ChangeDisplaySettings Hooken

  Alt 28. Okt 2006, 02:58
Moin moin,
Zitat von Luckie:
Konnte sich das mittlerweile mal jemand näher angucken?
Angucken schon, nur obs dir weiterhilft...

In meiner Windows.pas ist ChangeDisplaySettings so deklariert
Delphi-Quellcode:
type
  //TChangeDisplaySettings = function(dwWidth: DWORD; dwHeight: DWORD; dwBpp: DWORD): HRESULT; stdcall;
  TChangeDisplaySettings = function(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall;
Wenn ich die hooke und von einem anderen Programm ChangeDisplaySettings aufrufe, erscheint die
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?
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: ChangeDisplaySettings Hooken

  Alt 28. Okt 2006, 03:54
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#10

Re: ChangeDisplaySettings Hooken

  Alt 28. Okt 2006, 05:36
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.
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 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