0

私はWindowsスクリーンセーバープログラムに取り組んでいます。開発中に、Windowsの[スクリーンセーバー設定]ダイアログで実行される起動をシミュレートするある種の小さなテスタープログラムから起動してテストしたいと思います。そうすれば、スクリーンセーバープログラムとさまざまなサポートDLLをWindows\System32に何度もコピーする必要がなくなります。

特に、例として見たいのは、「/p」オプションとテキスト文字列としてのウィンドウハンドルを使用した起動です。できればC#で作成しますが、別の言語のテストランチャープログラムも重要です。

4

1 に答える 1

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);
      }
   }
于 2013-02-25T05:34:26.180 に答える