我正在开发一个Windows屏幕保护程序,当我正在开发它时,我想通过从某种小型测试程序启动它来测试它,该程序模拟Windows“屏幕保护程序设置”所做的启动对话。这样我可以避免不得不一次又一次地将我的屏幕保护程序和各种支持DLL复制到Windows \ System32。
特别是,它是使用“/ p”选项和窗口句柄作为文本字符串启动,我想看一个例子。最好是在C#中,但另一种语言的测试启动程序也是有意义的。
答案 0 :(得分:0)
Vimal Raj在这个帖子中回答的信息是一个重要的帮助: How to use Multiple forms in one Csharp panel in one Windows Form panel?
这是我的整个屏幕保护测试程序,忽略了Visual Studio设计师的东西:
public partial class FormTest : Form
{
private readonly Form _formTinyView;
// Constructor
public FormTest()
{
InitializeComponent();
// Create a tiny preview form and place it inside the Panel control
_formTinyView = new Form();
_formTinyView.FormBorderStyle = FormBorderStyle.None;
_formTinyView.TopLevel = false;
_formTinyView.Size = panelTinyView.Size;
panelTinyView.Controls.Add(_formTinyView);
_formTinyView.Visible = true;
}
// Display settings dialog
private void Settings_Click(object sender, EventArgs e)
{
LaunchScreensaver("/c");
}
// Preview in tiny window
private void TinyView_Click(object sender, EventArgs e)
{
LaunchScreensaver("/p " + _formTinyView.Handle);
}
// Standard preview
private void Preview_Click(object sender, EventArgs e)
{
LaunchScreensaver("/s");
}
// Launch screensaver as a new process
private static void LaunchScreensaver(string argumentString)
{
Process.Start(@"..\..\OutBackScreensaver\bin\Merlinia.OutBackScreensaver.exe",
argumentString);
}
}