AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Profi-Hilfe fürs debuggen

Ein Thema von Harry M. · begonnen am 20. Apr 2005 · letzter Beitrag vom 20. Apr 2005
Antwort Antwort
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#1

Brauche Profi-Hilfe fürs debuggen

  Alt 20. Apr 2005, 05:33
ich will mit SendCopyData text an eine andere anwendung abgeben. die beiden beispiel programme von den schweitzern, den link dazu findet man hier irgenwo im forum, habe ich mir gezogen und versucht den code nach meinem bedarf zu ändern. ist aber leider nicht wirklich was geworden. die orginale beipiele laufen einwandfrei. jetzt habe ich die orginal-zeile
hTargetWnd := FindWindow(nil,PChar('Message Receiver')); folgendermasen abgeändert
hTargetWnd := FindWindow(nil,PChar('TEST.txt - Editor')); normaler weise sollte doch nun der text an notepad abgegeben werden. tut es aber nicht. es kommt aber auch nicht die fehlermeldung, das das fenster nicht gefunden wird. es pasiert einfach nichts. ich habe dann mal einen haltepunkt in der funktion
Delphi-Quellcode:
procedure TForm1.SendCopyData(hTargetWnd: HWND; ACopyDataStruct:TCopyDataStruct);
begin
  if hTargetWnd <> 0 then
    SendMessage(hTargetWnd, WM_COPYDATA, Longint(Handle), Longint(@ACopyDataStruct))
  else
    ShowMessage('No Recipient found!');
end;
gesetzt um die werte in hTargetWnd zusehen. dazu habe ich mir zuvor die fensterliste mit winsight angesehen. beim 1 versuch konnte ich den titel "'TEST.txt - Editor" darin finden. bei jedem weiteren aber nicht mehr obwohl notepad geöffnet war. ich habe mir mal dann die sache mit so einem demo-programm aus dem kochbuch 7 angesehen wo man auch die fensterlist bekommt. darin habe ich dann das notepad mit dem titel gefunden. es sind die selben werte wie im debugger. ich habe mal die sache als screenshotes angehängt. ich hoffe jemand von euch weiß wo mein problem liegt.

ich habe es auch schon mit word getestet, weil ich dachte das notepad das nicht kann... (daten von andren programmen empfangen) ist aber das gleiche.
Angehängte Dateien
Dateityp: rar debbug_799.rar (107,4 KB, 5x aufgerufen)
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#2

Re: Brauche Profi-Hilfe fürs debuggen (prob gelöst)

  Alt 20. Apr 2005, 09:40
so nach über 14 stunden suche habe ich es endlich gefunden das zauberwort heisst  PostMessage dazu bräuchte ich aber eine VOLLSTÄNDIGE liste der virtuellen tastaturcodes, weiß jemand wo ich die bekomme. in google habe ich schon gesucht ca 1 std. aber nicht wirklich eine VOLLSTANDIGE liste gefunden. sowie eine funktion die mir die die komponeten (edit, memo, listbox) der anderen anwendung ausliest. das gefundene beispiel geht nämlich (wirklich) nur mit notepade und dort wird 'edit' angesprochen
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Brauche Profi-Hilfe fürs debuggen

  Alt 20. Apr 2005, 09:55
Nimm doch die Delphi-Hilfe. Such mal nach virtuellen Tastencodes.
imho ist die Vollständig.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Brauche Profi-Hilfe fürs debuggen

  Alt 20. Apr 2005, 10:41
Zitat von Harry M.:
jetzt habe ich die orginal-zeile
hTargetWnd := FindWindow(nil,PChar('Message Receiver')); folgendermasen abgeändert
hTargetWnd := FindWindow(nil,PChar('TEST.txt - Editor')); normaler weise sollte doch nun der text an notepad abgegeben werden. tut es aber nicht. es kommt aber auch nicht die fehlermeldung, das das fenster nicht gefunden wird. es pasiert einfach nichts. [..]
Delphi-Quellcode:
procedure TForm1.SendCopyData(hTargetWnd: HWND; ACopyDataStruct:TCopyDataStruct);
begin
  if hTargetWnd <> 0 then
    SendMessage(hTargetWnd, WM_COPYDATA, Longint(Handle), Longint(@ACopyDataStruct))
  else
    ShowMessage('No Recipient found!');
end;
gesetzt um die werte in hTargetWnd zusehen.
Das kann nicht gehen. Und es kommt auch keine Fehlermeldung, dass das Fenster nicht gefunden wurde, weil es gefunden wurde. Warum nichts ankommt im Notepad ist, dass du zwar eine Nachricht WM_COIPYDATA an Notepad schickst, aber selbiges damit nichts anfagen kann, weil es diese Nachricht gar nicht bearbeitet, wenn sie ankommt.

Wie das mit WM_COPYDATA funktioniert kannst du dir hier angucken:
http://www.luckie-online.de/Delphi/S..._COPYDATA.html

Beide Programme müssen dafür aufeinander abgestimmt sein.

Aber eigentlich hättest du das selber sehen können, wenn du dir das mal näher angeguckt hättest.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#5

Re: Brauche Profi-Hilfe fürs debuggen

  Alt 20. Apr 2005, 13:32
lieber luckie...

war ich doch auch auf deiner seite und habe nach einer passenden lösung gesucht. auf den geposteten link von dir bin ich aber nicht gestoßen. ich wußte das das fenster gefunden wurde. steht ja auch im debugger. das der empfänger "zwangsmässig" dafür vorgesehen sein musste dahinter bin ich nicht gestiegen. ich dächte das geht mit jeder anwendung. postmessage war das richtige was ich gesucht hatte. nur wenn man nicht genau weiß wie das heißt was man sucht bzw braucht wirds schwer. ich muß jetzt nur noch sehen ob das in meiner anwendung endgültig verwenden kann. aber dafür sind ja die nächsten 14 std da
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz