Как отследить процесс?
От: Аноним  
Дата: 13.10.05 08:49
Оценка:
Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?
Re: Как отследить процесс?
От: splean.com Россия www.splean.com.ru
Дата: 13.10.05 09:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?



NtQueryInformationProcess

API функция. Находится в Ntdll.dll. Исп-ся для получения списка процессов в winnt операционках. в ME/98 не работает
описание искать в MSDN

Альтернативный вариант, при помощи
GetWindow

перебираешь все окна и ищешь окно со своим заголовком. Читать так же в MSDN
Разница между НЕ МОГУ и НЕ ХОЧУ лишь в самообмане...
Splean
Re[2]: Как отследить процесс?
От: Pavel Dvorkin Россия  
Дата: 13.10.05 09:11
Оценка:
Здравствуйте, splean.com, Вы писали:

SC>
SC>NtQueryInformationProcess 
SC>

SC>API функция. Находится в Ntdll.dll. Исп-ся для получения списка процессов в winnt операционках. в ME/98 не работает
SC>описание искать в MSDN

Зачем же так сложно ? Process32First/Next, работает везде, кроме NT4. А там EnumProcesses
With best regards
Pavel Dvorkin
Re[2]: Как отследить процесс?
От: Аноним  
Дата: 13.10.05 10:58
Оценка:
А если мне надо, чтобы во время работы моей программы никакой другой процесс, кроме моего не имел доступ к рабочей директории? Что тогда?
И мой софт должен работать как на Win95 так и на Win2003S.
Блин, а Process32First/Next в MSDN есть пример, но пишу на делфе и в каком модуле эти ф.-ии описаны?
Прийдется экспортировать? Описывать новые структуры?
Re[3]: Как отследить процесс?
От: Satrapp Россия  
Дата: 13.10.05 12:45
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Блин, а Process32First/Next в MSDN есть пример, но пишу на делфе и в каком модуле эти ф.-ии описаны?

А>Прийдется экспортировать? Описывать новые структуры?

MSDN:

Requirements
Client: Requires Windows XP, Windows 2000 Professional, Windows Me, Windows 98, or Windows 95.
Server: Requires Windows Server 2003 or Windows 2000 Server.
Header: Declared in Tlhelp32.h.
Library: Use Kernel32.lib.

Играет silent...
Re: Как отследить процесс?
От: m-a-s  
Дата: 13.10.05 15:59
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?


А у этой программы есть окно? Если есть, то можно попытаться найти его при помощи FindWindow
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Как отследить процесс?
От: Аноним  
Дата: 14.10.05 05:07
Оценка:
Здравствуйте, m-a-s, Вы писали:

MAS>Здравствуйте, <Аноним>, Вы писали:


А>>Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?


MAS>А у этой программы есть окно? Если есть, то можно попытаться найти его при помощи FindWindow


Окно есть. Но она в процессе работы открывает другие модальные окна при этом скрываясь.
Re[3]: Как отследить процесс?
От: _spin_ Россия  
Дата: 14.10.05 13:03
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Окно есть. Но она в процессе работы открывает другие модальные окна при этом скрываясь.


Ну и что? Скрытое окно — тоже окно, и находится так же как и видимое. FindWindow/FindWindowEx ещё работают нормально (или я что-то пропустил в обновлениях виндов? )
... <<Apocalyptica — Path vol2>>
Не восхрапи на работе, ибо храпом своим разбудишь начальника своего.
Re: Как отследить процесс?
От: tiam Россия  
Дата: 14.10.05 14:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?


Копай в сторону мютексов.
Re[3]: Как отследить процесс?
От: m-a-s  
Дата: 14.10.05 14:48
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, m-a-s, Вы писали:


MAS>>Здравствуйте, <Аноним>, Вы писали:


А>>>Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?


MAS>>А у этой программы есть окно? Если есть, то можно попытаться найти его при помощи FindWindow


А>Окно есть. Но она в процессе работы открывает другие модальные окна при этом скрываясь.


Если хайдится, то по классу основного окна это самое окно можно найти. Не важно видимое оно или нет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как отследить процесс?
От: Hacker_Delphi Россия  
Дата: 17.10.05 06:24
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Блин, а Process32First/Next в MSDN есть пример, но пишу на делфе и в каком модуле эти ф.-ии описаны?

А>Прийдется экспортировать? Описывать новые структуры?
толи ToolHelp толи ToolHlp32 — точно не помню — посмотри в папке $(DELPHI)\Source\ и подпапках...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[2]: Как отследить процесс?
От: Spaider Верблюд  
Дата: 25.10.05 09:14
Оценка:
Здравствуйте, splean.com, Вы писали:

SC>Здравствуйте, Аноним, Вы писали:


А>>Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?



SC>
SC>NtQueryInformationProcess 
SC>

SC>API функция.

Гон. Это — НЕ API. Она есть, да, до её можно дотянутся и вызвать. Но:

[NtQueryInformationProcess is available for use in Windows 2000 and Windows XP. It may be altered or unavailable in subsequent versions. Applications should use the alternate functions listed in this topic.]


Т.е. это, конечно, API, но это Native API, а не Win32 API. Разницу чувствуешь?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
--
К вашим услугам,
Re[3]: Как отследить процесс?
От: splean.com Россия www.splean.com.ru
Дата: 25.10.05 16:59
Оценка:
Здравствуйте, Spaider, Вы писали:

А>>>Так вот. Надо, чтобы моя программа не могла запускаться если запущена другая (не копия запускаемой). Нужно в списке процессов поискать название запущеной програмы. Но как это сделать? Куда копать?


SC>>
SC>>NtQueryInformationProcess 
SC>>

SC>>API функция.

S>Гон. Это — НЕ API. Она есть, да, до её можно дотянутся и вызвать. Но:


S>

S>[NtQueryInformationProcess is available for use in Windows 2000 and Windows XP. It may be altered or unavailable in subsequent versions. Applications should use the alternate functions listed in this topic.]


S>Т.е. это, конечно, API, но это Native API, а не Win32 API. Разницу чувствуешь?


Гон. Это — НЕ API
-- skipped --
Т.е. это, конечно, API


ты прав на все 100%
Разница между НЕ МОГУ и НЕ ХОЧУ лишь в самообмане...
Splean
Re[4]: Как отследить процесс?
От: Spaider Верблюд  
Дата: 26.10.05 07:23
Оценка:
Здравствуйте, splean.com, Вы писали:

SC>

SC>Гон. Это — НЕ API
SC>-- skipped --
SC>Т.е. это, конечно, API


SC> ты прав на все 100%


Согласен, забавно получилось. Однако, ты вырвал кусочки из контекста, отчего общий смысл исказился.
Вот так вот и рождаются "афоризмы" вроде:

В здоровом теле -- здоровый дух (С) Парацельс
... для нас самым важным искусством является кино (С) Чудак в кепке
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
--
К вашим услугам,
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.