Announcement

Collapse
No announcement yet.

Ein beliebiges Programm in einen Pausemodus setzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ein beliebiges Programm in einen Pausemodus setzen

    Hallo,<br>
    <br>
    ich möchte ein kleines Programm schreiben,das ein anderes Programm auf Knopfdruck in den Schlaf versetzt. Es muß unbedingt unter NT-Dos funktionieren. Kann ich das mit Delphi 5 bewerkstelligen?
    <br>
    Für Hilfe wäre ich sehr dankbar, da ich noch überhaupt keinen Ansatz habe.
    <br>
    Gruß,<br>
    Marco

  • #2
    Hallo ,

    ich habe es so gemacht:

    enablewindow(strtoint(Handle),false);

    Handle ist das Handle des Fensters!

    Dieses handle kriegt man so am besten :
    <PRE>

    procedure TForm1.EnumWindows1Click(Sender: TObject);
    begin
    listbox1.Clear;
    EnumWindows(@EnumWinProc,0);
    end;

    {Alle Fenster in Listbox auflisten}

    function EnumWinProc(Wnd: hWnd): Boolean; StdCall;
    var
    WinCaption : Pchar;
    WinHandle : string;
    begin
    GetMem(WinCaption, 255);
    try
    GetWindowText(Wnd, WinCaption, 255);
    Result := True;
    if (Trim(WinCaption) <> '') then
    begin
    WinHandle := IntToHex(Wnd, 6);
    Form1.ListBox1.Items.add(WinHandle + ' : ' + WinCaption);
    end;
    finally
    FreeMem(WinCaption, 255);
    end;
    end;

    {Fenster enabeln}

    procedure TForm1.Button6Click(Sender: TObject);
    var WinHandle : String;
    Item : string;
    begin
    if checkbox1.checked=false then begin
    if ListBox1.ItemIndex <> -1 then begin
    Item := ListBox1.Items[ListBox1.ItemIndex];
    WinHandle := Copy(Item, 1, Pos(' :', Item) - 1);
    end;
    end else begin
    if ListBox2.ItemIndex <> -1 then begin
    Item := ListBox2.Items[ListBox2.ItemIndex];
    WinHandle := Copy(Item, 1, Pos(' :', Item) - 1);
    end;
    end;enablewindow(strtoint('$'+Winhandle),true);
    end;

    {Fenster disablen}

    procedure TForm1.Button7Click(Sender: TObject);
    var WinHandle : String;
    Item : string;
    begin
    if checkbox1.checked=false then begin
    if ListBox1.ItemIndex <> -1 then begin
    Item := ListBox1.Items[ListBox1.ItemIndex];
    WinHandle := Copy(Item, 1, Pos(' :', Item) - 1);
    end;
    end else begin
    if ListBox2.ItemIndex <> -1 then begin
    Item := ListBox2.Items[ListBox2.ItemIndex];
    WinHandle := Copy(Item, 1, Pos(' :', Item) - 1);
    end;
    end;enablewindow(strtoint('$'+Winhandle),false);
    end;
    </pre>

    WICHTIG : Die funktion ENUMWINPROC muss nach dem variablenteil deklariert werden sonst geht garnichts!

    VAR
    ...:...;
    ...:...;

    function EnumWinProc(Wnd: hWnd): Boolean; StdCall;

    implementation

    {$R *.DFM}

    ...

    Comment


    • #3
      Noch was : ob es unter dos funktioniert weis ich nicht aber ich galube nicht da es api-befehle benutzt und die api unter dos nicht geladen wird

      Comment

      Working...
      X