Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];

Вниз

Определить, запущен ли exe, не составляя список процессов.   Найти похожие ветки 

 
Shakesbeer ©   (2007-06-26 11:55) [0]

Здраствуйте. Делюсь проблемой - как мне узнать, запущен ли конкретный (то есть я знаю путь к файлу) exe? Тут _http://delphi-faq.zoxt.net/732.htm есть решение этого вопроса. Так же полезные вещи я обнаружил и в "Королевстве Дельфи". Но все они так или иначе составляют список процессов, из которого определяеться нужный. В принципе, этого достаточно, но я уже "загорелся" проблемой - как обойти составление оного списка. Почитал описания ф-ций WinAPI, но скорей всего что-то упустил. Может кто знает решение - пожалуйста хоть намекните :)


 
Сергей М. ©   (2007-06-26 11:58) [1]


> как обойти составление оного списка


чем он тебе насолил ?)


 
Cj ©   (2007-06-26 12:03) [2]


> как мне узнать, запущен ли конкретный


а некоторые процессы могут себя и скрывать.


 
Shakesbeer ©   (2007-06-26 12:07) [3]

Это я понимаю. Но имееться ввиду то что врят ли будет прятаться - Винамп там, Ася...


 
Сергей М. ©   (2007-06-26 12:53) [4]


> Тут _http://delphi-faq.zoxt.net/732.htm есть решение этого
> вопроса


Это решение - для Маздая.
А у тебя - ХР.
А для ХР следует пользовать PSAPI, хотя и там строятся списки.


 
Rouse_ ©   (2007-06-26 12:53) [5]

Ну ежели тупо в лоб:

function IsFileRunnig(const Path: String): Boolean;
var
 hFile: THandle;
begin
 Result := False;
 hFile := CreateFile(PChar(Path),
   GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
 if hFile = INVALID_HANDLE_VALUE then
   Result := GetLastError = ERROR_SHARING_VIOLATION;
end;


 
Rouse_ ©   (2007-06-26 13:02) [6]

CloseHandle(hFile); еще добавить нужно ;)


 
Однокамушкин   (2007-06-26 13:06) [7]


> Сергей М. ©   (26.06.07 12:53) [4]
> Это решение - для Маздая.
> А у тебя - ХР.
> А для ХР следует пользовать PSAPI, хотя и там строятся списки.

Начиная с Win2000 Tool Help поддерживается и в NT-линейке, так что в XP работать будет...


 
Shakesbeer ©   (2007-06-26 13:06) [8]

Спасибо. Проверю на обеденном перерыве :)


 
Dimaxx ©   (2007-06-26 13:09) [9]

А разве GetModuleHandle не катит? Вернет либо хэндл процесса, либо INVALID_HANDLE_VALUE.


 
Rouse_ ©   (2007-06-26 13:18) [10]


> Dimaxx ©   (26.06.07 13:09) [9]
> А разве GetModuleHandle не катит? Вернет либо хэндл процесса,
>  либо INVALID_HANDLE_VALUE.

Сам пробовал?


 
Сергей М. ©   (2007-06-26 13:21) [11]


> Однокамушкин   (26.06.07 13:06) [7]


А я и не говорил про поддержку.
Да, поддерживается, но в список попадают не все процессы.


 
Shakesbeer ©   (2007-06-26 14:09) [12]


> Ну ежели тупо в лоб

:) не получилось.. хэндл возвращаеться вполне положительный. Если  есть время попробуйте сами
procedure TForm1.Button1Click(Sender: TObject);
begin
if  IsFileRunnig("C:\Program Files\Borland\Delphi6\Bin\delphi32.exe")
then showmessage("da") else showmessage("no");
end;

только не знаю какая делфя у вас...


 
Сергей М. ©   (2007-06-26 14:34) [13]


> не знаю какая делфя у вас


Ты еще спроси, в какого размера горошка у него рисунок на исподнем)


 
Shakesbeer ©   (2007-06-26 15:04) [14]

Спасибо Rouse_"у, подсказал ещё, что параметр GENERIC_READ меняуться на GENERIC_WRITE. Всё заработало.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
15-1198089746
serega
2007-12-19 21:42
2008.01.27
Установка


2-1199011387
Mister
2007-12-30 13:43
2008.01.27
Подскажите как можно копилировать звук


15-1198078227
Свой
2007-12-19 18:30
2008.01.27
Помогите с настройками delphi 2005 и IIS и asp.net


15-1198146970
Alkid
2007-12-20 13:36
2008.01.27
PIF-файл


1-1193240219
The X
2007-10-24 19:36
2008.01.27
Добавить в ComboBox графику





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский