last day (14 days later) » 

10:18 AM
@ArteS, ok, но я занят пока
 
static void Main(string[] args)
{
IntPtr ptr;
while ((ptr = WinAPI.FindWindow(null, "VKMusic4")) == IntPtr.Zero)
{
Thread.Sleep(200);
Console.WriteLine("окно не найдено");
Console.Read();
}
Console.WriteLine("окно найдено");
WinAPI.SetForegroundWindow(ptr);

Console.Read();
}
Хорошо, дайте знать когда освободитесь
 
@ArteS не тот код
первый код в ответе читай
0
Q: Поиск открытого окна в консоли с использованием цикла

ArteSНе могу сделать проверку открытого окна в цикле. IntPtr ptr = WinAPI.FindWindow(null, "VKMusic4"); while (ptr == IntPtr.Zero) { if (ptr == IntPtr.Zero) // скорее всего это лишнее) { Console.WriteLine("окно не найдено"); // Если окно не нашли то возвращаемся к поиску. ...

 
while (true)
{
IntPtr ptr = WinAPI.FindWindow(null, "VKMusic4");

if (ptr == IntPtr.Zero)
{
Console.WriteLine("окно не найдено");
}
else
{
Console.WriteLine("окно найдено");
}

Console.Read();
}
 
да, этот
 
Ну так я пробовал его, он дальше не идёт, то есть если я запустил окна не оказалась, а после запустил VKMusic4 - в поле консоли ничего нету ( а должно появиться что окно найдено)
 
10:26 AM
> Console.Read();
 
Оказывается всё так просто) ДА работает
А если мне например нужно остановить цикл после Console.WriteLine("окно найдено"); Если я например захочу засунуть туда вызов какого либо метода с параметрами, то он же будет выполняться бесконечно? Как остановить его в этом моменте, а после запустить ( проверку окна) если окно закрыто будет..
 
11:15 AM
@ArteS break
 
Если я его использую у меня просто программа закрывается
 
while (WinAPI.FindWindow(null, "VKMusic4") == ptr)
@ArteS тогда так?
 
Ругается на == ptr) - Не присвоено значение.
while ((ptr = WinAPI.FindWindow(null, "VKMusic4")) == IntPtr.Zero) - Попробовал этот что Вы прислали тоже закрывает.
 
@ArteS ну так присвой zero при создании переменной
 
11:33 AM
Ничего не изменилось к сожалению
 
11:46 AM
@ArteS не может быть
 
IntPtr ptr = IntPtr.Zero;
while (WinAPI.FindWindow(null, "VKMusic4") == ptr)
{
Thread.Sleep(2000);
if (ptr == IntPtr.Zero)
{
Console.WriteLine("окно не найдено");
}
else
{
Console.WriteLine("окно найдено");
}
}
Пробую так, после как окно найдено, программа закрывается
Если же поставлю break; после: окно найдено, консоль висит, но циклом вызывает окно не найдено.
 
12:52 PM
@Qwertiy может можно по отдельности как-то замутить циклы, 1 для проверки на открыто окно : 2-й на закрытность??
 
@ArteS ну так так и надо было сделать
 
Может дашь пример? А то намучу лишнего. И как это можно будет после связать
 
1:31 PM
@ArteS обновил ответ
 
@Qwertiy Отлично работает, благодарю, хороший пример.
 
@ArteS один поиск лишний... но в принципе нормально :)
 
@Qwertiy Последний?))
 
@ArteS добавил в ответ ещё один вариант
кстати, первые две ветки можно объединить
 
@Qwertiy ptr?
 

last day (14 days later) »