AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

sendkey methode umbauen

Ein Thema von benny1452 · begonnen am 23. Sep 2008 · letzter Beitrag vom 23. Sep 2008
Antwort Antwort
Seite 1 von 3  1 23      
benny1452

Registriert seit: 23. Sep 2008
Ort: HH
11 Beiträge
 
#1

sendkey methode umbauen

  Alt 23. Sep 2008, 12:02
Guten Morgen,

Es geht um einen Text den ich automatisch abtippen lassen möchte.
Jedoch hab ich die sendkey methode in vba schon ausprobier, klappt auch super, nun wollte ich mal fragen ob mir jemand was zu der sendkeymethode hier in delpihi erklären kann...gegoogelt hab ich selber schon...bekomm auch zum beispiel diesen code hier:

Delphi-Quellcode:
procedure SendKeyString(KStr: String);
var
  Scan: SHORT;
  key: Byte;
  i: Integer;
begin
  for i := 0 to length(KStr) do begin
    key := Byte(Kstr[i]);
    Scan := MapVirtualKey(key, 0);
    keybd_event(key, Scan, 0, 0);
    keybd_event(key, Scan, KEYEVENTF_KEYUP, 0);
  end;
end;
Das ist jetzt irgendein Beispiel...kann mir einer den code so umbauen das an ein aktives fenster z.B: www.delphi.de geschickt wird ?
Noch besser wäre es natülich wenn mir einer das auch ein wenig erklärt

wenn ich auf: Datei->Neu->Neue VCL Anwendung gehe, dann ein Button erstelle, auf den dann ein doppelklick mache und dort den code einfüge kommen 3 Fehler (so führt man doch den code aus oder geht das auch anders?) :

[Pascal Fehler] Unit1.pas(40): E2029 Deklaration erwartet, aber Dateiende gefunden
[Pascal Fehler] Unit1.pas(12): E2065 Ungenügende Forward- oder External-Deklaration: 'TForm1.Button1Click'
[Pascal Fataler Fehler] Project2.dpr(5): F2063 Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

danke schonmal

gruß benny
  Mit Zitat antworten Zitat
Kalfany

Registriert seit: 28. Feb 2008
Ort: München
153 Beiträge
 
Delphi 2007 Professional
 
#2

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:08
Bitte dazu schreiben das ein Crosspost existiert
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#3

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:11
Huhu und Willkommen im Forum

Öhm, sieht so aus als wäre da was an der Prozedurdeklaration falsch. Kannst mal explizit deinen Sourcecode hier rein schreiben?
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
benny1452

Registriert seit: 23. Sep 2008
Ort: HH
11 Beiträge
 
#4

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:13
hehe woher weißt du das denn ?

jetzt wissen das ja gleich alle

Öhh welchen Sourcecode meinst du ? ich denk das war der schon ? brauch man nochwas um das prigramm ausführen zu können ?
ouh man bei Visual Basic war das alles so einfach

EDIT: Ich finds übrigens super, dass ich gleich so viele schnelle antworten bekomme
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#5

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:16
Viele Forumsmitglieder sind sowohl im delphi-Praxis als auch im delphi-Forum. Schick uns doch einfach mal den kompletten Quelltext, der in dem Formular steht, wenn du auf den Button doppelklickst.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
benny1452

Registriert seit: 23. Sep 2008
Ort: HH
11 Beiträge
 
#6

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:22
ah okay
hier hab ich mal den kompletten code....wobei ich überhaupt nicht weiß was und wofür der erste teil gut ist.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure SendKeyString(KStr: String);
var
  Scan: SHORT;
  key: Byte;
  i: Integer;
