コードからプレビュー モードでスクリーンセーバー (.scr) を実行できるかどうか疑問に思っていました。プロセスを正常に実行すると、/s パラメータで実行され、独自の /p パラメータを渡そうとしましたが、Windows がそれをオーバーライドしているようです。
Process process = new Process();
process.StartInfo.Arguments = "/p";
process.StartInfo.FileName = "MyScreensaver.scr";
process.StartInfo.WorkingDirectory = path;
process.Start();
このようにすると、MyScreensaver が "/s" パラメーターを渡して実行されます。