68

Есть ли способ отключить диалог переименования расширений файлов в Windows 7?

Тот, который подсказывает тебе

Переименовать: если вы измените расширение имени файла, файл может стать непригодным для использования. Вы уверены, что хотите изменить это?

11 ответов11

21

В ответ на комментарий о принятом ответе я также обнаружил, что скрипт AHK работает довольно медленно. Эта модификация, кажется, делает это быстрее:

While, 1
{
 WinWaitActive, Renommer ahk_class #32770
 send o
}

Вы заметите, что я использую окна на французском языке. Для английского использования:

While, 1
{
 WinWaitActive, Rename ahk_class #32770
 send y
}

Для окон на португальском (по крайней мере, версия pt-BR) используйте:

While, 1
{
 WinWaitActive, Renomear ahk_class #32770
 send s
}
9

Это очень возможно, с правильными инструментами, терпением, хорошим дизассемблером и удачей, вы можете отключить его.

Однако это не так просто, как изменить раздел реестра.

Вот пример того, как кто-то отключил "задержку", когда вы пытаетесь удалить используемый файл. http://www.codeproject.com/KB/system/NoDeleteDelay.aspx
Я просто пытался ковыряться и не нашел ничего полезного.

Я думаю, что лучшее решение, чем RtvReco, - это создать пункт меню в контекстном меню с надписью "Переименовать2", всплывающее окно с сообщением о новом имени файла и использовать Windows API для его переименования.

9

Это возможно с помощью скрипта AutoHotkey:

While, 1
{
 WinWait, Rename ahk_class #32770
 WinActivate, 
 ControlClick, Button1
}

Установите AutoHotkey, сохраните приведенный выше код в файл с расширением .ahk и запустите скрипт. Он будет ждать появления окна Rename. Когда это происходит, он автоматически "нажимает" на кнопку "Да" (обозначается здесь как "Button1").

Если вы не хотите устанавливать AutoHotkey, вот скомпилированная версия того же скрипта. Запустите исполняемый файл и посмотрите, как он делает свое дело :-).

Обратите внимание, что на самом деле это не отвечает на вопрос, так как вопрос все еще появляется. Но это автоматизировано, поэтому вас это больше не беспокоит.

3

Вы не можете отключить предупреждение о расширении файла. Он имеет такой дизайн, чтобы обеспечить безопасность пользователя от случайного изменения файлов.

Источник:

Ответ сообщества Microsoft

2

Вы не можете, однако, не все потеряно.

Вы можете использовать RtvReco для автоматического закрытия предупреждения, как только оно появится. Этот изящный маленький инструмент предназначен для автоматизации многих аспектов Windows, нажимая кнопки в надоедливых диалоговых окнах, выбирая пункты меню, максимизируя и минимизируя окна для вас.

... или использовать достойный файловый менеджер вместо Windows Explorer (например, Total Commander).

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

я знаю об этом взломе реестра, однако он не работает для меня с Windows 7

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]

установите значение ConsentPromptBehaviorAdmin равным нулю (0) и перезагрузите компьютер.

ps: конечно, есть бесплатные альтернативы Total Commander, так уж получилось, что я выбрал файловый менеджер.

1

Поскольку у нас есть файлы, которые при загрузке автоматически имеют дату и время, добавленные в качестве расширения. Поэтому я искал решение и нашел его.

Скачайте программу под названием F ree Commander. У них есть портативная версия, которая при необходимости может быть установлена на флэш-накопитель USB.

Эта программа позволяет вам выбрать несколько файлов, как в моем случае, и переименовывает расширение, не спрашивая, вы уверены.

1

Вот код, который я использовал для решения проблемы в скрипте AutoIT. Единственная проблема заключается в том, что он продолжает работать и потребляет некоторые ресурсы. Если у вас нет лучшей идеи, чтобы исправить сценарий. :-)

While 1
  if WinActive("Rename","") Then
    Send("!y")
  EndIf
  WEnd
1

Вместо того, чтобы загружать приложение, почему бы просто не использовать команду 'ren * .aa * .bb' в cmd (командная строка)?

0

Я действительно не думаю, что это возможно без использования:

  1. Командная строка (хлопот, если вы не привыкли к нему)
  2. Обходной путь стороннего производителя, либо файловый менеджер, либо что-то, связанное с приглашением, так что вам не нужно

Лично я использую PTFB (нажми на кнопку Freakin ') ; это довольно мало ресурсов и очень быстро. Это не совсем дешево, но удобно для других вещей.

0

Я также устал от этого глупого сообщения, поэтому я создал собственный скрипт 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
}
0

Создайте vb-скрипт, который переименует файл, поместите его в специальную папку "SendTo", щелкните правой кнопкой мыши файл, для которого необходимо изменить расширение, и введите новое имя. Больше никаких предупреждений, и создание сценария занимает всего несколько минут. Скрипт содержит это:

on error resume next
Set objArg = Wscript.Arguments
do
   if objArg.Count < 1 then exit do
   fil=objArg(0)
   Set FSO = CreateObject("Scripting.FileSystemObject")
   if Err.Number > 0 then exit do
   Set f1 = FSO.GetFile(objArg(0))
   fil=f1.Name
   i=inputbox("","",fil)
   if i = fil then exit do
   f1.Name = i
   exit do
loop

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .