Я пишу скринсейвер в C#, который должен запускать приложение, а затем завершаться, когда пользователь нажимает клавишу «A».Заставка не запускает внешнюю программу в Windows XP
В настоящее время это происходит в Windows 7, когда вы дважды щелкните файл .scr или дождитесь его запуска. В Windows XP внешнее приложение запускается обычно только при двойном щелчке файла .scr. Когда заставка запускается ОС, то нажатие «A» завершает заставку, но внешнее приложение запускается мгновенно, затем закрывается. Диспетчер задач показывает, что внешнее приложение закрывает долю секунды перед Screenaverso, я бы предположил, что это по какой-то причине также завершает внешнее приложение. Это поведение, с которым вы устанавливаете внешнее приложение.
Есть ли что-то внутреннее, что происходит, когда Заставка запускается из ОС, а не двойным щелчком пользователя?
Я использую System.Diagnostics.Process.Start()
для запуска внешнего приложения, но используя Process
и ProcessStartInfo
имеет такой же эффект.
Я использую .NET Framework 3.5
С уважением, Frank
Только что посмотрел на MSDN, в котором говорится: «Когда активируется защищенная экранная заставка, система автоматически переключается на рабочий стол ScreenSaver, который защищает процессы на рабочем столе по умолчанию от неавторизованных пользователей. Небезопасные хранители экрана работают на Winsta0 \ Default». Безопасна ли заставка при выборе параметра «Возобновить, защита паролем?». В любом случае внешнее приложение отключается. – Michali
На самом деле невозможно отправлять сообщения через рабочие столы. – Michali