Заставка не запускает внешнюю программу в Windows XP - PullRequest
0 голосов
/ 23 октября 2010

Я пишу заставку на C #, которая должна запускать приложение, а затем завершать работу, когда пользователь нажимает клавишу «A».

В настоящее время это происходит в Windows 7, когда вы дважды щелкаете файл .scr.или подождите, пока он запустится.В Windows XP внешнее приложение обычно запускается только при двойном щелчке по файлу .scr.Когда ОС запускает экранную заставку, нажатие кнопки «А» приводит к прекращению работы экранной заставки, но внешнее приложение запускается на мгновение, а затем закрывается.Диспетчер задач показывает, что внешнее приложение закрывается за долю секунды до заставки, поэтому я мог бы представить, что это также приводит к прекращению работы внешнего приложения по какой-то причине.Это поведение при любом внешнем приложении.

Есть ли что-то внутреннее, что происходит при запуске Заставки из ОС, а не при двойном щелчке пользователем?

I 'm использование System.Diagnostics.Process.Start() для запуска внешнего приложения, но использование Process и ProcessStartInfo имеет тот же эффект.

Я использую .NET Framework 3.5

С уважением, Фрэнк

1 Ответ

1 голос
/ 23 октября 2010

Да, заставка работает на своем рабочем столе.Есть три наиболее распространенных: рабочий стол для входа в систему, тот, на который вы сейчас смотрите, и рабочий стол с заставкой.Процесс связан с рабочим столом через член STARTUPINFO.lpDesktop, переданный CreateProcess.Когда NULL, он запускается на текущем рабочем столе.

рабочий стол не может быть закрыт до тех пор, пока не будут закрыты все запущенные на нем процессы.То, что вы видите, происходит автоматически.Не уверен, почему вы пытаетесь это сделать, но вы смотрите на pinProking CreateProcess, чтобы избежать уничтожения этого процесса.Я действительно сомневаюсь, что Windows позволяет это, заставки были пресловутым вектором для вредоносных программ.

...