Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi sendkey methode umbauen (https://www.delphipraxis.net/121161-sendkey-methode-umbauen.html)

benny1452 23. Sep 2008 15:01

Re: sendkey methode umbauen
 
ich bekomme immernoch nur die Uhrzeit+Datum angezeigt :(
Ich bin ja schon die gane zeit am versuchen das auch mal selbst zu lösen...allerdings nur bei google bis eben.
Nunja und jetzt hab ich das Problem, dass ich ja immernoch diese Zeile als Ergebnis bekomme:

15:44 23.09.2008515:42 23.09.2008

nach der funktion GetTickCount hab ich gesucht...diese scheint nicht die blöde ausgabe zu verursachen.
alles was: time heißt hab ich rausgenommen oder umbenant und nun weiß ich beim besten wille nicht was zu dem Ergebniss führt.
Mir fallen auch leider keine anhaltspunkte mehr ein nach denen ich suchen könnte...

Naja und ausserdem beshcäftige ich mich mit delphi ja erst seit heute morgen :oops:

DeddyH 23. Sep 2008 15:16

Re: sendkey methode umbauen
 
Könntest Du das hier mal testen?
Delphi-Quellcode:
uses ShellAPI;

procedure EnterText(AText: String);
var lCount    : Integer;
    lScanCode : Smallint;
    lWithAlt,
    lWithCtrl,
    lWithShift : Boolean;
begin
  for lCount := 1 To Length(AText) Do
  begin
    lScanCode := VkKeyScan(AText[lCount]);
    //Ermitteln ob Shift gedrückt wurde
    lWithShift := lScanCode and (1 shl 8) <> 0;
    //Ermitteln ob Strg gedrückt wurde
    lWithCtrl := lScanCode and (1 shl 9) <> 0;
    //Ermitteln ob Alt gedrückt wurde
    lWithAlt  := lScanCode and (1 shl 10) <> 0;

    if lWithShift then
      keybd_event(VK_SHIFT, 0, 0, 0);
    if lWithCtrl then
      keybd_event(VK_CONTROL, 0, 0, 0);
    if lWithAlt then
      keybd_event(VK_MENU, 0, 0, 0);

    keybd_event(lScanCode, 0, 0, 0);
    keybd_event(lScanCode, 0, KEYEVENTF_KEYUP, 0);

    if lWithAlt then
      keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
    if lWithCtrl then
      keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
    if lWithShift then
      keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var jetzt: Cardinal;
begin
  if ShellExecute(0,'open','notepad.exe',nil,nil,SW_SHOWNORMAL) > 32 then
    begin
      jetzt := GetTickCount;
      while (GetTickCount - jetzt) < 3000 do
        begin
          Application.ProcessMessages;
          sleep(0);
        end;
      EnterText('Hallo Welt');
    end;
end;

benny1452 23. Sep 2008 15:24

Re: sendkey methode umbauen
 
uiiuui das klappt !
Prima....sogar mit erstellter .TXT Datei :)

dankeee


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.
Seite 3 von 3     123   

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