2010-10-23 3 views
0

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

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

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

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

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

С уважением, Frank

ответ

1

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

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

+0

Только что посмотрел на MSDN, в котором говорится: «Когда активируется защищенная экранная заставка, система автоматически переключается на рабочий стол ScreenSaver, который защищает процессы на рабочем столе по умолчанию от неавторизованных пользователей. Небезопасные хранители экрана работают на Winsta0 \ Default». Безопасна ли заставка при выборе параметра «Возобновить, защита паролем?». В любом случае внешнее приложение отключается. – Michali

+0

На самом деле невозможно отправлять сообщения через рабочие столы. – Michali

Смежные вопросы