AGB  ·  Datenschutz  ·  Impressum  







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

Postmessage Problem

Ein Thema von Serpentine · begonnen am 25. Nov 2008 · letzter Beitrag vom 1. Dez 2008
 
Serpentine

Registriert seit: 1. Sep 2007
32 Beiträge
 
Delphi 2005 Personal
 
#1

Postmessage Problem

  Alt 25. Nov 2008, 19:50
Hi Leute, ich habe folgenden Quelltext geschrieben, er ließ sich auch kompilieren, aber die Main Funktion (Button1Click funktioniert einfach nicht richtig), VK_END und VK_INSERT drückt er wohl aber die Zahlen nicht.

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ShellAPI, Menus, Appevnts, XPMan, ExtCtrls,
  ComCtrls,DateUtils;

const
  WM_TASKABAREVENT = WM_USER+1;

type
  TForm2 = class(TForm)
    PopupMenu1: TPopupMenu;
    disable1: TMenuItem;
    enable1: TMenuItem;
    close1: TMenuItem;
    CheckBox1: TCheckBox;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure close1Click(Sender: TObject);
    procedure enable1Click(Sender: TObject);
    procedure disable1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure TaskbarEvent(var Msg: TMessage);
    Message WM_TASKABAREVENT;
  public
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  end;

var
  Form2: TForm2;
  wnd:hwnd;

implementation

{$R *.dfm}

procedure delay(msec:longint);
var
  start,stop:longint;
begin
  start := gettickcount;
  repeat
  stop := gettickcount;
  application.processmessages;
  until (stop - start ) >= msec;
end;

procedure TForm2.WMSysCommand(var Message: TWMSysCommand);
begin
  if Message.CmdType and $FFF0 = SC_MINIMIZE then
  begin
    Hide;
  end
  else
    inherited;
end;

procedure TForm2.TaskbarEvent(var Msg: TMessage);
var Point : TPoint;
begin
  case Msg.LParam of
    WM_LBUTTONDBLCLK:
      begin
        form2.show;
      end;
    WM_LBUTTONUP:
      begin
      form2.show;
      end;
    WM_RBUTTONUP:
      begin
        SetForegroundWindow(Handle);
        GetCursorPos(Point);
        PopupMenu1.Popup(Point.x, Point.y);
      end;
  end;
end;



procedure TForm2.FormCreate(Sender: TObject);
var
  NotifyIconData: TNotifyIconData;
begin
  wnd := FindWindow(nil,pchar(edit3.text));
  Fillchar(NotifyIconData,Sizeof(NotifyIconData),0);
  NotifyIconData.cbSize := Sizeof(NotifyIconData);
  NotifyIconData.Wnd := Handle;
  NotifyIconData.uFlags := NIF_MESSAGE
    or NIF_ICON
    or NIF_TIP;
  NotifyIconData.uCallbackMessage := WM_TASKABAREVENT;
  NotifyIconData.hIcon := Application.Icon.Handle;
  NotifyIconData.szTip := 'AFK Buffer';
  Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;


procedure TForm2.FormDestroy(Sender: TObject);
var
  NotifyIconData: TNotifyIconData;
begin
  FillChar(NotifyIconData,Sizeof(NotifyIconData),0);
  NotifyIconData.cbSize := Sizeof(NotifyIconData);
  NotifyIconData.Wnd := Self.Handle;
  NotifyIconData.uFlags := NIF_MESSAGE
    or NIF_ICON
    or NIF_TIP;
  NotifyIconData.uCallbackMessage := WM_TASKABAREVENT;
  NotifyIconData.hIcon := Application.Icon.Handle;
  NotifyIconData.szTip := 'Punkt';
  Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
end;

procedure TForm2.disable1Click(Sender: TObject);
begin
checkbox1.checked:=true;
end;

procedure TForm2.enable1Click(Sender: TObject);
begin
checkbox1.checked:=false;
button1.click;
end;

procedure TForm2.close1Click(Sender: TObject);
begin
form2.close;
end;

procedure TForm2.Button1Click(Sender: TObject);
var i,delay0r:integer;
begin
delay0r:= strtoint(edit1.Text);
wnd := FindWindow(nil,pchar(edit3.Text));
if wnd=0 then begin
showmessage('Client not found!');
exit;
end;
application.ProcessMessages;
   PostMessage(wnd, WM_Keydown, VK_END, 0);
   PostMessage(wnd, WM_Keyup, VK_END, 0);
   sleep(50);
   application.ProcessMessages;
   PostMessage(wnd, WM_Keydown, $31, 0);
   PostMessage(wnd, WM_Keyup, $31, 0);
   sleep(delay0r);
   application.ProcessMessages;
   PostMessage(wnd, WM_Keydown, $32, 0);
   PostMessage(wnd, WM_Keyup, $32, 0);
   sleep(delay0r);
   application.ProcessMessages;
   PostMessage(wnd, WM_Keydown, $33, 0);
   PostMessage(wnd, WM_Keyup, $33, 0);
   sleep(delay0r);
   application.ProcessMessages;
   PostMessage(wnd, WM_Keydown, $34, 0);
   PostMessage(wnd, WM_Keyup, $34, 0);
   sleep(delay0r);
   application.ProcessMessages;
   PostMessage(wnd, WM_Keydown, $35, 0);
   PostMessage(wnd, WM_Keyup, $35, 0);
   sleep(50);
   application.ProcessMessages;
   PostMessage(wnd, WM_Keydown, VK_INSERT, 0);
   PostMessage(wnd, WM_Keyup, VK_INSERT, 0);
//repeat
//delay(strtoint(edit2.text)*1000);
//buffen;
//until checkbox1.checked=true;
end;



end.
Ich verstehe einfach nicht warum -.-
  Mit Zitat antworten Zitat
 


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:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz