AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Simulation Strg+C geht nicht mehr unter Vista
Thema durchsuchen
Ansicht
Themen-Optionen

Simulation Strg+C geht nicht mehr unter Vista

Ein Thema von Logic · begonnen am 22. Jun 2008 · letzter Beitrag vom 5. Feb 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#11

Re: Simulation Strg+C geht nicht mehr unter Vista

  Alt 22. Jun 2008, 20:03
Zitat von Logic:
Ihr sagt immer schaut doch in der Hilfe, aber genau in den Hälfte der Threads genau das gleiche drin... aber gut gesucht hatte ich ja schon, das Ergebnis liefert 45 Treffern... soderle dann bin ich von oben nach unten druchgegangen.

Wenn man nach Bei Google suchenSendInput Delphi sucht, findet man eine Procedur SendAltTab.

Diese Procedur zeigt, wie man SendInput() verwenden kann.

Ich habe die Procedur ein wenig angepasst und daraus eine SendCtrlC Procedur gemacht.

Delphi-Quellcode:
procedure SendCtrlC();
var
  KeyInputs: array of TInput;
{$J+}const
  KeyInputCount: Integer = 0;{$J-}

procedure KeybdInput(VKey: Byte; Flags: DWORD);
  begin
    Inc(KeyInputCount);
    SetLength(KeyInputs, KeyInputCount);
    KeyInputs[KeyInputCount - 1].Itype := INPUT_KEYBOARD;
    with KeyInputs[KeyInputCount - 1].ki do
    begin
      wVk := VKey;
      wScan := MapVirtualKey(wVk, 0);
      dwFlags := KEYEVENTF_EXTENDEDKEY;
      dwFlags := Flags or dwFlags;
      time := 0;
      dwExtraInfo := 0;
    end;
  end;
begin
  KeybdInput(VK_CONTROL, 0);
  KeybdInput(Ord('C'), 0);
  KeybdInput(Ord('C'), KEYEVENTF_KEYUP);
  KeybdInput(VK_CONTROL, KEYEVENTF_KEYUP);
  SendInput(KeyInputCount, KeyInputs[0], SizeOf(KeyInputs[0]));
end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Logic
Logic

Registriert seit: 28. Nov 2003
132 Beiträge
 
Delphi 7 Personal
 
#12

Re: Simulation Strg+C geht nicht mehr unter Vista

  Alt 16. Jul 2008, 01:38
Hallo toms,

vielen Dank für deine Antwort und erstmal sorry, dass es so lang gedauert hat, bis ich antworten konnte.

Also der Code funktioniert perfekt danke. Habe aber durch einen Zufall herausgefunden, dass der alte Code dennoch funktioniert, es für mich aber den Anschein hatte, dass er es nicht täte.
Wenn das Programm gestartet wird wird der Focus von dem makierten Text dann weggenommen. Und das STRG+C sozusagen ins Leere geht.

(Zur Info, wenn das Programm gestartet wird, soll es eine Nummer die zuvor in einem anderen Programm makiert wurde, per STRG+C in die Zwischenablage holen).

Gibt es eine Möglichkeit vll. das zu verhindern?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#13

Re: Simulation Strg+C geht nicht mehr unter Vista

  Alt 16. Jul 2008, 07:02
Zitat von Logic:
Gibt es eine Möglichkeit vll. das zu verhindern?
Hallo, beim Start deines Programms den Fokus ermitteln und vor dem Ctrl+C den Fokus zurück setzen.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#14

Re: Simulation Strg+C geht nicht mehr unter Vista

  Alt 5. Feb 2009, 04:56
Handle ermitteln, und weiter mit Postmessage arbeiten...
Da braucht das Fenster keinen Focus und muss auch nicht im Vordergrund sein...


so dann ...

Delphi-Quellcode:
procedure sim_CtrlC;
begin
    keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);


    PostMessage(TargetHandle, WM_KEYDOWN, ord('C'), MapVirtualKey(ord('C'),0));
    PostMessage(TargetHandle, WM_KEYUP, ord('C'), MapVirtualKey(ord('C'),0));


    keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)
end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:01 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