Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Text einer Fehlermeldung (Messagebox) in Delphi bekommen (https://www.delphipraxis.net/27538-text-einer-fehlermeldung-messagebox-delphi-bekommen.html)

EiRoGGe 11. Aug 2004 20:38


Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebe Delphi-Gemeinde,

nachdem ich mich jetzt auf der Suche nach Antwort den ganzen Nachmittag durchs WWW gewühlt habe, wende ich mich nun direkt an euch.

Zunächst einmal zum Anhang: Ist eine Fehlermeldung aus der Installation von Office 2003. Warum, wieso und weshalb die Fehlermeldung kommt ist ja für das Problem erstmal zweitrangig. Weiterhin ist die Fehlermeldung quasi erzwungen.

Was ich nun brauche ist der Text der in der Fehlermeldung (Messagebox) steht. Im Speziellen brauche ich die Pfadangabe welche Datei das Setup nicht finden kann.

Was ich bisher erreicht habe:

Ein Handle auf die Fehlermeldung zu bekommen habe ich mit FindWindow erfolgreich geschafft. Doch dann hört es auf. Was ich probiert habe sind GetDlgItemText() und GetWindowText(). Beide Funktionen ohne Erfolg.

Was wäre eine probate Lösung hierfür?

Mit bestem Dank :)

SirThornberry 11. Aug 2004 20:52

Re: Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
bei deiner spezellen Fehlermeldung kann ich nix genaues sagen. Wenn ich allerdings auf "Start->Ausführen->s:" gehe dann kommt bei nicht existierendem laufwerk "s" auch eine Fehlermeldung. Diese Fehlermeldung hat ein Static in dem der Text angezeigt wird. Nimm dir einfach mal ein programm mit dem du per mauszeiger die darunterliegende Fensterklasse ermitteln kannst. Wenn du damit den Text erreicht ist es auch möglich mit EnumWindowChilds an den Text heran zu kommen. (Luckie müsste so nen programm haben und auch ich hab schonmal ein programm namens "Componentfinder" gepostet mit dem sowas geht)

EiRoGGe 11. Aug 2004 21:03

Re: Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab mal den componentspy von AutoIt bemüht und selbiger liefert folgendes Resultat. (siehe Anhang)

c113plpbr 11. Aug 2004 23:11

Re: Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
Du hättest theoretisch auch einfach ctrl+c auf das meldungsfenster simulieren können, wodurch der inhalt der meldung in die zwischenablage kopiert wird. Dies funktioniert aber nur bei MessageBoxes.

ciao, Philipp

EiRoGGe 12. Aug 2004 05:07

Re: Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
wäre auch ein ansatz gewesen, danke.

dank der hinweise von SirThornberry im ICQ hats jetzt auch über den "alten" Weg geklappt :)

mytar 12. Aug 2004 07:25

Re: Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
Nein,

ich würde dir globales Exceptionhandling empfehlen.

Sieh dir dazu das Streams-Tutorial unter Delphi-Source.de an.

Link:
http://www.delphi-source.de/tutorial...ptions/?page=7

Teste es einfach mal aus. Mit E.Message kannst du auf die Fehlermeldung
zugreifen.

greetz
mytar

EiRoGGe 12. Aug 2004 17:08

Re: Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
Danke für den Tipp aber die jetzige Lösung find ich gut.

Mein nächstes Problem: Ich möchte gern automatisiert den mittleren Button der MessageBox klicken. Geht das auch über SendMessage Ereignisse?

Was ich bis jetzt probiert habe:

hWnd := FindWindow(nil,'Microsoft Office Professional Edition 2003');
hWnd := GetWindow(hWnd,GW_CHILD);
SendMessage(hWnd,WM_KEYDOWN,VK_TAB,1);
SendMessage(hWnd,WM_KEYUP,VK_TAB,1);
SendMessage(hWnd,WM_KEYDOWN,VK_RETURN,1);
SendMessage(hWnd,WM_KEYUP,VK_RETURN,1);

funktioniert leider nicht ;)

Tubos 12. Aug 2004 17:16

Re: Text einer Fehlermeldung (Messagebox) in Delphi bekommen
 
Eröffne bitte einen neuen Thread wenn du eine neue Frage hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 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