Несмотря на то, что вы читали, оказывается, что экранная заставка Windows — это НЕ «просто» файл .exe, переименованный в .scr. Файл .scr не «запускается» напрямую, как EXE. Вместо этого Windows ищет исполняемый файл в файле .scr и повторно запускает этот исполняемый файл с любыми параметрами командной строки, которые Windows хочет передать исполняемому файлу.
Это означает, что если вы создаете ярлык для вашего файла .scr с вашими собственными параметрами (например, «myscreensaver.scr /windowed/doublebuffered»), когда вы используете этот ярлык, Environment.CommandLine показывает, что был запущен «myscreensaver .scr/S". Обратите внимание, что мои параметры были заменены.
Я понимаю роль параметров /s, /c и /p здесь. Это не требует пояснений, и я правильно использую их в своей экранной заставке. Но я также хотел бы вернуть свои исходные параметры. Можно ли получить имя процесса, запустившего мой процесс, и параметры командной строки, переданные этому процессу?
Despite what you read, it turns out that a Windows Screen Saver is not an .exe..
. Вы тот, кто создает заставку и имеете контроль над ней. Я что-то пропустил? И вдобавок к этому, если вы не устанавливаете свою заставку, почему вы беспокоитесь о переименовании ее в scr, И если вы ее устанавливаете, почему вы вызываете scr вручную (двойной щелчок)? Переименовав его в scr и установив, вы ожидаете, что Windows вызовет его. - person The Muffin Man   schedule 29.08.2014