Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - STRG + C geht nicht - spinn ich jetzt?
matze - Fr 11.02.11 21:43
Titel: STRG + C geht nicht - spinn ich jetzt?
Hallo.
Ich habe heute von einem Kunden einen Anruf bekommen, dass Copy&Paste in meiner Anwendung nicht funktionieren.
Nachdem ich das nicht glauben konnte (bei mir auf dem Rechner gehts) habe ich mich per Teamviewer auf seinen Rechner verbunden und mir das angeschaut.
Ergebnis:
Wenn ich via Teamviewer von meinem Rechner aus STRG+C drücke, gehts auch beim Kunden. Wenn er das drückt nicht.
Darauf hin, habe ich ein kleines Testprojekt erstellt, das nur aus folgenden Zeilen besteht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.ListView1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (ssCtrl in Shift) and (key = Ord('C')) then showmessage('Copy'); if (ssCtrl in Shift) and (key = Ord('V')) then showmessage('Paste'); end; |
Selbst das geht beim Kunden nicht.
Komischerweise geht aber Copy&Paste per Tastatur ganz normal auf diesem Rechner, nur eben nicht mit meinen Delphi-Programmen (Hinweis: Ich mache die Behandlung der Tastendrücke im OnKeyUp)
Mache ich da jetzt irgendeinen Riesenfehler und merke es nicht, oder hat jemand eine Idee?
Danke
Matze
Xion - Fr 11.02.11 21:58
http://www.youtube.com/watch?v=dnPMZgeBLWk&feature=related
Das könnte helfen.
Ansonsten wäre vielleicht noch GetAsyncKeyState interessant. Damit kriegst du ja auch "die Tastendrücke in andren Programmen" mit. Wenn du da auch kein Strg+C siehst, dann ist was faul ;)
Martok - Fr 11.02.11 22:00
Hat er vielleicht irgendwelche lustigen Shortcut-Tools installiert? NeMP's Mute-Funktion (Ctrl-Alt-+) hat bei mir lange Zeit die Tilde in jedem Delphi-Projekt (aber nicht in anderen!) blockiert. Vielleicht ist das der gleiche Effekt?
Nersgatt - Fr 11.02.11 22:17
Das Problem hatte ich auch schon mit Strg+A. Das ging nur auf einem Notebook nicht. Mit einer externen Tastatur ging es.
Das war eine Delphi.NET-Anwendung. Wir haben nie rausgefunden, warum es nicht geht.
bummi - Sa 12.02.11 01:09
Das ganze läuft nicht zufällig in einer Citrix-Umgebung, damit hatte ich ähnliche Probleme bei einigen Kunden.
Delete - Sa 12.02.11 02:57
Ich habe mir in Notepad++ eigene Makros definiert und mit einem Shortcut versehen, wenn jetzt ICQ läuft, welches die gleichen Shortcuts nutzt, dann funktionieren die Shortcuts in Notepad++ auch nicht. ich vermute, dass ICQ einen Keyboardhook installiert, so dass die Shortcuts von Notepad++ geschluckt werden.
matze - Sa 12.02.11 12:22
Da keiner meinen Code oben bemängelt hat, wird damit also alles stimmen ;-)
Also irgendwelche Shortcuts habe ich in meinem Programm nicht installiert. Auf dem Rechner des Kunden müsste ich also mal schauen. Ich finds nur extrem komisch, dass es wirklich nur mein Programm betrifft.
Ich schau also mal, was da noch an Programmen im Hintergrund läuft. Ansonsten bekommt er einfach ein Kontextmenü mit dem er kopieren soll. Dann halt nicht via Shortcuts. Da bin ich einfach Pragmatiker!
Danke euch allen!
Xion - Sa 12.02.11 12:38
Hast du es denn schonmal im OnKeydown/OnKeyPress probiert? Das ist immer etwas zickig. Kann sein dass dein "Emulator" mehr messages rausschickt als sein Windows.
Tranx - Sa 12.02.11 12:41
Wenn es wirklich nur auf seinem Rechner nicht funktioniert, dann kann es wirklich daran liegen, dass gewisse Shortcuts auf dem Rechner des Kunden die CopyPaste-Funktion blockieren. Vielleicht könntest Du ja testweise versuchen, eine andere Tastenkombination als Copy und Paste-Funktion zu definieren, nur um zu sehen, ob dies dann ebenfalls nicht funktioniert, oder nicht. (z.B.) (STRG+K und STRG+P) Ich gebe zu, es ist ein Krücke. Aber nur zu Testzwecken ganz hilfreich. Falls Du derartige Shortcuts nicht anderweitig in Deinem Programm definiert hast.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!