AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi BringWindowToTop + "STRG C" = Clipboard Problem
Thema durchsuchen
Ansicht
Themen-Optionen

BringWindowToTop + "STRG C" = Clipboard Problem

Ein Thema von Buttercreme · begonnen am 13. Jun 2008 · letzter Beitrag vom 14. Jun 2008
Antwort Antwort
Buttercreme

Registriert seit: 10. Jun 2008
17 Beiträge
 
#1

BringWindowToTop + "STRG C" = Clipboard Problem

  Alt 13. Jun 2008, 11:48
Hallo Leute,

Ich habe ein Merkwürdiges Problem:

Wenn ich folgen Code an eine anwendung sende wird ein strg + c ausgeführt und ins clipboard gespeichert:

Delphi-Quellcode:
aktiv:=GetForegroundWindow;
BringWindowToTop(wnd1);
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(Ord('C'), 0, 0, 0);
keybd_event(Ord('C'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
sleep(1);
Blöd ist das ich dann den Fokus des Programms verliere welches ich momentan aufhabe. Also den Fokus wieder zurücksetzen (letzte Zeile angefügt):

Delphi-Quellcode:
aktiv:=GetForegroundWindow;
BringWindowToTop(wnd1);
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(Ord('C'), 0, 0, 0);
keybd_event(Ord('C'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
sleep(1);
BringWindowToTop(wnd1);
allerdings ist dann mein clipboard leer. Woher kommt das denn?!


P.S.: Ist echt super schwierig ein STRG + C an ein Window zu senden.. Hab schon echt alles probiert und anscheinend geht es nur mir keybd_event und den Focus vorher auf das Window setzen. Aber wie gesagt mein Programm läuft im Hintergrund und ich möchte nicht das ich beim normalen Arbeiten ständig den Fokus verliere den ich aktuell habe.

Cheers

Buttercreme
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 13. Jun 2008, 12:18
Warum liest du den Text nicht direkt aus mit Hier im Forum suchenWM_GETTEXT oder kopietrst in direkt mit Hier im Forum suchenEM_COPY in die Zwischenablage?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Buttercreme

Registriert seit: 10. Jun 2008
17 Beiträge
 
#3

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 13. Jun 2008, 12:48
Hallo Luckie,

Leider funktionier ein

SendMessage(wnd1, WM_GETTEXT, WM_COPY, 0); nicht.

Ein

PostMessage(wnd1, WM_KEYDOWN, VK_DOWN, 0); allerdings schon

WM_COPY wäre auf jeden fall die beste Lösung. Leider bekomme ich das aber irgendwie nicht hin ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 13. Jun 2008, 12:50
Zitat von Buttercreme:
Hallo Luckie,

Leider funktionier ein

SendMessage(wnd1, WM_GETTEXT, WM_COPY, 0); nicht.
Man muss die Funktion natürlich schon richtig anwenden. Und dass das, was du da machst Blödsinn ist sollte dir eigentlich auch klar sein. Lies mal die Dokumentation zu MSDN-Library durchsuchenSendMessage, was da für Parameter hingehören. Und nicht zumsonst habe ich die Delphisuche Verlinkt. Die sollte man eventuell auch mal nutzen und anklicken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Buttercreme

Registriert seit: 10. Jun 2008
17 Beiträge
 
#5

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 13. Jun 2008, 13:47
Die Suche hab ich ja benutzt. Und jeder Thread endet damit das jeder irgendwie keyboard events sendet. Irgendwie ist das ganze aber nicht praktikabel ...

Ein WM_GETTEXT holt sich den ganzen Text aus einem Window.

Und beim WM_COPY gibt es keine weiteren Parameter. Also kann es ja nur :

SendMessage(crmwnd,WM_COPY , 0, 0); sein.

Ich versuche bei einer Java Applikation per VK_DOWN etc. an ein bestimmtes Feld zu kommen (das funktioniert auch schon). Leider bekomme ich den Inhalt des Feldes nicht in das Clipboard ohne keyb Events Und das würde den normalen Betrieb zu sehr einschränken / irritieren (z.B. was passiert wenn bei der Abfrage der Benutzer eine Taste gedrückt hält usw...).

Ich suche schon seid heute morgen nach einer Lösung und greife nach jedem Strohhalm... Leider komme ich nicht weiter.

Cheers

Buttercreme
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 13. Jun 2008, 20:23
Zitat von Buttercreme:
SendMessage(crmwnd,WM_COPY , 0, 0);
Richtig und dann hast du den Text von dem Texteingabefeld in der Zwischenablage, so fern das Handle stimmt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Buttercreme

Registriert seit: 10. Jun 2008
17 Beiträge
 
#7

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 14. Jun 2008, 15:46
Hallo Luckie,

Leider läuft das Programm in einer SandBox (Java Applikation) und er nimmt das WM_COPY wohl nicht richtig an (Hab ja leider nur das Handle vom Hauptfenster). Komisch ist nur das VK_UP etc. funktionieren ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 14. Jun 2008, 19:59
Wenn du das Handle vom Hauptfenster hast, dass kannst du doch auch das Kindfenster finden mit MSDN-Library durchsuchenFindChildWindow.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 14. Jun 2008, 20:09
Moin Buttercreme,

ich habe schon Java-Anwendungen gehabt, bei denen STRG-C/V so schon nicht richtig funktioniert haben (mal ging's, mal nicht).
Ob das also mit der von Dir genutzten Anwendung, wie gewünscht, zum Laufen zu bekommen ist, ist wohl nicht sicher.
Dazu müsste man wissen, wie die Bestandteile des Fensters dargestellt werden.
Werden normale Windows-Controls verwendet, könntest Du diese über Luckies Tip finden, und dann direkt ansprechen (z.B. WM_GETTEXT), aber ich fürchte mal, dass die Java-Runtime hierfür eine andere Lösung (=Controls) verwendet.
Es wäre ja ziemlich mühsam für jede Plattform, auf der ein Java-Programm laufen soll, die Fenster mit den plattformspezifischen Möglichkeiten darzustellen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: BringWindowToTop + "STRG C" = Clipboard Proble

  Alt 14. Jun 2008, 20:23
Die Information, dass es sich um ein Java Programm handelt, kommt auch etwas spät.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 06:23 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