Я также устал от этого глупого сообщения, поэтому я создал собственный скрипт Autohotkey, с некоторыми новыми идеями.
Я не хотел, чтобы постоянный сеттаймер или команда "пока" постоянно ели ресурсы. Так как я всегда использую F2 для переименования файлов, я сделал горячую клавишу, чтобы добавить специальную функцию к этой клавише. Таким образом, таймер срабатывает только при нажатии этой клавиши и выключается, когда задача завершена.
Я также считал, что хочу, чтобы мой сценарий влиял только на это конкретное диалоговое окно. Одного имени было недостаточно, потому что тот же диалог переименования появляется, например, при попытке переименовать элемент в меню «Пуск».
Итак, есть некоторые условия для работы этой функции. Во-первых, он будет работать в окнах Explorer и на рабочем столе Windows. С остальными программами или средами F2 продолжит работать в обычном режиме. Кроме того, чтобы предотвратить конфликты, такие как вышеупомянутые, скрипт проверяет ширину и высоту диалогового окна переименования, чтобы убедиться, что оно совпадает.
Наконец, я также включил функцию автоматического выбора полного имени файла (вместе с расширением, как до Windows 7), потому что я предпочитаю это таким образом. Не стесняйтесь удалить строку Отправьте ^+{end}, если она вам не нужна.
Для английских версий Windows вам придется изменить "cambiar nombre" на любой, который указан в заголовке диалогового окна переименования. Кроме того, измените "s" на "y". В случае, если это не работает, вы также можете использовать Autoit3 Window Spy, чтобы проверить, действительно ли ваш размер окна переименования имеет этот размер (if (warnw = 515) и (warnh = 154).
#SingleInstance force
GroupAdd, folders2, ahk_class CabinetWClass
GroupAdd, folders2, ahk_class WorkerW
GroupAdd, folders2, ahk_class ExploreWClass
GroupAdd, folders2, ahk_class Progman
return
$F2::
if ( Winactive("ahk_group folders2") )
{
Send {F2}
Send ^+{end}
settimer, renombrar, 20
return
}
Else
{
Send {F2}
Return
}
renombrar:
WinWaitActive, Cambiar nombre ahk_class #32770
WinGetPos,,, warnw, warnh, Cambiar nombre
if (warnw = 515) and (warnh=154)
{
send, s
click up left
settimer, renombrar, off
return
}
Else
{
settimer, renombrar, off
return
}