Вверх ↑
Этот топик читают: Гость
Ответов: 3349
Рейтинг: 233
#106: 2011-05-11 20:18:11 ЛС | профиль | цитата
О разрядности ОС
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#107: 2011-05-11 20:20:54 ЛС | профиль | цитата
Ivann писал(а):
О разрядности ОС

И как она будет работать в Win64
Тут надо делать, либо, все же, на NtQueryInformationProcess, либо искать альтернативу, но не CreateToolhelp32Snapshot

карма: 22

0
Ответов: 3349
Рейтинг: 233
#108: 2011-05-11 20:23:07 ЛС | профиль | цитата
nesco, А ты чего хотел для 32-х разрядного компилятора?
------------ Дoбавленo в 20.23:
Можно определять компилятор
Если FPC используем Win32 Api
Delphi - WMI
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#109: 2011-05-11 20:25:31 ЛС | профиль | цитата
Ivann писал(а):
А ты чего хотел для 32-х разрядного компилятора?

Причем здесь компилятор, когда мы ищем процессы
карма: 22

0
Ответов: 3349
Рейтинг: 233
#110: 2011-05-11 20:31:38 ЛС | профиль | цитата
WMI только пока на 100% отработал
------------ Дoбавленo в 20.31:
nesco писал(а):
Причем здесь компилятор, когда мы ищем процессы

32 разрядный компилятор компилирует 32-х разрядное приложение, которому WOW64 ограничивает кислород
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#111: 2011-05-11 20:32:57 ЛС | профиль | цитата
Ivann писал(а):
32 разрядный компилятор компилирует 32-х разрядное приложение

Можно подумать, этот же самый компилятор не компилирует код WMI
карма: 22

0
Ответов: 3349
Рейтинг: 233
#112: 2011-05-11 20:38:56 ЛС | профиль | цитата
nesco писал(а):
Можно подумать, этот же самый компилятор не компилирует код WMI

А в FPC юзать Win32Api
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#113: 2011-05-11 20:44:49 ЛС | профиль | цитата
Ivann, как ты себе это представляешь
карма: 22

0
Ответов: 3349
Рейтинг: 233
#114: 2011-05-11 21:23:05 ЛС | профиль | цитата
nesco писал(а):
NtQueryInformationProcess
Круто! Я эту функцию в Диспетчере задач нашел
------------ Дoбавленo в 21.23:
Все, я спать. Утро вечера мудренее.(с)
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#115: 2011-05-11 21:29:14 ЛС | профиль | цитата
Ivann писал(а):
Все, я спать

А что так рано, и кто проверять будет

Вот новая версия -- enumprocess_002.zip

Ivann, давай ссылку на последнюю версию WMI-компонента
карма: 22

0
файлы: 1enumprocess_002.zip [5.2KB] [227]
Ответов: 3889
Рейтинг: 362
#116: 2011-05-11 23:41:12 ЛС | профиль | цитата
nesco писал(а):
Можно подумать, этот же самый компилятор не компилирует код WMI
Как ни странно - да, именно так и нужно думать - не компилирует)) Ладно, не буду ёрничать. Суть в том, что наше приложение через WMI лишь шлёт запрос к серверу виртуальной базы данных (кстати, запрос-то, по сути, SQL-образный). Сравнение ну оооочень условное, только для понимания. Виртуальная "сеть" (по сути - через localhost) между сервером и клиентом и есть прослойка между 32bit (клиент) и 64bit (сервер БД), через которую они могут общаться.

Такой механизм выбран не случайно. WMI позволяет обращаться к вашей базе процессов из любой точки мира при условии настроенной сети и доступа, всё под контролем, типа
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#117: 2011-05-12 00:15:25 ЛС | профиль | цитата
1nd1g0 писал(а):
Суть в том, что наше приложение через WMI лишь шлёт запрос к серверу виртуальной базы данных

Собственно говоря, сходным образом работает и NtQueryInformationProcess. Если я не ошибаюсь, то эта функция шлет запрос к базе данных процессов, так что, ей тоже должно быть по деревне разрядность и компилятор на нее не влияет. И вообще, компилятор не должен никак влиять на вызовы API функций, тк по сути -- WinAPI есть интерфейсная надстройка над системой. Все зависит от конечных модулей библиотек и функций, которые мы вызываем. Так что, утверждение
Ivann писал(а):
А ты чего хотел для 32-х разрядного компилятора?
в корне неверно. А вопрос мой был именно с подвохом.
------------ Дoбавленo в 00.15:
1nd1g0, чувствуется влияние на вас ассемблера, когда от разрядности зависит весь код, что не скажешь о API, где мы используем высокоуровневые запросы к системе через адаптированные под нее библиотеки
карма: 22

0
Ответов: 3889
Рейтинг: 362
#118: 2011-05-12 00:40:33 ЛС | профиль | цитата
nesco, ну, на низком уровне всё равно всё к одному сводится в итоге) Я догадываюсь, КАК реализована работа через localhost (при запросе интерфейса WMI это символ точки: "."). Буфер сетевых пакетов доступен на чтение и запись из любого адресного режима как разделяемый (shared) участок памяти. API у клиента и сервера РАЗНЫЕ, хотя и одноимённые, но пишут и читают виз одного пула пакетов. Не удивлюсь, если очередь сообщений тоже общая (что было бы логично), жаль нет сообщения-запроса "скажи свой родительский процесс" ) Хотя кто знает, может среди недокументированных и есть))
карма: 1

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#119: 2011-05-12 00:52:01 ЛС | профиль | цитата
1nd1g0 писал(а):
на низком уровне всё равно всё к одному сводится в итоге

В итоге -- да, но писано не нами и от нашего компилятора никак не зависящее
карма: 22

0
Ответов: 245
Рейтинг: 3
#120: 2011-05-12 03:41:01 ЛС | профиль | цитата
nesco писал(а):
Вот новая версия -- enumprocess_002.zip


работает! на win 2000, xp 32, vista 32 и win7 32

win2000
xp 32
vista x32
win7 x32

не работает (выдает хрень) :

xp 64
vista x64
win7 x64

также не работает на win 98 (вообще ничего не выдает)

в отличие от версии wmi - та работает везде, кроме 2000
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)