Avatar billede ylwen Nybegynder
08. september 2002 - 09:30 Der er 4 kommentarer og
1 løsning

Se om et program kører

Hvordan kan jeg tjekke om et et program kører. Jeg skal se om programmet kører og ellers skal det startes.
Avatar billede iceworld.tk Nybegynder
08. september 2002 - 09:53 #1
Det kører som en Proces dvs. du trykker Ctr-Alt-Del og så kan du se om det er der ... hvis du ikke ved hvad det hedder så genstart computeren tryk Ctr-alt-del og se / skriv dem ned start så programmet , og se om der kom en ny proces !
Avatar billede ylwen Nybegynder
08. september 2002 - 10:00 #2
Øhhh. Det var ikke helt det jeg mente. Prøver lige at forklare mig lidt bedre.

Jeg kører en server aplikation, den crasher nogen gange. Jeg vil så lave et lille program der hele tiden holder øje med om mit server program kører. Kører det ikke bliver det startet igen.
Avatar billede yousif Nybegynder
08. september 2002 - 10:11 #3
iceworld.tk> "Du er her : Eksperten : Programmering : Delphi" ;)
Avatar billede hermandsen Juniormester
08. september 2002 - 11:13 #4
Tyvstjålet fra hjælpen:

The FindWindow function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows.

HWND FindWindow(

    LPCTSTR lpClassName,    // pointer to class name
    LPCTSTR lpWindowName     // pointer to window name
  );   


Parameters

lpClassName

Points to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpClassName; the high-order word must be zero.

lpWindowName

Points to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.



Return Values

If the function succeeds, the return value is the handle to the window that has the specified class name and window name.
If the function fails, the return value is NULL. To get extended error information, call GetLastError
.

See Also

EnumWindows, FindWindowEx, GetClassName, GlobalAddAtom

Altså bliver det noget i retning af:
FindWindow('ProgrammetsCaption', nil);

Hvis retur-værdien af ovenstående funktion er nil, så er programmet ikke fundet... Jeg er ikke 100% sikker på koden da jeg aldrig selv har haft brug for funktionen, og så har jeg heller ikke Delphi åbnet! :)


Ellers kan du prøve dette:

unit Unit1;

interface

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

type
  PFindWindowStruct = ^TFindWindowStruct;
  TFindWindowStruct = record
    Caption : string;
    ClassName : string;
    WindowHandle : THandle;
end;

  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation


{$R *.DFM}

procedure EnumWindowsProc(hWindow : hWnd;
lParam  : LongInt);
{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
var
  lpBuffer : PChar;
begin
  GetMem(lpBuffer, 255);

  try
    if GetWindowText(hWindow, lpBuffer, 255) > 0 then
      Form1.ListBox1.Items.Add(lpBuffer);
  finally
    FreeMem(lpBuffer, sizeof(lpBuffer^));
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  WindowInfo: TFindWindowStruct;
begin
  EnumWindows(@EnumWindowsProc, LongInt(@WindowInfo));
end;

Så er det bare at kigge i listen om programmet kører! ;)
Avatar billede ylwen Nybegynder
08. september 2002 - 11:35 #5
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester