Toon posts:

(delphi) windows messages-een commando op een venstercreate

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een popupkiller gemaakt voor msn-chat(je krijg daar telkens spam via fluister en das erg irritant) dit programma kijkt naar alle vensters in windows en kijkt naar de caption naar de naar van de persoon die het bericht stuurd.
door een logbestand ban de irritante mensen wordt het venster automatish gesloten...

alleen nu is mijn probleem omdat ik met een timer werk dat hij alle vensters telkens controleerd en wordt je pc dus erg sloom.. vooral de oude pc's

oplossing hiervoor heb ik bedacht dat als er een venster gemaakt wordt dat hij alleen naar dat venster even kijkt of hij hem moet sluiten of niet...
is hiermee een mogelekheid beschikbaar met windows messages?

alvast bedankt

Verwijderd

Waarom kijk je niet alleen naar alle windows van 'n bepaald process? scheelt 'n flinke lading onnodige chekcs denk ik.

Verwijderd

Shadow, kijk eens in de Windows SDK onder (Event) Hooks. Daar kun je een procedure toevoegen welke windows aanroept op een event. Denk alleen wel dat je je code snel moet maken, dus wellicht een tussenprogrammatje schrijven dat een notify stuurt naar je hoofdprogramma.

Doe je de check in je Hook procedure dan heb je kans dat je systeem gaat haperen.

Jurrian de Valk
Sereon Technology
www.sereon.com

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 01:25

Tomatoman

Fulltime prutser

jdevalk, even een tip. In de FAQ staat het volgende:
Wij tweakers doen elkaar permanent de groeten. Het is dus niet nodig om steeds ruimteverspillende "greetz $user" of iets dergelijks onder je posts te plakken. Als je per se zoiets wilt kun je daar je signature voor gebruiken.

Een goede grap mag vrienden kosten.


  • Delpix
  • Registratie: September 2001
  • Laatst online: 27-11-2021

Delpix

Alanis Fan

Verwijderd schreef op 29 May 2003 @ 17:48:
Shadow, kijk eens in de Windows SDK onder (Event) Hooks. Daar kun je een procedure toevoegen welke windows aanroept op een event. Denk alleen wel dat je je code snel moet maken, dus wellicht een tussenprogrammatje schrijven dat een notify stuurt naar je hoofdprogramma.

Doe je de check in je Hook procedure dan heb je kans dat je systeem gaat haperen.

Jurrian de Valk
Sereon Technology
www.sereon.com
idd. Hiervoor kan je het beste een WM_SHELL hook gebruiken. Daarmee kan je venster acherhalen die gemaakt, verwijderd, geactiveerd worden etc etc. Programmeer het geheel wel in een DLL die je mapt via CreateMappedFile want anders is je hook niet systemwide.

...beter bekend als AMFan


Verwijderd

tnx all.. ik heb het geprobeerd en heb nu dit:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
procedure capturehooks(var Message: TMessage); Message WH_SHELL;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.capturehooks(var Message: TMessage);
begin
form1.caption := 'commando gehad..'
end;

end.

alleen ik krijg helemaal nix als ik een window aanmaak ook niet met me eigen programma... heel die hook doet nix in windows xp :S of doe ik iets fout?
alvast bedankt

ik had even me naam verandert dus...

[ Voor 4% gewijzigd door Verwijderd op 30-05-2003 12:09 ]


  • Delpix
  • Registratie: September 2001
  • Laatst online: 27-11-2021

Delpix

Alanis Fan

Die hook moet je zetten via SetWindowsHookEx. En in een DLL.

Messchien is het handig om de onderstaande link ffe te bezoeken. Daar had ik al iemand geholpen met een soortgelijk probleem:

http://www.nldelphi.com/F...hp?postid=55656#post55656

...beter bekend als AMFan

Pagina: 1