Anwendung von außen über SendMessage() steuern?
Anwendung von außen über SendMessage() steuern?
Hallo Zusammen,
kennte jemand ein gutes Beispiel oder ein Tutorial, wie man sein Programm von außen über die SendMessage Funktion steuern kann, wie es z.B. bei Winamp der Fall ist?
Also das einfach eine bestimmte Funktion im Programm aufgerufen wird, wenn man sendmessage() mit gewissend Parameter darauf aufruft?
Danke & Gruß
LordK
kennte jemand ein gutes Beispiel oder ein Tutorial, wie man sein Programm von außen über die SendMessage Funktion steuern kann, wie es z.B. bei Winamp der Fall ist?
Also das einfach eine bestimmte Funktion im Programm aufgerufen wird, wenn man sendmessage() mit gewissend Parameter darauf aufruft?
Danke & Gruß
LordK
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Simples Beispiel:
Der Empfänger:
den zuerst starten, dann diesen Sender:
Ich hoffe damit findeste einen Anfang
Gruß
Thomas
Der Empfänger:
Code: Alles auswählen
#MyMessageToShowMsg = #WM_USER + 100
OpenWindow(0, #PB_Ignore, #PB_Ignore, 100, 100, "Empfänger", #PB_Window_SystemMenu)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #MyMessageToShowMsg
Debug EventlParam()
Debug EventwParam()
MessageRequester("", "Message Erhalten")
EndSelect
ForEver
Code: Alles auswählen
#MyMessageToShowMsg = #WM_USER + 100
Define hWnd = FindWindow_(0, @"Empfänger")
If hWnd
PostMessage_(hWnd, #MyMessageToShowMsg, 10, 20)
EndIf
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Bei der #WM_USER aufpassen, das diese nicht evtl. schon von einem
Control (aus Lib oder DLL) verwendet wird.
Strings lassen sich so nicht übermitteln, dafür gibts #WM_COPYDATA
(auf MSDN oder in anderer API-Hilfe suchen)
Gruß
Thomas
Control (aus Lib oder DLL) verwendet wird.
Strings lassen sich so nicht übermitteln, dafür gibts #WM_COPYDATA
(auf MSDN oder in anderer API-Hilfe suchen)
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Kann man diese 10 und 20, die als wparam und lparam übergeben werden auch noch irgendwie verarbeiten?ts-soft hat geschrieben:Simples Beispiel:
Code: Alles auswählen
If hWnd PostMessage_(hWnd, #MyMessageToShowMsg, 10, 20) EndIf
Ansonsten dachte ich ich könnte es analog Winamp machen und mit #WM_COMMAND und dann custom wparams vergeben.
Gruß
LordK
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
#WM_COMMAND würde ich nicht nehmen, das kann Probleme mit
vorhandenen Messages geben.
Ansonsten verstehe ich Deine Frage nicht, meinste sowas?
oder sowas:
vorhandenen Messages geben.
Ansonsten verstehe ich Deine Frage nicht, meinste sowas?
Code: Alles auswählen
Enumeration
#minimierdich
#maximierdich
#beendedich
#setzebuttonhight
EndEnumeration
If hWnd
PostMessage_(hWnd, #MyMessageToShowMsg, #setzebuttonhight, 20)
EndIf
Code: Alles auswählen
Import ""
PB_Gadget_SendGadgetCommand(hWnd, EventType)
EndImport
#MyMessageToShowMsg = #WM_USER + 100
OpenWindow(0, #PB_Ignore, #PB_Ignore, 100, 100, "Empfänger", #PB_Window_SystemMenu)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #MyMessageToShowMsg
PB_Gadget_SendGadgetCommand(EventlParam(), EventwParam())
EndSelect
ForEver
Zuletzt geändert von ts-soft am 18.01.2009 00:50, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Ahh. Sorry...
Ich hatte den Code eben nur mal überflogen aber noch nicht getestet, daher ist mir das
irgendwie entgangen.
Damit hätten sich dann meine Fragen fürs erste beantwort.
Vielen Dank für dein super Unterstützung
Ich hatte den Code eben nur mal überflogen aber noch nicht getestet, daher ist mir das
Code: Alles auswählen
Debug EventlParam()
Debug EventwParam()

Damit hätten sich dann meine Fragen fürs erste beantwort.
Vielen Dank für dein super Unterstützung

Zuletzt geändert von LordK am 18.01.2009 01:07, insgesamt 1-mal geändert.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
> Vielen Dank für dein super Unterstützung
gern geschehen
PS: Hab eben noch ein Beispiel im vorherigen Post abgeschickt, vielleicht
bringt dich das ja noch auf Ideen
gern geschehen
PS: Hab eben noch ein Beispiel im vorherigen Post abgeschickt, vielleicht
bringt dich das ja noch auf Ideen

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
In diesem Falle aus Gadget.libLittle John hat geschrieben:Thomas,
aus welcher Datei wird denn etwas importiert, wenn man als Dateiname nur "" angibt, wie in Deinem Beispiel?
Neugierig, Little John
Das geht natürlich nur mit Libs, die sowieso importiert werden, also wenn
hier kein Gadget erstellt wird im Source, dann gibts nen Fehler, aber dann
wäre der Import sowieso sinnlos

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
