AGB  ·  Datenschutz  ·  Impressum  







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

PostMessage und Konstanten

Ein Thema von Xerogon · begonnen am 2. Mai 2010 · letzter Beitrag vom 5. Mai 2010
Antwort Antwort
Xerogon

Registriert seit: 28. Jan 2010
27 Beiträge
 
#1

PostMessage und Konstanten

  Alt 2. Mai 2010, 13:05
Hallo, Ich schreibe gerade an einer Dll, mit der man bequem Tasten senden kann.
Standart muss man ja die Hexzahlen eingeben ($41 für A usw.).

Das gefällt mir aber nicht. Ich will einfach nur A eingeben. Deswegen habe ich zu jedem Buchstaben Konstanten gesetzt

Delphi-Quellcode:
{===============================================================================
Autor: Markus S.  @  General Desert
DLL Version: 1.0.0

Funktionen:
  - GetHandle
  - INIRead
  - INIWrite
  - SendText
  - MouseClick
  - MemoryRead
  - MemoryWrite
  - TimeDiff
  - Shutdown
  - RecordMouse

==============================================================================}


library Main;

uses
  SysUtils, Windows, Messages, Classes, inifiles;

const
  A = $41;
  B = $42;
  C = $43;
  D = $44;
  E = $45;
  F = $46;
  G = $47;
  H = $48;
  I = $49;
  J = $4A;
  K = $4B;
  L = $4C;
  M = $4D;
  N = $4E;
  O = $4F;
  P = $50;
  Q = $51;
  R = $52;
  S = $53;
  T = $54;
  U = $55;
  V = $56;
  W = $57;
  X = $58;
  Y = $59;
  Z = $59;

  ENTER = $0D;
  SPACE = $20;
  SHIFT = $10;

  LBUTTON = $01;
  RBUTTON = $02;
Nun will ich einen text per PostMessage senden.

Delphi-Quellcode:
Procedure TUser.SendText(Handle: HWnd; Text: PChar; var Delay: longInt); stdcall;
var
  i: Integer;
  Zeichenlaenge: Integer;
  Save: TMaxLength;
begin
  Zeichenlaenge := Length(Text);
  for i := 1 to Zeichenlaenge do
  begin
    Save[i] := Text[i];

    //Taste senden
    PostMessage(Handle, WM_KEYDOWN, Save[i], 0);
Nur das ganze geht nicht. Also es sollte später mal so aussehen

Postmessage(Handle, WM_KEYDOWN, A, 0); //Sendet die taste A Danke
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: PostMessage und Konstanten

  Alt 2. Mai 2010, 13:31
Was heißt "geht nicht" ?
Lars
  Mit Zitat antworten Zitat
Xerogon

Registriert seit: 28. Jan 2010
27 Beiträge
 
#3

Re: PostMessage und Konstanten

  Alt 2. Mai 2010, 14:06
Integer und PChar sind inkompitable
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
295 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: PostMessage und Konstanten

  Alt 5. Mai 2010, 22:12
Moin auch

Postmessage(Handle, WM_KEYDOWN, A, 0); //Sendet die taste A Das sollte so funktionieren. Stimmt der Scan-Code?

Wichtig dabei ist, dass zum WM_KEYDOWN auch ein WM_KEYUP gesendet wird. Die Taste muss ja auch wieder losgelassen werden.

In der oberen Geschichte könnte man das so lösen:

Delphi-Quellcode:
var lCode : Word;

case Text[i] of //Ord('a') ist klarer zu lesen als die passende Zahl
  'a'..'z' : lCode := Ord(Text[i]) - Ord('a') + $41;

  else lCode := 0;
end;
if lCode > 0 then
begin
  //Taste senden
  PostMessage(Handle, WM_KEYDOWN, lCode, 0);
  PostMessage(Handle, WM_KEYUP, lCode, 0);
end;
Ist nur so eine Idee.


Stefan
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:44 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