begin
  for i := 0 to length(KStr) do begin
    key := Byte(Kstr[i]);
    Scan := MapVirtualKey(key, 0);
    keybd_event(key, Scan, 0, 0);
    keybd_event(key, Scan, KEYEVENTF_KEYUP, 0);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#7

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:29
Okay, da haben wir doch schon das Problem. Wenn du auf einen Button klickst, erstellt dir die Entwicklungsumgebung automatisch eine Prozedur, welche beim einem Event (nämlich dem Klick auf den Button) ausgeführt wird. Diese Prozedur muss zunächst deklariert werden, also wird dem Compiler gesagt "Hallo, dieses Forumlar besitzt eine Methode, die so und so heißt, und folgende Parameter besitzt". Dies ist im oberen Teil der Fall:

procedure Button1Click(Sender: TObject); Später kommt dann die Implementierung der Prozedur, also die eigentliche Umsetzung, der Quelltext, der ausgeführt werden soll.
Dafür erstellt dir die Entwicklungsumgebung eine leere Prozedur, (die genauso heißen muss, wie vorher in der Deklaration)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin




end;
Diese hast du aber gelöscht. Der Compiler sieht also die Deklaration im oberen Teil deiner Unit, aber findet die Umsetzung, also die Implementierung nicht. Deswegen gibt es einen fehler.

//edit:

Du könntest das ganze z.B. so lösen:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure SendKeyString(KStr: String);
var
  Scan: SHORT;
  key: Byte;
  i: Integer;
begin
  for i := 0 to length(KStr) do begin
    key := Byte(Kstr[i]);
    Scan := MapVirtualKey(key, 0);
    keybd_event(key, Scan, 0, 0);
    keybd_event(key, Scan, KEYEVENTF_KEYUP, 0);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

  SendKeyString('test');

end;

end.
In diesem Beispielcode würde beim Klick auf den Button die Prozedur SendKeyString aufgerufen und der String 'test' übergeben.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
benny1452

Registriert seit: 23. Sep 2008
Ort: HH
11 Beiträge
 
#8

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:45
oaky nun hab ich beide Proceduren so benannt:

procedure Button1Click(Sender: TObject); Bekomme aber immernoch n haufen von fehlermeldungen:

[Pascal Fehler] Unit1.pas(32): E2003 Undefinierter Bezeichner: 'KStr'
[Pascal Fehler] Unit1.pas(40): E2029 Deklaration erwartet, aber Dateiende gefunden
[Pascal Fehler] Unit1.pas(12): E2065 Ungenügende Forward- oder External-Deklaration: 'TForm1.Button1Click'
[Pascal Fataler Fehler] Project1.dpr(5): F2063 Verwendete Unit '..\..\Desktop\Unit1.pas' kann nicht compiliert werden

Ich denk ma das ich jetzt statt: "KStr" -> "TObject" deklarieren müsste. Aber wie mach ich das ?

// NACH DEINEM EDIT:

also okay...nun bekomm ich nurnoch diese Fehlermeldung:

[Pascal Fehler] Unit1.pas(50): E2029 Deklaration erwartet, aber Dateiende gefunden
[Pascal Fataler Fehler] Project1.dpr(5): F2063 Verwendete Unit '..\..\Desktop\Unit1.pas' kann nicht compiliert werden

PS. übrigens ist die melung, dass es inzwischen ein neuen Beitrag gibt, ziemlich genial
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#9

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:46
Ich glaube ich habe am Schluss das "end." vergessen Habe es in meinem letzten Beitrag mal korrigiert.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
benny1452

Registriert seit: 23. Sep 2008
Ort: HH
11 Beiträge
 
#10

Re: sendkey methode umbauen

  Alt 23. Sep 2008, 12:53
okay prima....darauf hätt ich auch selbst kommen können ...^^

also nun klappt das shconmal ohne fehlermeldung, aber wo steht denn jetzt der text: `test`
ich muss doch lediglich z.B. wordpad öffnen und das dan als aktives fenster machen oder ?
Und wie lange hab ich dann vom ausführen unseres kleinen progs zeit das wordpad aktive zu setzten ?

danke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:28 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