TProcess win64 и win32 программа

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

TProcess win64 и win32 программа

Сообщение Vadim » 09.10.2018 09:49:40

На компе с Win64 запускаю 32-ухбитную программу в которой вызывается (с помощью TProcess) системная программулька "quser.exe" с целью узнать, кто тут у меня зарегистрировался на сервере, чтобы потом его насильно выгнать. Если на Win32-ОС всё спокойно отрабатывает, то на Win64 получаю ошибку:
Failed to execute : 2

Имя программы записано вместе с путём, так что ошибка поиска экзешника исключена:
Код: Выделить всё
Var
  Process: TProcess;
...
  Process.Executable := 'c:\windows\system32\quser.exe'


Кто что посоветует?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: TProcess win64 и win32 программа

Сообщение Sergei I. Gorelkin » 09.10.2018 11:01:44

win64 подсовывает 32-битным программам вместо "c:\windows\system32\" путь "c:\windows\syswow64", в котором нет quser.exe.
Для отключения такого поведения надо вызывать функцию Wow64DisableWow64FsRedirection из kernel32.dll, для включения обратно - Wow64RevertWow64FsRedirection.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1395
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: TProcess win64 и win32 программа

Сообщение Vadim » 09.10.2018 11:11:06

Sergei I. Gorelkin
Ага! Большое спасибо!

Добавлено спустя 42 минуты 14 секунд:
Ещё вопрос, есть ли в FPC какой-нибудь {$DEFINE} который в программе для win32 укажет, что операционка всё-таки 64-ехразрядная?
Или не будет ли ошибки исполнения, если эти функции вызвать в 32-ухразрядной ОС?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: TProcess win64 и win32 программа

Сообщение MysticCoder » 09.10.2018 15:54:54

это в рантайме надо смотреть
http://wiki.lazarus.freepascal.org/Detect_Windows_x32-x64_example
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

Рейтинг@Mail.ru