[Delphi] Hoe refresh in MSNChat/Messenger windows?

Pagina: 1
Acties:

  • DDan
  • Registratie: September 2001
  • Laatst online: 24-06 15:37

DDan

Team Leader of Team Gäöl

Topicstarter
Kwil me eigen programmaatje gaan gebruiken voor het wijzigen van fonts, kleurtje en een aantal andere settings voor messenger en msn chat, maar het probleem is dat de wijzigingen pas worden toegepast als ik alle messenger schermpjes sluit en heropen (en bij msn chat op vernieuwen druk).
Is er een manier om deze instellingen toe te passen zonder dat ik alles hoef af te sluiten of hoef te vernieuwen?
(aangezien de messenger/msn chat dit zelf wel kan als je je instellingen veranderd, zou het toch mogelijk moeten zijn lijkt me?)

Alleen vraag is dus, hoe doe ik dit in Delphi? (of anders in C++ builder) Thnx

Limburgs hoop in bange dagen: Team Gäöl @ Rosetta@Home


  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Misschien kun je een soort API call doen, dat de windows zich moeten refreshen? En anders sluit je ze af met een API call en open je ze weer :D

If you are not wiping out you are nog pushing enough...


  • drZymo
  • Registratie: Augustus 2000
  • Laatst online: 09-08 22:22
Op donderdag 11 juli 2002 17:54 schreef DDan het volgende:
Kwil me eigen programmaatje gaan gebruiken voor het wijzigen van fonts, kleurtje en een aantal andere settings voor messenger en msn chat, maar het probleem is dat de wijzigingen pas worden toegepast als ik alle messenger schermpjes sluit en heropen (en bij msn chat op vernieuwen druk).
Is er een manier om deze instellingen toe te passen zonder dat ik alles hoef af te sluiten of hoef te vernieuwen?
(aangezien de messenger/msn chat dit zelf wel kan als je je instellingen veranderd, zou het toch mogelijk moeten zijn lijkt me?)

Alleen vraag is dus, hoe doe ik dit in Delphi? (of anders in C++ builder) Thnx
Uhm wat je probeert is een ander programma te besturen. Das iets in Windows wat niet altijd even goed lukt. Maar fonts enzo worden zover ik weet in msn pas geladen als het chat venster geopend wordt. Daarom kan je pas je nieuwe font zien in een nieuwe window en niet in de huidige.

Voor de rest geen idee wat je nog meer wil :P

"There are three stages in scientific discovery: first, people deny that it is true; then they deny that it is important; finally they credit the wrong person."


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 00:25

johnwoo

3S-GTE

Op donderdag 11 juli 2002 23:24 schreef drZymo het volgende:

[..]

Uhm wat je probeert is een ander programma te besturen. Das iets in Windows wat niet altijd even goed lukt. Maar fonts enzo worden zover ik weet in msn pas geladen als het chat venster geopend wordt. Daarom kan je pas je nieuwe font zien in een nieuwe window en niet in de huidige.

Voor de rest geen idee wat je nog meer wil :P
Microsoft heeft wel enkele SDK'tjes ter download met betrekking tot MSN Messenger / Windows Messenger. Daarmee kun je MSN 'besturen'; misschien dat er ook een mogelijkheid is om de fonts in te stellen...
Zoek dus even rond op microsoft.com zou ik zeggen :)

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • DDan
  • Registratie: September 2001
  • Laatst online: 24-06 15:37

DDan

Team Leader of Team Gäöl

Topicstarter
Op die SDK's daar heeft iemand me ook net op gewezen en dat ben ik op het moment ook aant doorkijken
Code voor het wijzigen van die register settings (dat zijn die font/kleur instellingen namelijk) zijn al allemaal af, alleen die refresh van die schermen zonder ze te sluiten wil ik er nog in hebben :)

Limburgs hoop in bange dagen: Team Gäöl @ Rosetta@Home


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Op vrijdag 12 juli 2002 01:13 schreef DDan het volgende:
Op die SDK's daar heeft iemand me ook net op gewezen en dat ben ik op het moment ook aant doorkijken
Code voor het wijzigen van die register settings (dat zijn die font/kleur instellingen namelijk) zijn al allemaal af, alleen die refresh van die schermen zonder ze te sluiten wil ik er nog in hebben :)
Schermen worden altijd ververst. Waar jij last van hebt denk ik is dat MSN zijn instellingen alleen uit het registry haalt als het venster geopend wordt. Het zou anders ook tegek worden. Dit betekend dat je een MSN API ofzo aan zou moeten spreken voor een refresh.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Onzin,

het moet mogelijk zijn. Refresh is niet de oplossing denk ik, een repaint wel.
Je kan een window de opdracht geven te repainten.
Even uit het blote hoofd:
Probeer eerst achter de window handle te komen.
Findwindow('windownaampje',..);


Vervolgens:
perform(WM_SYSCOMMAND, 'Iets voor Repaint',0);

Er zijn zat andere manieren die wellicht beter zijn, maar het is absoluut mogelijk.

probeer hier eens te zoeken: http://www.fulltextsearch.com :)

  • DDan
  • Registratie: September 2001
  • Laatst online: 24-06 15:37

DDan

Team Leader of Team Gäöl

Topicstarter
code:
1
2
3
4
5
6
7
title:=''; //'MSN Chat' ???
classname:=''; // ???
winH:=FindWindow(@classname,@title);
if winH<>0 then
  Perform(WM_SETTINGCHANGE,winH,0)
else
  StopClick(nil);

volgens mij zou het zoiets moeten worden, maar het probleem is het achterhalen van de classname, er is wel een functie in delphi om die op te halen (GetClassName), maar die verwacht dat je de window handle meegeeft en daar was ik juist zelf naar op zoek :?
xie ff niet hoe ik hier uit kom *zoekt weer verder in delphi help / op internet*

Limburgs hoop in bange dagen: Team Gäöl @ Rosetta@Home


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Op vrijdag 12 juli 2002 11:46 schreef Prinz het volgende:
Onzin,

het moet mogelijk zijn. Refresh is niet de oplossing denk ik, een repaint wel.
Onzin, :p

refresh=repaint

Het painten van een window veranderd niet zomaar meteen het font. Het font stond het registry, denk je dat ie elke keer dat ie gaat painten de instellingen ophaald?! Painten doet ie mogelijk zelfs vele malen per seconde. Painten doet ie onderandere als je er een ander venster overheen sleept. Probeer dat eens te doen, als er dan geen ander font verschijnd (wat ik heeeel vreemd zou vinden) heeft het geen nut om een normaal windows message te sturen om een window te repainten.

We adore chaos because we like to restore order - M.C. Escher


  • DDan
  • Registratie: September 2001
  • Laatst online: 24-06 15:37

DDan

Team Leader of Team Gäöl

Topicstarter
Onzin, :p

refresh=repaint

Het painten van een window veranderd niet zomaar meteen het font. Het font stond het registry, denk je dat ie elke keer dat ie gaat painten de instellingen ophaald?! Painten doet ie mogelijk zelfs vele malen per seconde. Painten doet ie onderandere als je er een ander venster overheen sleept. Probeer dat eens te doen, als er dan geen ander font verschijnd (wat ik heeeel vreemd zou vinden) heeft het geen nut om een normaal windows message te sturen om een window te repainten.
Volgens mij is repaint niet de oplossing, aangezien deze alleen het form van de applicatie opnieuw "tekent", en geen reg settings opnieuw ophaalt

Deze message: WM_SETTINGCHANGE zorgt er iig voor dat applicaties worden vernieuwd (moet nog wat verder testen of hij ook reg settings opnieuw ophaalt, maar lijkt me wel als ik kijk naar wat in delphi help staat)

Via dit stukje code worden alle bovenliggende programma's van het programmaatje vernieuwd (blijkbaar zijn dat taakbalk+delphi)
code:
1
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);



Denk dat het enigste is wat ik nog moet doen is deze handle: HWND_BROADCAST vervangen voor de handle van MSN Chat, maar hoe kom ik aan die handle, daar ben ik namelijk nog steeds niet uit

Limburgs hoop in bange dagen: Team Gäöl @ Rosetta@Home


  • Chimera
  • Registratie: December 2001
  • Laatst online: 17-07 11:24
Daar was WinSight toch voor? Ik weet niet zeker maar dat lees ik steeds in de help als ik iets vind wat ik niet wilde vinden :P, zit btw alleen in Professional en Enterprise versies. Vanaf welke Delphi versie weet ik niet, maar aangezien Enterprise in Delphi 4 nog Client/Server heette, zal het vanaf Delphi 5 zijn :).

[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p

Pagina: 1