Что нового

[Окна, Диалоги] Поймать и закрыть окно, не убив остальные

maddoc

Новичок
Сообщения
48
Репутация
2
Коротко :
Можно ли убить окно, зная только путь к exe ?)
Процесс килл самого экзе не подходит. На машине запущенно еще 10 таких окон.
К титлам привязаться невозможно, они все совершенно одинаковые. (точнее их вообще нет... )

Задача убить только 1 окно... единственная разница со всеми другими окнами, это рабочая папка (и путь сответственно ) к процессу.

Тоесть нада как-то сделать выборку процессов и найти нужный, учитывая его путь, и убить его...

Подскажите куда копать...
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
http://autoit-script.ru/index.php?topic=947.0 - вот тут обсуждалось. кажись метод так и не был найден. возможно сейчас ситуация прояснилась
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
maddoc
Я сделал 3 штуки exe такого содержания
Код:
MsgBox(0, "", "")
То есть нет Title. Распихал их по разным папкам и запустил. Вот так у меня закрывает окно(процесс), если его класс известен и путь, который надо отследить тоже заранее известен:
Код:
#include <WinAPIEx.au3>

$pathMy = "C:\1" ; путь, который надо отследить
$aWind = WinList("[Class:#32770]")

For $i = 1 To $aWind[0][0]
	If $aWind[$i][0] = "" Then ; нет заголовка окна
		$PID = WinGetProcess($aWind[$i][1])
		$path = _WinAPI_GetModuleFileNameEx($PID)
		If StringLeft($path, StringInStr($path, "\", 1, -1) - 1) = $pathMy Then
			;WinClose($aWind[$i][1]) ;закрываем окно
			ProcessClose($PID) ; или закрываем процесс
		EndIf
	EndIf
Next
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
madmasles
«#include <WinAPIEx.au3>» не стандартная библиотека, пожалуйста, указывай ссылки на подобные внешние библиотеки, для новичков будет непонятно почему скрипт не работает, отсюда будут лишние вопросы.
 
Верх