AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Text aus fremder Anwendung läßt sich nicht kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text aus fremder Anwendung läßt sich nicht kopieren

Ein Thema von golisan · begonnen am 29. Jun 2012 · letzter Beitrag vom 9. Jul 2012
 
golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#1

Text aus fremder Anwendung läßt sich nicht kopieren

  Alt 29. Jun 2012, 11:22
Hallo Leute,

ich habe die Suchfunktion und Google schon bemüht aber alle gefundenen Lösungsansätze haben
mir leider nicht geholfen.

Vielleicht habt ihr ja einen Tipp:

Ich möchte an den Text aus einer fremden Anwendung kommen. Wie ist mir im Prinzip egal
Die Anwendung ist die Entwicklungsumgebung der Sprache NATURAL.(wie das aussieht, siehe Bild 1)
Ich habe alle möglichen Handles im Zugriff.
Die Fensterstruktur könnt' ihr auf Bild 2 sehen.
Der Text an den ich ran möchte, steht in der Fensterklasse "PgmEdtEditWin"
Die Properties des Fensters seht ihr in Bild 3 bis 5.
Wie es aussieht, hat das Fenster keine weiteren Fenster(Edits etc), also muss der Text ja wohl "da drin stecken"

Meine Idee war, an den Text über die Zwischenablage zu kommen.
Aber alle meine Versuche mit WM_COPY bzw. Tasten senden sind gescheitert.
Passiert nix

Etwas erschwerend kommt hinzu, dass mein Code per Hook aufgerufen wird.. ich weiß nicht, ob das einen Einfluss hat(Taste senden etc.)
(der Hook reagiert auf die rechte Maustaste bzw. auf das sich dann öffnende Popupmenü)
Hier mal ein Stück Code(ist nicht vollständig!)
Delphi-Quellcode:
if nCode = HC_ACTION then
    begin
      fillchar(cwps,Sizeof(CWPStruct),0);
      CopyMemory(@cwps, Pointer(lParam), SizeOf(CWPSTRUCT));
      GetClassName(cwps.hwnd, szClassName, SizeOf(szClassName));
      klasse := szClassName;
      if pos('NIDE', klasse) > 0 then
      begin
        case cwps.message of
        WM_INITMENU:
        begin
        focus := getfocus;
        GetClassName(focus, szClassName, SizeOf(szClassName));
        klasse := szClassName;
        if klasse = 'PgmEdtEditWinthen
        begin

          SendMessage(focus,WM_COPY , 0, 0);
          s := clipboard.AsText;
          MessageBox(0,pchar(s),'Info',0);

          // STRG A und STRG C senden
          Keybd_Event(VK_CONTROL,0,0,0);
          Keybd_Event(byte('A'),0,0,0);
          Keybd_Event(byte('A'),0,KEYEVENTF_KEYUP,0);
          Keybd_Event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
          sleep(200);
          Keybd_Event(VK_CONTROL,0,0,0);
          Keybd_Event(byte('C'),0,0,0);
          Keybd_Event(byte('C'),0,KEYEVENTF_KEYUP,0);
          Keybd_Event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);


          s := clipboard.AsText;
          MessageBox(0,pchar(s),'Info',0);
         end;
       end;
Habt ihr eine Idee?

Wenn ich per Winspector die Messages anschaue, die bei einem manuellen STRG A + C ausgelöst werden, sind da ein
Haufen WM_USER+Zahl dabei aber kein WM_COPY

Danke schon mal
Angehängte Grafiken
Dateityp: jpg Bild 1.jpg (96,1 KB, 66x aufgerufen)
Dateityp: jpg Bild 2.jpg (25,6 KB, 49x aufgerufen)
Dateityp: jpg Bild 3.jpg (36,8 KB, 45x aufgerufen)
Dateityp: jpg Bild 4.jpg (34,3 KB, 45x aufgerufen)
Dateityp: jpg Bild 5.jpg (27,6 KB, 32x aufgerufen)
  Mit Zitat antworten Zitat
 


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 23:32 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