Страница: 1 |
Вопрос: Как определить запущен ли файл | Добавлено: 18.07.04 10:20 |
Автор вопроса: ![]() |
Как определить запущен ли exe файл |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 18.07.04 10:42 |
Если свой используй
If App.PrevInstance Then MsgBox "Программа уже запущена" |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 18.07.04 11:31 |
Попробуй его стереть ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 373-509-101 Вопросов: 56 Ответов: 330 |
Профиль | Цитата | #3 | Добавлено: 18.07.04 17:32 |
А если сотрется? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 47 Ответов: 621 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 18.07.04 17:37 |
2Mihalыch: ну.. это уже детали ![]() Если уж развить тему удаления, то можно сначала файл куда-нибудь копировать, а потом уже пробовать удалять. Хотя эта система ламерская. Может кто знает еще способ как проверить запущен ли файл? |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 373-509-101 Вопросов: 56 Ответов: 330 |
Профиль | Цитата | #5 | Добавлено: 18.07.04 17:56 |
Простите, не удержался! Думаю можно попробовать так:
Private Const GWL_WNDPROC = -4, WM_GETMINMAXINFO = &H24, TH32CS_SNAPPROCESS = &H2, TH32CS_SNAPheaplist = &H1, TH32CS_SNAPthread = &H4, TH32CS_SNAPmodule = &H8, TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule, MAX_PATH As Integer = 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * MAX_PATH End Type Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Sub Command1_Click() ![]() ![]() ![]() Snap = CreateToolhelpSnapshot(TH32CS_SNAPall, 0) Proc.dwSize = Len(Proc) TheLoop = ProcessFirst(Snap, Proc) While TheLoop <> 0 If left(Proc.szExeFile, Len("имя файла.exe" ![]() 'файл запущен End If TheLoop = ProcessNext(Snap, Proc) Wend CloseHandle Snap End Sub |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 373-509-101 Вопросов: 56 Ответов: 330 |
Профиль | Цитата | #6 | Добавлено: 18.07.04 18:02 |
P. S. Пример взят с этого сайта |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 18.07.04 18:07 |
А если dll библиотека !? Прийдется просматривать еще у каждого процесса и dll'ки... должен быть способ проще ![]() ![]() |
Страница: 1 |
|