gnuplot のチャートを使用する必要がある C# Winforms の GUI プロジェクトに取り組んでいます。ユーザーがチャートをクリックして情報を取得できるように、これらのチャートは動的な形式である必要があります。これは、ウィンドウを開いたままにしておく必要があり、GUI でチャートの画像を単純に使用できないことを意味します。すべてが機能していますが、ユーザーが手動で移動する必要がないように、画面上のどこに gnuplot チャートが表示されるかを制御できるようにしたいと考えています。私は C# プロセスを使用して gnuplot を実行していますが、window ハンドルがあれば user32.dll 関数 MoveWindow を使用するとプロセスのウィンドウを移動できることがわかりましたが、残念ながらグラフはプロセス自体ではなく、によって作成されます。プロセスからgnuplotにコマンドを送信するため、グラフ自体のウィンドウハンドルが見つかりません。
とにかく、これらのグラフのウィンドウハンドルを取得する方法はありますか、または gnuplot によって作成されたグラフが画面に表示される場所を選択する簡単な方法を知っている人はいますか?
私のプロセスがgnuplotグラフを作成する方法を示すサンプルコードを次に示します
Process gnuPlot = new Process();
gnuPlot.StartInfo.FileName = programName;
gnuPlot.StartInfo.UseShellExecute = false;
gnuPlot.StartInfo.RedirectStandardInput = true;
gnuPlot.StartInfo.CreateNoWindow = true;
gnuPlot.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
gnuPlot.Start();
StreamWriter gnuPlotInput = gnuPlot.StandardInput;
gnuPlotInput.WriteLine("set pm3d map");
gnuPlotInput.Flush();
string graphFileName = "fileName" notitle";
gnuPlotInput.WriteLine(String.Format("splot {0}", graphFileName));
gnuPlotInput.Flush();
前もって感謝します、
-ジェイク