AGB  ·  Datenschutz  ·  Impressum  







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

Test-Programm

Ein Thema von TJDD · begonnen am 5. Sep 2005 · letzter Beitrag vom 13. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#1

Test-Programm

  Alt 5. Sep 2005, 16:29
Hi waollte mal fragen ob es ein Programm gibt das uz.b alle 5 min testen ob ein anderes programm am laufen ist und falls nicht das Programm starten kann

bsp

es lauft "sol.exe"(dumm ich weis)

das Programm soll dann alle 5 min testen o sol.exe lauft wenn nein soll sol.exe gestarten werde

kann mir das jmd sagen oder vlt sogar geben danke
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#2

Re: Test-Programm

  Alt 5. Sep 2005, 16:34
Hi,

suchst oder willst solch ein Programm machen?

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Test-Programm

  Alt 5. Sep 2005, 16:38
Falls du es selber programmieren willst guckst du hier oder suchst mal hiernach: Hier im Forum suchenShellExecute
Jan
  Mit Zitat antworten Zitat
Sergej

Registriert seit: 12. Jun 2003
Ort: Stuttgart
169 Beiträge
 
#4

Re: Test-Programm

  Alt 5. Sep 2005, 16:38
Also...


Programm starten

Prüfen ob ein Programm läuft


Und für den Rest reicht ein Timer...


Greetz Sergej
Ceterum censeo cartaginem esse delendam
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#5

Re: Test-Programm

  Alt 8. Sep 2005, 20:07
Delphi-Quellcode:
unit Unit1;

interface

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

const IC_CLICK = WM_APP + 201;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    ApplicationEvents1: TApplicationEvents;
    procedure ApplicationEvents1Minimize(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure Systray(var sMsg: TMessage); message IC_CLICK;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  NIM : TNotifyIconData;

implementation

{$R *.dfm}

var bclose : boolean;

function GetProcessID(Exename: string): DWORD;
var
  hProcSnap: THandle;
  pe32: TProcessEntry32;
begin
  result := 0;
  hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  if hProcSnap <> INVALID_HANDLE_VALUE then
  begin
    pe32.dwSize := SizeOf(ProcessEntry32);
    if Process32First(hProcSnap, pe32) = true then
    begin
      while Process32Next(hProcSnap, pe32) = true do
      begin
        if pos(Exename, pe32.szExeFile) <> 0 then
          result := pe32.th32ProcessID;
      end;
    end;
    CloseHandle(hProcSnap);
  end;
end;

function GetProcessHandleFromID(ID: DWORD): THandle;
begin
  result := OpenProcess(SYNCHRONIZE, False, ID);
  CloseHandle(result);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  bClose := True;
end;

procedure TForm1.Systray(var sMsg: TMessage);
begin
  inherited;
  if (sMsg.LParam = WM_LBUTTONDOWN) then
    begin
      Show;
      Shell_NotifyIcon(NIM_DELETE, @NIM);
      Application.Restore;
    end;
end;

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  Form1.FormStyle:=fsStayOnTop;
  Hide;
  with NIM do
    begin
      cbSize := SizeOf (nIM);
      Wnd := Handle;
      uID := 0;
      uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
      uCallbackMessage := IC_CLICK;
      hIcon := Application.Icon.Handle;
      szTip := 'Network';
    end;
    Shell_NotifyIcon(NIM_ADD, @NIM);
end;


procedure TForm1.Timer1Timer(Sender: TObject);
var
  hProcess: THandle;
  wf: DWORD;
begin
  bClose := False;
  while bClose = False do
  begin
    hProcess := GetProcessHandleFromID(GetProcessID('notepad.exe'));
    if hProcess = 0 then
       winexec(pchar('notepad.exe'),sw_shownormal)
    else
      label1.caption := 'Bereits offen';
    Application.HandleMessage;
  end;
end;

end.
Erst mal danke an alle die mir Antwort gaben

Habe bei dem obigen Quellcode noch ein Problem wenn ich das Programm satrte wenn es aus war versucht der Timmer das programm immer wieder neu zu öffnen also hab ich nachher zichtausend fenster offen

kann man das irgendwie ausschalten also wenn das Programm laüft mach nix öffnen??
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Test-Programm

  Alt 8. Sep 2005, 20:57
Zitat von TJDD:
...
Erst mal danke an alle die mir Antwort gaben

Habe bei dem obigen Quellcode noch ein Problem wenn ich das Programm satrte wenn es aus war versucht der Timmer das programm immer wieder neu zu öffnen also hab ich nachher zichtausend fenster offen

kann man das irgendwie ausschalten also wenn das Programm laüft mach nix öffnen??
Also in meinen Augen wird bei diesem Code notepad.exe nur einmal ausgeführt, lässt sich logicherweise aber auch nicht mehr schließen...
Jan
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#7

Re: Test-Programm

  Alt 9. Sep 2005, 11:09
Also ich kann nicht erkennen wieso er ein Programmm mehrmals öffnet
Weis ich auch net kapiere ist wenn das programm geschlossen wird warum direkt es dirket wieder geöffnet wird also normalerweise dürfte er wes erst nach der zeit wieder öffnen oder kannman das mit mner abfrage machen wenn es schon offen ist dann mache das testen net


kann mir jmd helfen??
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Test-Programm

  Alt 9. Sep 2005, 11:45
Also ich versteh beim besten willen nicht was du willst!
Der Code den du hast überprüft in einem Interval das du im Timer einstellen kannst ob dein Notepad läuft. Wenn es nicht läuft wird es geöffnet und das ist ja genau das was du wolltest, oder?
Und wenn nicht, was willst du denn dann überhaupt?
Jan
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#9

Re: Test-Programm

  Alt 9. Sep 2005, 16:01
Genau das will ich das macht es auch aber wenn es auf ist macht genau dieser Code das Programm nochmal und nochmal und nochmal... auf das will cih nicht ich will wenn das Programm nicht läuft das Program 1 einziges mal starten nicht so oft das Intervall erreicht wird

Beispiel
Inetervall: 5 sec
Programmstatus: aus

So das Programm testet nun nach 5 sec ob notepad läuft (nein)
so nun soll es notepade öffnen (macht es)
5 sec Später
das programm öffnet notepad wieder (es ist aber schon offen)
5 sec Später
das programm öffnet notepad wieder (es ist aber schon 2x offen)
5 sec Später
das programm öffnet notepad wieder (es ist aber schon 3x offen)
....


Dort liegt der Fehler
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Test-Programm

  Alt 9. Sep 2005, 16:37
Hmm...
Das Programm das ich aus deinem Code nachgebaut habe fuktioniert.
Ich kann mir das nicht recht erklähren. Könnte es sein das der Prozess nicht notepad.exe heißt sondern vielleicht NOTEPAD.EXE? Das ist mir nämlich mal untergekommen.
Ansonsten könntest du einfach mal dein Projekt Anhängen und ich teste es mal bei mir.
Jan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:28 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