"замена" explorer при попытке его открытия

Здесь можно оставить пожелание относительно функций, которых в программе нет, но которые вам хотелось бы в ней видеть.

Модератор: motyara

Ответить
alexgauss1994
Сообщения: 4
Зарегистрирован: Вс окт 19, 2014 6:42 pm
Контактная информация:

"замена" explorer при попытке его открытия

Сообщение alexgauss1994 » Вс окт 19, 2014 7:02 pm

Сделал скрипт для прибития окна explorer при его открытии какой-либо программой (если оно "содержит" какой-то реальный адрес, а не, к примеру, "панель управления")

Код: Выделить всё

#include <Process.au3>
#include <String.au3>

Func GetAddress($addressText)
	if StringInStr($addressText, ": ")>0 then
		Local $arr = _StringExplode($addressText, ": ", 1)
		Return $arr[1]
	else
		Return ""
	endif
EndFunc

Func RunFM($path)
	Run("C:\Unreal Commander\Uncom.exe """ & $path & """")
EndFunc

$addressControlId = 1001
While 1=1
	$wnd = WinGetHandle("")
	$process = WinGetProcess($wnd)
	$processName = _ProcessGetName ($process)
	if $processName="explorer.exe" then
		$address = GetAddress(ControlGetText($wnd, "", $addressControlId))
		if FileExists($address) then
			WinClose($wnd, "")
			RunFM($address)
		endif
	endif
	sleep(100)
Wend
Костыль, да (начиная с постоянно висящего в памяти процесса со скомпиленным скриптом), но всё же лучше "проводника". Хотелось бы иметь что-то подобное в составе Unreal-а (хотя тут уже, ИМХО, подход с постоянно висящим процессом не уместен).

p.s. предыдущая тема как-то не отобразилась, хотя вроде ни сообщений на тему премодерации, ни ошибок не было.

UPD. Пофикшена работа с содержащими пробелы путями, обновленный скрипт в сообщении (см. код выше)
Последний раз редактировалось alexgauss1994 Вт окт 21, 2014 9:47 pm, всего редактировалось 1 раз.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Пн окт 20, 2014 1:34 pm

Но зачем???

alexgauss1994
Сообщения: 4
Зарегистрирован: Вс окт 19, 2014 6:42 pm
Контактная информация:

Re: "замена" explorer при попытке его открытия

Сообщение alexgauss1994 » Пн окт 20, 2014 4:22 pm

Ну вот берем (наверное, почти любой) браузер/торрент-клиент/etc. => "показать в папке" (условно)... И видим таки эксплорер. Скорее всего, если я выбираю такой пункт, а не что-то с его (объекта) открытием - мне нужно его переместить/удалить/переименовать/etc... В общем действие слегка отличное от 1 дабл-клика :-)

А к чему именно такое решение,а не со стороны этой программы - таки не везде можно это поведение изменить.

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Пн окт 20, 2014 7:40 pm

Можно менять способ открытия папок в реестре. Под собственную ответственность, естественно ;)
https://forum.unrealcommander.net/viewto ... =22&t=1024
http://bbs.vbstreets.ru/viewtopic.php?f=34&t=44054

alexgauss1994
Сообщения: 4
Зарегистрирован: Вс окт 19, 2014 6:42 pm
Контактная информация:

Re: "замена" explorer при попытке его открытия

Сообщение alexgauss1994 » Пн окт 20, 2014 9:40 pm

Беглое прочтение говорит, что не поможет, т.к. меняется поведение уже в рамках проводника, а не "глобально". Или я ошибаюсь?

Аватара пользователя
Qwertiy
Охотник за багами
Сообщения: 1199
Зарегистрирован: Вс янв 31, 2010 12:12 am

Сообщение Qwertiy » Вт окт 21, 2014 11:43 am

Наверное да. Не помню точно. Но весьма вероятно, что зависит от того, что именно делает программа - default action или явно вызывает проводник.

alexgauss1994
Сообщения: 4
Зарегистрирован: Вс окт 19, 2014 6:42 pm
Контактная информация:

Re: "замена" explorer при попытке его открытия

Сообщение alexgauss1994 » Вт окт 21, 2014 1:46 pm

Ну вот я и клоню к тому, что зависит от программы и поменять если и можно(? В тех, с которыми сталкивался - не замечал.), то не везде.
А такой костыль таки достаточно универсален, хотя наверняка есть лучший метод.

avmaksimov
Сообщения: 357
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва
Контактная информация:

Re: "замена" explorer при попытке его открытия

Сообщение avmaksimov » Вт янв 27, 2015 9:15 am

А я с возрастом все больше замечаю, что (меня как будто кто-то подменил) все больше пользуюсь Проводником в описанных случаях... Отображать файлы, запускать на воспроизведение и другие простые операции он выполняет на ура!... UC же полезен, когда нужны вкладки, копирование и много лазить по дисковой структуре.
С уважением, Андрей.

Ответить