Я уверен, что об этом уже спрашивали, но мне еще не удалось найти вопрос или ответ.
У меня есть специальное приложение с вкладками, которое отображает данные от различных научных инструментов на каждой вкладке. Мои пользователи хотят щелкнуть вкладку и заставить мое приложение запускать различные приложения контроллера инструментов (или выводить его на передний план) на другом компьютере при нажатии на вкладку в моем приложении.
Я экспериментировал со множеством разных подходов, от написания своего собственного приложения на C # до Process.Start, написания второго приложения на C #, которое живет на удаленной машине и запускает соответствующее приложение, используя psexec от Sysinternals и т. Д. Я могу заставить процесс успешно запускаться на удаленной машине, но GUI отсутствует независимо от того, какие учетные данные пользователя я предоставляю (и независимо от того, вошел ли пользователь в систему в интерактивном режиме). Я считаю, что это повышение безопасности в Windows.
Анализ метода Create () документации MSDN Win32_Process показывает, что я подозревал. Из соображений безопасности метод Win32_Process.Create нельзя использовать для удаленного запуска интерактивного процесса.
Похоже, лучшее, что я могу сделать, - это удаленный доступ к планировщику задач, чтобы запустить удаленное приложение через некоторый промежуток времени. Я уверен, что это приведет к ужасному взаимодействию с пользователем в моем приложении (кто хочет щелкнуть вкладку и подождать 30 секунд?), Поэтому я избегаю такого подхода.
Может кто-нибудь предложить подход, который будет работать, или помочь опровергнуть возможность сделать это?
РЕДАКТИРОВАТЬ Собственная документация psexec Документация подтверждает мое утверждение, что это невозможно. Флаг -x гласит: «Отображать пользовательский интерфейс на рабочем столе Winlogon (только для локальной системы)». Если бы это было возможно, я уверен, что Sysinternals сделал бы это возможным.