Autor Beitrag
mandawar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 25

Win XP, Suse 9.0
3.0
BeitragVerfasst: Mo 22.03.04 19:38 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button2: TButton;
    Timer1: TTimer;
    Panel1: TPanel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    Shift_Color, Shift_Color2: TColor;
  public

  end;

var
  Form1: TForm1;

const
  X = 509;
  Y = 159;

implementation

{$R *.dfm}

// button1click
//
procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

// desktopcolor
//
function DesktopColor(const X, Y: integer): TColor;
var
  C: TCanvas;

begin
  C := TCanvas.Create;
  try
    C.Handle := GetWindowDC(GetDesktopWindow);
    Result := GetPixel(C.Handle, X, Y);
  finally
    FreeAndNil(C);
  end;
end;


// button2click
//
procedure TForm1.Button2Click(Sender: TObject);
begin
  shift_color := $00EA00;   //Farbe nach der kontrolliert werden soll
  Timer1.Enabled := True;
end;

// timer1timer
//
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Panel1.Color := DesktopColor(X, Y);
   if Panel1.Color = shift_color then begin     //wenn gescannte Farbe = der zu kontrollierenden Farbe
     SetForegroundWindow(handle);               // Senden der Taste "A" an die laufende Applikation   (hoff ich)
     keybd_event(VkKeyScan('A'), 100);
     keybd_event(VkKeyScan('A'), 1, KEYEVENTF_KEYUP, 0);
     {keybd_event(VK_NUMLOCK, 1, 0, 0);
     keybd_event(VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0);  }

   end;
end;

// button3click
//
procedure TForm1.Button3Click(Sender: TObject);   //Stopbutton
begin
  Timer1.Enabled:= False;                           //Screenkontrolle: aus
end;
{=======================================================}
end.



Das Problem liegt darin, dass er das "A" nicht an das andere Programm schickt, sondern nur das Delphi-Programm wieder in den Vordergurnd rückt, und naja... das ist nicht was ich will...
Was mach ich falsch???
Mandawar

Moderiert von user profile iconPeter Lustig: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von mandawar am Di 23.03.04 08:41, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 22.03.04 19:53 
Hallo!

Bitte ändere den Titel des Topics da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:

Richtlinien hat folgendes geschrieben:

1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]

Einfach oben bei deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!

Gruß Peter Lustig

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".