AGB  ·  Datenschutz  ·  Impressum  







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

away-Programm

Ein Thema von Neuni · begonnen am 2. Mär 2004 · letzter Beitrag vom 6. Aug 2006
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#21

Re: away-Programm

  Alt 2. Mär 2004, 19:34
Eintragung der Procedure zum versenden der simulierten Tasten:

Delphi-Quellcode:

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
  public
    { Public-Deklarationen }
  end;
Procedure für das versenden ! (unter implementation einfügen)

Delphi-Quellcode:
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
type
  TShiftKeyInfo = record
    shift: Byte;
    vkey: Byte;
  end;
  byteset = set of 0..7;
const
  shiftkeys: array [1..3] of TShiftKeyInfo =
    ((shift: Ord(ssCtrl); vkey: VK_CONTROL),
    (shift: Ord(ssShift); vkey: VK_SHIFT),
    (shift: Ord(ssAlt); vkey: VK_MENU));
var
  flag: DWORD;
  bShift: ByteSet absolute shift;
  i: Integer;
begin
  for i := 1 to 3 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
  end; { For } 
  if specialkey then
    flag := KEYEVENTF_EXTENDEDKEY
  else
    flag := 0;

  keybd_event(key, MapvirtualKey(key, 0), flag, 0);
  flag := flag or KEYEVENTF_KEYUP;
  keybd_event(key, MapvirtualKey(key, 0), flag, 0);

  for i := 3 downto 1 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0),
        KEYEVENTF_KEYUP, 0);
  end;
end;
Beispiel zum versenden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Simuliert die Linke Windows taste
  PostKeyEx32(VK_LWIN, [], False);

  // Simuliert den Buchstaben D
  PostKeyEx32(Ord('D'), [], False);

  // Simuliert die Tastenkombination Strg-Alt-C
  PostKeyEx32(Ord('C'), [ssctrl, ssAlt], False);
end;
Ist das von Swiss ich hoffe so hilft es dir mehr...
Christian Reber
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#22

Re: away-Programm

  Alt 2. Mär 2004, 19:35
Uuups..einmal zu viel


[gelöscht]
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#23

Re: away-Programm

  Alt 2. Mär 2004, 19:36
Hab dir den direkten Link rausgesucht...
Dominik Peters
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#24

Re: away-Programm

  Alt 2. Mär 2004, 19:54
@ hOnkibOnk: Bei mir kommen diese Fehler wenn ich das Programm strten will:


[Fehler] Unit1.pas(15): Ungenügende Forward- oder External-Deklaration: 'TForm1.PostKeyEx32'
[Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden


Mein Code:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
type
  TShiftKeyInfo = record
    shift: Byte;
    vkey: Byte;
  end;
  byteset = set of 0..7;
const
  shiftkeys: array [1..3] of TShiftKeyInfo =
    ((shift: Ord(ssCtrl); vkey: VK_CONTROL),
    (shift: Ord(ssShift); vkey: VK_SHIFT),
    (shift: Ord(ssAlt); vkey: VK_MENU));
var
  flag: DWORD;
  bShift: ByteSet absolute shift;
  i: Integer;
begin
  for i := 1 to 3 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
  end; { For }
  if specialkey then
    flag := KEYEVENTF_EXTENDEDKEY
  else
    flag := 0;

  keybd_event(key, MapvirtualKey(key, 0), flag, 0);
  flag := flag or KEYEVENTF_KEYUP;
  keybd_event(key, MapvirtualKey(key, 0), flag, 0);

  for i := 3 downto 1 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0),
        KEYEVENTF_KEYUP, 0);
  end;
end;


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
PostKeyEx32(Ord('D'), [], False);
end;

end.
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#25

Re: away-Programm

  Alt 2. Mär 2004, 19:59
Wie wäre es mit meiner Lösung???

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  SRUtils, StdCtrls;

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

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  SendKeys('Bin weg!');
end;

end.
Dominik Peters
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#26

Re: away-Programm

  Alt 2. Mär 2004, 20:08
is ja hammer, das geht !!!


Und wie mache ich die Eingabe Enter, also zum abschicken?

Danke @ Kinimod8
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#27

Re: away-Programm

  Alt 2. Mär 2004, 20:17
HI!

Probier mal hinter den String noch zu schreiben:

+#13#10 Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#28

Re: away-Programm

  Alt 2. Mär 2004, 20:35
Cool, geht vielen Dank...nun is mein Proggi fast fertig!!! Juhuuuuuu *freu*

Danke nochmal euch allen
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#29

Re: away-Programm

  Alt 3. Mär 2004, 13:38
Zitat von Neuni:
is ja hammer, das geht !!!


Und wie mache ich die Eingabe Enter, also zum abschicken?

Danke @ Kinimod8
0 Problemo! 8)
Dominik Peters
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#30

Re: away-Programm

  Alt 11. Mär 2004, 15:38
SendKeys(#13);

Damitt würdest Du das drücken der Taste Enter senden...
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 18:16 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