Autor Beitrag
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Fr 13.06.03 13:43 
Hi!

Ich weiß, irgendwo hier wurde schon mal was darüber gepostet... Aber ich find es auf die Schnelle nicht und außerdem hat es damals nicht richtig geklappt, also hier nochmal:

Wenn ich Änderungen an Systemeinstellungen vornehme, möchte ich, dass alle Anwendungen sofort von diesen Änderungen erfahren (z.B. auf jeden Fall der Explorer). Wie kann ich das den Anwendungen mitteilen? (...ohne, dass sich der Explorer bei WinXP dabei verabschiedet *g*; das ist nämlich bisher mal passiert)

Danke schon mal.

_________________
Gruß,
MB
DaFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189



BeitragVerfasst: Fr 13.06.03 16:14 
mb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Sa 14.06.03 00:35 
Danke. Das sieht ja schon mal prima aus.
Nun doch noch gleich die Rückfrage (ich hab es dort nicht gefunden):

Wenn es nicht direkt über SystemParametersInfo geht (damit hatte ich zuvor eben auch schon die "Aufhänger" des Explorers produziert...), wie dann??

Also, wie übergebe ich bzw. sende ich dann die Messages?

_________________
Gruß,
MB
DaFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189



BeitragVerfasst: Sa 14.06.03 18:31 
Hi!

mb hat folgendes geschrieben:

Wenn es nicht direkt über SystemParametersInfo geht [...], wie dann??


Das MSDN hat folgendes geschrieben:

Remarks

You cannot pass these values directly to the SystemParametersInfo function. Instead, you must explicitly query the appropriate registry settings for these values.


mb hat folgendes geschrieben:

Also, wie übergebe ich bzw. sende ich dann die Messages?


Steht alles auf der Seite. WM_SETTINGCHANGE ist die Nachricht (übrigens der Nachfolger von WM_WININICHANGE), als wParam gibt es die aufgezählten Möglichkeiten, lParam = 0.
Ergo: SendMessage() (oder PostMessage()) und im Zweifelsfall HWND_BROADCAST.

Gruß,
Markus
mb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: So 15.06.03 22:53 
Danke für die Mühe, dennoch besteht mein Problem weiter, denn mit
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETAPCSHELL, 0); hatte ich es schon zuvor versucht.

Das Problem ist aber an der Stelle, dass SPI_SETAPCSHELL überhaupt nicht zu existieren schein; ich vermute mal, weil der MSDN-Link ja zu Infos für Windows CE führt - ich schreibe für XP...

_________________
Gruß,
MB
DaFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189



BeitragVerfasst: Mo 16.06.03 00:34 
Hi!

Ich weiß ehrlich gesagt selbst nicht, ob es funktioniert. Ich habe schon vieles gelesen, dass Leute damit nicht zurecht kamen (sprich: es funktionierte eben nicht). Allerdings ist dies der offizielle Weg, es wird schon was Wahres dran sein, was das MSDN schreibt :wink:
Die Konstanten zu WM_SETTINGCHANGE gelten keineswegs nur für WinCE, es könnte jedoch sein, dass Du sie unter älteren Delphiversionen selbst definieren musst (siehe Hexwerte auf der Seite).
Ansonsten kann ich Dir nur noch viel Glück wünschen. Wie gesagt, selbst habe ich mich damit noch nie herumgeschlagen, mir sind aber viele Probleme "bekannt".

Gruß,
Markus