Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mit nem timer alles minimieren (https://www.delphipraxis.net/99243-mit-nem-timer-alles-minimieren.html)

Tommy0014 9. Sep 2007 00:32


mit nem timer alles minimieren
 
Nabend,
ich hab ein problem ich will ein programm machen das nach der eingestellten zeit alle programme mimiert... so weit so gut... hab ein bissle gegoogelt und das gefunden was alle fenster minimieren lässt... nun hab ich das problem ich starte das programm und beim ersten mal minimiert er es ohne die eingestellte zeit zu berücksichtigen dann muss man das programm wieder maximieren und dannach gehts.. was weis nicht mehr weiter ich hab scho einiges versucht aber nichts geht...
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  m,i2,i: Integer;
  m2: Cardinal;


implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Interval := m2;
  KeyBd_Event(VK_LWIN, MapvirtualKey(VK_LWIN, 0), 0, 0);
  KeyBd_Event(Ord('M'), MapvirtualKey(Ord('M'), 0), 0, 0);
  KeyBd_Event(Ord('M'), MapvirtualKey(Ord('M'), 0), KEYEVENTF_KEYUP, 0);
  KeyBd_Event(VK_LWIN, MapvirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  m := StrToInt(Edit1.Text);
  i := StrToInt(Edit2.Text);
  i2 := i*1000;
  m2 := m*60*1000+i2;
  Timer1.Enabled := true;
end;

end.
kennt jmd das problem?

mfg Tommy

edit: ich habs... ich musste noch bissle was einbauen sorry kann geclosed werden... hier die lösung
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  m,t,i2,i: Integer;
  m2: Cardinal;


implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  case t of
  1: begin
  Timer1.Interval := m2;
  inc(t);
  end;
  2: begin
  KeyBd_Event(VK_LWIN, MapvirtualKey(VK_LWIN, 0), 0, 0);
  KeyBd_Event(Ord('M'), MapvirtualKey(Ord('M'), 0), 0, 0);
  KeyBd_Event(Ord('M'), MapvirtualKey(Ord('M'), 0), KEYEVENTF_KEYUP, 0);
  KeyBd_Event(VK_LWIN, MapvirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
  Timer1.Enabled := false;
  end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  m := StrToInt(Edit1.Text);
  i := StrToInt(Edit2.Text);
  i2 := i*1000;
  m2 := m*60*1000+i2;
  Timer1.Enabled := true;
  t := 1;
end;

end.

DGL-luke 9. Sep 2007 01:46

Re: mit nem timer alles minimieren
 
Hallo,

ändere das Design: setze den Intervall des Timers auf 1000 und prüfe im OnTimer-Ereignis, ob schon die gewünschte Zeit eingetreten ist.

Außerdem würde ich das mit MSDN-Library durchsuchenEnumWindows und MSDN-Library durchsuchenShowWindow machen, nicht indem ich eine tastenkombination sende.

Tommy0014 10. Sep 2007 12:51

Re: mit nem timer alles minimieren
 
danke da haste recht weil die tastenkombi funktoniert i-wie nicht wenn ich in einem game drin bin z.B. wc3

mfg
tommy


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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