powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Поиск процесса по handle
5 сообщений из 5, страница 1 из 1
Поиск процесса по handle
    #40117457
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно узнать, запущен ли процесс по номеру handle?
Что-то типа FindWindowA(номер handla).

Объясняю задачу:
Запускаем 5 одинаковых программ (например, Notepad.exe).
В каждую передаем какой-то параметр (1, 2, 3, 4, 5).
Через минуту нужно проверить, все ли программы работают.
В этот момент у нас есть array с пятью handle.
Как узнать, "работает" ли сейчас конкретный handle?
...
Рейтинг: 0 / 0
Поиск процесса по handle
    #40117482
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По handle'у процесса - разумеется можно
По непонятно какому "параметру 1,2,3,4,5" - это программист нужен
...
Рейтинг: 0 / 0
Поиск процесса по handle
    #40117484
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если handle это реальный handle windows (id) процесса, то AFAIK WaitForSingleObject должен работать.

Если параметр, это параметр командной строки, то можно попытаться прочитать CommandLine из процесса. Можно что-то более высокоуровневое, чем WinApi попробывать. Мне кажется, что должны быть утилиты, показывающие command line.

p.s.
https://www.google.com/search?q=get command line by process id&oq=get command line by process id&aqs=chrome..69i57j0i22i30l3j0i10i22i30.10934j0j15&sourceid=chrome&ie=UTF-8
...
Рейтинг: 0 / 0
Поиск процесса по handle
    #40117498
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Функция возвращает стринг всего запущенного (имя + handle).
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
OleObject wsh 
String 	ls_select, ls_stringprocess

wsh = CREATE OleObject 
wsh.ConnectToNewObject( "MSScriptControl.ScriptControl" ) 
wsh.Language="vbscript"

ls_select = ""+& 
"~n"+'Function SelectApplication'+& 
"~n"+' Dim ServicesSet'+& 
"~n"+' Dim Items'+& 
"~n"+' Set ServicesSet = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.")'+& 
"~n"+' Set Items = ServicesSet.ExecQuery("Select * from Win32_Process")'+& 
"~n"+' For Each Item in Items'+& 
"~n"+' SelectApplication = SelectApplication & Item.Name & " " & Item.Handle & ";"'+& 
"~n"+' Next'+& 
"~n"+'End Function	 '

wsh.AddCode(ls_select)
ls_stringprocess = wsh.Run("SelectApplication")

RETURN ls_stringprocess



2. Эта функция убивает процессы (хэндлы передаются в al_hndls[] )
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
OleObject wsh 
String 	ls_select_start, ls_select_end, ls_where_hndls, ls_or = ' OR'
integer	li_i

ls_where_hndls = 'where'

FOR li_i = 1 TO UpperBound(al_hndls)
	IF li_i = UpperBound(al_hndls) THEN
		ls_where_hndls += ' Handle = ' + string(al_hndls[li_i])
	ELSE
		ls_where_hndls += ' Handle = ' + string(al_hndls[li_i]) + ls_or
	END IF
NEXT

ls_select_start = 	'function terminateProgram() ~n ' + &
	 			'strComputer = "." ~n ' + &
 				'Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") ~n ' + &
 				'Set colItems = objWMIService.ExecQuery("Select * from Win32_Process '

ls_select_end = 	'") ~n ' + &
 				'For Each objItem in colItems ~n ' + &
 				'     objItem.Terminate ~n ' + &
 				'Next ~n ' + &
 				'end function ~n ' 

wsh = CREATE OleObject
wsh.ConnectToNewObject( "MSScriptControl.ScriptControl" )
wsh.language = "vbscript"
wsh.AddCode(ls_select_start + ls_where_hndls + ls_select_end)
			 
wsh.executestatement('terminateProgram()')

wsh.DisconnectObject()

DESTROY wsh
...
Рейтинг: 0 / 0
Поиск процесса по handle
    #40117499
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, handle, который возвращает функция "1" и handle FindWindowA не совпадают.
Но, "работает - не трогай!"
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Поиск процесса по handle
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (11): Анонимы (7), Bing Bot 1 мин., Yandex Bot 1 мин., CerebroSQL 5 мин., Google Bot 8 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]