![]() |
meldung eines anderen programms ermitteln?
hallo,
hab in der suche nix dazu finden können :-( naja - wie der titel schon sagt, möchte ich eine meldung eines anderen programmes auswerten. (meldungstext, meldungstite). bei der meldung handelt es sich um eine tmessageform (oder so). ich will damit meldungen in einem anderen programm behandeln, dazu muss ich aber erst wissen, was gemeldet wird ;-) danke für hilfe, heiopei |
Re: meldung eines anderen programms ermitteln?
*push*
hat keiner ne ahnung? nochmal: ich möchte meldungen, die in einem anderen programm angezeigt werden sollen abfangen, bzw. ihren meldungstext auswerten (also tmessageforms und nicht sendmessage-meldungen!) mfg, heiopei |
Re: meldung eines anderen programms ermitteln?
Guck dir mal folgende Funktionen an:
evtl solltest du dir auch Hooks ansehn wenn du benachrichtigt werden willst wann eine Box hochkommt... Greetz Boombuler |
Re: meldung eines anderen programms ermitteln?
ja, mit findwindow hab ich das handle für das fenster ermittlen können,
aber mit getwindowtext ging da nix. hab danach mit windowse das meldungsfenster angeschaut - der meldungstext is kein static / label, sondern er scheint direkt auf das canvas der form geschrieben werden (wie gesagt es wird eine TMessageForm erstellt ;-)) das mit den hooks hab ich mir auch schon gedacht, aber da hab ich leider nich wirklich ahnung, wie ich das angehen soll! (hab mir auch schon luckies tut durchgelesen :oops:) - hätte da vielleicht jemand nen vorschlag? tschüssi, heiopei |
Re: meldung eines anderen programms ermitteln?
TLabel sind keine STATICs sondern tun genau was du beschreibst und haben auch keine eigenen Fensterhandle. Es könnte sich also durchaus um ein TLabel handeln. Übrigens: warum schaust du nicht einfach in die Implementation. TMessageForm klingt doch sehr nach Delphi, oder?
|
Re: meldung eines anderen programms ermitteln?
Und wenn nichts geht, kann man doch immernoch den Text (im normalfall) per (simuliertem) STRG+C in die Zwischenablage verschieben. (oder irre ich mich da?)
Wobei ich dies nur als "letzte möglichkeit" ansehen würde, denn ich könnte es nicht "leiden", wenn ein Programm meine Zwischenablage ungewollt überschreibt ... ciao, Philipp |
Re: meldung eines anderen programms ermitteln?
Also wenn das mit Strg+C ginge, wäre das ein äußerst nützliches Feature dieser Komponente. Kannte ich aber noch nicht. Allerdings den Einwand in Sachen Zwischenablage überschreiben kann ich nur teilen.
|
Re: meldung eines anderen programms ermitteln?
naja, also da da anscheinend nichts mit handle... drinne is - wie würde das mit hooks gehen?!?
also wie kann ich so ne meldung abfangen und auswerten(und bei gelegenheit auch weitersenden)? mfg, heiopei |
Re: meldung eines anderen programms ermitteln?
Ich würde anzweifeln, daß es mit (Fenster-)Hooks geht, da die dich nur benachrichtigen sobald eine Nachricht hochpoppt. Das Problem, daß du dank fehlendem Handle nicht den Text auslesen können wirst, bleibt.
|
Re: meldung eines anderen programms ermitteln?
Zitat:
ciao, Philipp |
Re: meldung eines anderen programms ermitteln?
Moin Philipp,
ja, mit Windows-Messageboxen. Die von Delphi (z.B. ShowMessage, MessageDlg) sind aber keine Windows-Messageboxen. Mit denen funktioniert das nicht. Die Dialoge die Du meinst sind, IMHO, alle von der Klasse #32770. |
Re: meldung eines anderen programms ermitteln?
moin
könnte man die meldung nicht einfach in eine seperate datei schreiben und die auswerung von da aus vornehmen lassen? |
Re: meldung eines anderen programms ermitteln?
ja hallo,
wieder mal son alter beitrag von mir! Zitat:
das mit strg + c geht bei showmessage... nicht - hab ich ausprobiert! naja - mir fällt kein weiterer lösungsweg ein :-( mfg, heiopei |
Re: meldung eines anderen programms ermitteln?
Moin Heiopei,
der einzige Lösungsweg der mir dazu einfällt (nicht als Witz gemeint): Einen Screenshot von der Meldung durch ein OCR-Modul schicken. Allerdings hätte ich nicht mal eine Idee, wo man so ein Modul herbekommen kann, weder frei noch kostenpflichtig. |
Re: meldung eines anderen programms ermitteln?
ja, den lösungsweg hab ich mir auch schon gedacht - und ihn gleich wieder verdrängt ;-) :-(
tja, dann werd ich das wohl bleiben lassen :x das mit hooken geht sicher nicht?!? ps: was heißt orc-modul? mfg, heiopei |
Re: meldung eines anderen programms ermitteln?
Moin Heiopei,
OCR = Optical Character Recognition Dies wird in Programmen genützt, die, z.B., aus eingescannten Seiten Textdateien erstellen können (vereinfacht gesagt). Hierzu gehören, z.B., FineReader oder OmniPage. |
Re: meldung eines anderen programms ermitteln?
Zitat:
In meinem D05 & D7 Quellcode der Dialogs.pas steht mal
Delphi-Quellcode:
Ist das Aussagekräftig genug? Meine Tests bestätigen das ...
procedure TMessageForm.CustomKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if (Shift = [ssCtrl]) and (Key = Word('C')) then begin Beep; WriteToClipBoard(GetFormText); end; end; Zitat:
Aber wenns nur für ein einziges (unveränderliches) Programm ist, könnte man das ja "Quick & Dirty" machen ... :zwinker: :angel2: ciao, Philipp |
Re: meldung eines anderen programms ermitteln?
Moin Philipp,
zu dem Zeitpunkt als ich das geschrieben habe, hatte ich mit D5 gearbeitet, und damit geht es definitiv nicht. TMessageForm hat die, inzwischen nachgerüsteten, Methoden einfach nicht. Die sind offensichtlich, erst seit D6 vorhanden. |
Re: meldung eines anderen programms ermitteln?
Zitat:
ciao, Philipp |
Re: meldung eines anderen programms ermitteln?
Moin Philipp,
den Weg über die Zwischenablage halte ich aber eh' nicht für sinnvoll, ausser das Programm sichert den alten Inhalt, und stellt ihn nach dem Auslesen des Message-Textes wieder her. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 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