Я работаю над проектом GUI в C# Winforms, который требует использования графиков из gnuplot. Эти диаграммы должны быть в динамической форме, чтобы пользователь мог получить информацию, нажав на диаграмму. Это означает, что я должен открыть окно и не могу просто использовать изображение графика в графическом интерфейсе. У меня все работает, но я хочу иметь возможность контролировать, где на экране отображается диаграмма gnuplot, так что пользователю не нужно перемещать ее вручную. Я использую процессы C# для запуска gnuplot, и я обнаружил, что использование функции user32.dll MoveWindow позволило бы мне переместить окно процесса, если бы у меня был его дескриптор окна, но, к сожалению, графики не являются самим процессом, они создаются отправка команд в gnuplot из процесса, поэтому я не могу найти дескриптор окна самого графика.Получение дескриптора графа gnuplot в C#
Есть ли в любом случае, чтобы я мог получить дескриптор окна этих графиков, или кто-нибудь знает более простой способ выбора, где графы, созданные gnuplot, появляются на sceen?
Ниже приведен пример кода, показывающий, как мой процесс создания графики 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();
Спасибо заранее,
-Jake
На самом деле я просто решил это, найдя ручку, ища процесс по имени окна. Я отправлю код позже, если это возможно, кому-нибудь это поможет. –