| Autor |
Beitrag |
Flodding
      
Beiträge: 28
|
Verfasst: Mo 16.10.06 21:05
Hi Leute...
Ich bin der Floh
Soviel zu mir
Also ich hab schon echt viel gesucht und rumgeschaut... doch ein Problem"CHEN" (wie ich zuerst dachte) bekomme ich nicht in den griff.
Wie das Thema schon sagt... Es dreht sich um die SHIFT-Taste.
Ich habe ein Programm geschrieben, das ab und zu mal die SHIFT-Taste aktiviert, dann mal wieder DEAKTIVIEREN soll(te), und dann später nochmal aktivieren soll, zusammen mit der END-Taste. Okay... der erfahrene "Progger" weiß nu, dass ich einen Text markieren möchte. Jedoch erweist sich das (höchstwarscheinlich aufgrund eines Updates der Firma Micro$oft) als extrem schwer...
Nach EXTREM-Rescherschen im WWW bin ich dann auf dieses hier gestoßen:
support.microsoft.com/kb/813041
jetzt suche ich eine lösung dafür, dass die SHIFT-Taste nicht richig "losgelassen" wird von meinem Programm, wenn sie einmal gedrückt wurde (von dem Programm).
Ich hoffe einer kann helfen.
MFG
Floddy
Zuletzt bearbeitet von Flodding am Mo 16.10.06 21:46, insgesamt 1-mal bearbeitet
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mo 16.10.06 21:23
Was willst Du machen? Einen Text markieren? In deinem Programm? Oder in einem anderen?
_________________ Na denn, dann. Bis dann, denn.
|
|
Flodding 
      
Beiträge: 28
|
Verfasst: Mo 16.10.06 21:25
aus einem anderen programm soll der text aus zeile 6 markiert werden und dann kopiert...
die tastendrücke funzen alle perfekt... nur die shift-taste macht mir sorgen, denn die bleibt irgendwie immer so "halb" gedrückt... oder ganz :S das weis ich nciht... wenn ich das programm beende, dann MUSS ich einmal die LINKE SHIFT-Taste drücken damit ich nicht mehr NURNOCH GROß SCHREIBEN *druck* kann... 
|
|
Flodding 
      
Beiträge: 28
|
Verfasst: Di 17.10.06 12:35
hmm scheint wohl ein unbehebbares problem zu sein...
auch die aussage auf der MS seite , wo erwähnt wird, dass es einen bugfix dafür gibt stimmt nicht... ich habe nix gefunden, es soll in XP Service Pack 2 enthalten sein. Komisch das ich SP2 installiert hab, und es nicht geht :S
|
|
chrisw
      
Beiträge: 439
Erhaltene Danke: 3
W2K
D7
|
Verfasst: Di 17.10.06 13:35
Steht doch schon auf der Seite der MSDN : "An den Thread-Warteschlangen wird keine WM_KEYUP-Nachricht übermittelt ...."
Versuch doch mal SendMessage(.....WM_KEYUP...)
_________________ Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
|
|
Flodding 
      
Beiträge: 28
|
Verfasst: Di 17.10.06 13:52
sorry, aber geht dasein wenig deutlicher? ich hab gestern abend mit delphi angefangen, und vorher nur mit VB6 rumgemacht :S
|
|
chrisw
      
Beiträge: 439
Erhaltene Danke: 3
W2K
D7
|
Verfasst: Di 17.10.06 14:06
Daraus, dass Du nicht Selstart seltext usw. nutzt, schliesse ich, dass Du ein anderes Programm "fernsteuerst". Da du das kannst hast Du das Handle dieses Programm und mit etwas Suche nach "Sendmessage" dürfte es nicht alzu schwer sein, an dieses Handle eine Message WM_KEYUP zu schicken.
Ob das allerdings Dein Problem beseitigt, darüber bin ich mir nicht ganz im Klaren, da Deine "dürftige" Problembeschreibung mglw. das Problem ist.
Sorry falls ich etwas überspitzt bin.
_________________ Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
|
|
Flodding 
      
Beiträge: 28
|
Verfasst: Di 17.10.06 14:14
Also ich erklärs nochmal deutlicher...
Ich öffne eine textdatei... mein programm erkennt dies, und soll dan automatisch 6 Zeilen nach unten gehen, dann SHIFT+DEL drücken, danach STRG+C.
das mache ich mit diesen zeilen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| SendKeys('{DOWN}', True); SendKeys('{DOWN}', True); SendKeys('{DOWN}', True); SendKeys('{DOWN}', True); SendKeys('{DOWN}', True); SendKeys('{DOWN}', True); keybd_event(VK_SHIFT, 0, 0, 0); SendKeys('{END}', True); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_STRG, 0, 0, 0); SendKeys('C', True); keybd_event(VK_STRG, 0, KEYEVENTF_KEYUP, 0); |
okay...und beim ersten mal markieren geht es ja auch superklasse.
nur beim zweiten mal markiert er den text nicht mehr, und somit kopiert er diesen auch nicht mehr.
ich muss den befehl
Delphi-Quelltext 1:
| keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); |
wohl irgendwie verändern deiner aussage nach... nur ich weiss nicht wie.
MFG
Floddy
Moderiert von raziel: Delphi-Tags hinzugefügt
|
|
chrisw
      
Beiträge: 439
Erhaltene Danke: 3
W2K
D7
|
Verfasst: Di 17.10.06 14:17
Mit welchem Programm bzw welcher Komponente öffnest Du die TextDatei ?
_________________ Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
|
|
Flodding 
      
Beiträge: 28
|
Verfasst: Di 17.10.06 14:19
die geht von alleine auf... ist ein JAVA-Applet 
|
|
Flodding 
      
Beiträge: 28
|
Verfasst: Di 17.10.06 17:33
UPDATE :::
Das Programm funktioniert auf allen platformen... nur bei einigen Win2k und fast allen WinXp nicht...
ich fang bald an meine katzen zu melken :S
|
|
Flodding 
      
Beiträge: 28
|
Verfasst: Mo 30.10.06 09:52
Sorry für das doppelpost, aber weis denn wirklich niemand ne lösung?
|
|
|