![]() |
Programm über SendMessage kontrollieren
Hi,
winamp hat eine funktion, das ich es mit jedem programm per command
Delphi-Quellcode:
steuern kann. ich wollte mal wissen wie ich so etwas in mein project einbauen kann, da ich es gerne auf gleiche weiße steuern können möchte...
SendMessage(getwinamphwnd,WM_COMMAND,40048,0);
MfG Hybrid666 |
Re: Programm über SendMessage kontrollieren
hi
du hast doch den eigendlichen befehl schon geschrieben... was du brauchst ist einfach nur die HWND von winamp... schau mal nach FindWindow SpyEx und WinSpy können dir auch helfen |
Re: Programm über SendMessage kontrollieren
nein nein, war scheiße erklär von mir...ich will ein project schreiben, das auf sendmessage reagiert, wie winamp, z.B. wenn ich was mit sendmessage an mein programm sende, so soll dies einach timer1 aktivieren, so war das gemeint...also das eine prozedur aus meinem programm gestartet wird wenn ein anderes programm eine sendmessage dahin schickt....
|
Re: Programm über SendMessage kontrollieren
Na dann erzähl mal genauer was du willst. du hast im Prinzip zwei Möglichkeiten (wenn du VCL benutzt)
1. vorhadene Messages deiner Fenster/formulare nutzen 2. eigene Messages "definieren" und im Programm asuwerten |
Re: Programm über SendMessage kontrollieren
also:
ich habe programm A und Programm B. Programm A Sendet nun an Programm B
Delphi-Quellcode:
und Programm B führt daraufhin die prozedure react_1000 aus...
SendMessage(PROGRAMMBHWND,WM_COMMAND,1000,0);
wie realisiere ich das? |
Re: Programm über SendMessage kontrollieren
Da definierst du dir einfach erstmal eine eigene Message
Delphi-Quellcode:
Ab WM_USER ist dein Bereich, da kannst du dich austoben und eigene Messages definieren, da reagiert dann auch kein anderes Control drauf.
const WM_myMSG=WM_USER+1
Bekommen und auswerten tust du diese Message so:
Delphi-Quellcode:
Eine Message an TForm1 verschicken geht mit:
//Programm A
type TForm1=class(TForm) //... private procedure irgendetwas(var Msg:TMessage);message WM_myMSG; end; //... procedure TForm1.irgendetwas(var Msg:TMessage); begin //hier hast du jetzt lparam und wparam if msg.LParam= //... if msg.Wparam msg.result:=712; //hier kannst du irgendetwas zurückgeben end;
Delphi-Quellcode:
Achtung: Bei sendmessage wartet Programm B bis A fertig ist mit dem abarbeiten der Funktion. Wenn das nicht gewünscht ist nimm Postmessage (dann kriegst du aber kein result)
//Programm B (hier muss das Handle von Tform1 aus Programm A bekannt sein)
r:=sendmessage(Handle,WM_user+1,0,0); //kannst natürlich hier auch für wm_user+1 eine Konstante festlegen //in r steht jetzt das msg.result |
Re: Programm über SendMessage kontrollieren
Zitat:
DDE ist inzwischen veraltet und durch Active-X / Automatisierung abgelöst. Also stehen nun 3 Techniken für die Fernsteuerung zur Verfügung: 1.) über userdefinierte Windows Messages 2.) DDE 3.) ActiveX Willst du wirklich die schlechteste Technik benützen? |
Re: Programm über SendMessage kontrollieren
wenn du mir die ActiveX variante erklären könntest dann würde ich auch eine andere nehmen ;)
MfG P.S.: Ein tut tuts auch :P |
Re: Programm über SendMessage kontrollieren
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Aber ich hab dir mal eine ganz einfache Anwendung in den Anhang gepackt. Kurz-Anleitung Projekt kompilieren und starten. Dann die Scriptdatei testscript.vbs doppelklicken. |
Re: Programm über SendMessage kontrollieren
Hi...
@sirius: Wie kann ich denn Text senden, also nen String z.B. ? Vielen Dank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 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