Как проверить, запущена ли заданная программа - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите сделать программу каторая все время будет проверять включена ли программа каторая задана пользователем.=( 1) Запрашивает у путь пользователя и сам .exe например "C:\Servers\CW\srcds.exe"; 2) Пока программа работает она все время проверяет включена ли программа заданная пользователем;

Решение задачи: «Как проверить, запущена ли заданная программа»

textual
Листинг программы
{$mode objfpc}
 
uses Windows, jwatlhelp32, jwapsapi;
 
function CheckExe(what : string) : boolean;
var
   pe : PROCESSENTRY32;
   snap : HANDLE;
   path : array[0 .. MAX_PATH] of char;
   ph : HANDLE;
begin
   snap := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
   pe.dwSize := SizeOf(PROCESSENTRY32);
 
   result := false;
   if Process32First(snap, pe) then
   repeat
      ph := OpenProcess(PROCESS_VM_READ or PROCESS_QUERY_INFORMATION,
                        true, pe.th32ProcessID);
      GetModuleFileNameEx(ph, 0, path, MAX_PATH);
      result := (ansistring(path) = what);
   until (not Process32Next(snap,pe)) or result;
 
   CloseHandle(snap);
end;
 
var what : string;
begin
   write('path to check : '); readln(what);
   // what := 'D:\Program Files\Far2\Far.exe';
   writeln(CheckExe(what));
end.

Объяснение кода листинга программы

  1. В функции CheckExe проверяется, запущена ли заданная программа.
  2. Переменные, используемые в функции:
    • pe: содержит информацию о процессе.
    • snap: используется для получения снимка всех процессов.
    • path: массив, используемый для получения пути к исполняемому файлу процесса.
    • ph: дескриптор процесса, который используется для получения информации о процессе.
  3. Алгоритм работы функции:
    • Создается снимок всех процессов.
    • Перебираются все процессы в снимке.
    • Для каждого процесса открывается дескриптор процесса.
    • Получается путь к исполняемому файлу процесса.
    • Проверяется, совпадает ли путь с заданным путем.
    • Если процесс совпадает с заданным, функция возвращает true.
  4. В основной программе функции, заданной пользователем, присваивается значение 'D:\Program Files\Far2\Far.exe'.
  5. Вызывается функция CheckExe с заданным путем к исполняемому файлу.
  6. Результат проверки выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы