это мой код:C# Process.MainWindowHandle всегда возвращает IntPtr Нулевой
using (Process game = Process.Start(new ProcessStartInfo() {
FileName="DatabaseCheck.exe",
RedirectStandardOutput = true,
CreateNoWindow = true,
UseShellExecute = false }))
{
lblLoad.Text = "Loading";
int Switch = 0;
while (game.MainWindowHandle == IntPtr.Zero)
{
Switch++;
if (Switch % 1000 == 0)
{
lblLoad.Text += ".";
if (lblLoad.Text.Contains("...."))
lblLoad.Text = "Loading.";
lblLoad.Update();
game.Refresh();
}
}
Проблема заключается в том, что game.MainWindowHandle всегда IntPtr.Zero. Мне нужно найти IntPtr запущенного процесса, чтобы подтвердить, что игра была запущена при запуске, поэтому я сделал игру, отправив ее IntPtr, и пусть пусковая установка ответит, если все в порядке. Но для этого я должен знать IntPtr запущенного процесса.
Заранее благодарен!
Попробую, что, когда я дома. Спасибо – Kfirprods
Спасибо, это сработало. – Kfirprods
Обратите внимание, что на 4.5 это больше не требуется (анекдотично - мой код работал на 4.5 и не удался, когда я опустился до 3.5, пока не добавил '.Refresh()') – Basic