Что нового

Как подавить сообщение о переименовании файла?

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Известно, что при попытке переименовать файл в имя которое содержит неизвестное расширение, выводится предупреждение:



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

Пока единственное что приходит в голову, так это...
Код:
While 1
	WinWait("[CLASS:#32770;TITLE:переименование]", "Вы действительно хотите изменить расширение?")
	ControlClick("[CLASS:#32770;TITLE:переименование]", "Вы действительно хотите изменить расширение?", "Button1")
Wend

:laugh:
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Заметил, что при переименовании файла в других файловых менеджерах (TotalCMD, Far) этого не происходит.
Это Explorer.exe все делает.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
А что, если написать простенькую утилиту и внести ее в контекстное меню?
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Yuriy [?]
Это Explorer.exe все делает
Ну это понятно, меня не это интересует :smile:

Yashied [?]
А что, если написать простенькую утилиту и внести ее в контекстное меню?
А что, если я вообще не использую меню для переименовывания? :scratch:

Рябата, спасибо конечно, но...
Ещё раз повторю:
[?]
Как подавить это сообщение?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Копнул чуть глубже.
На ОС Win XP SP 3 rus.
В библиотеке C:\WINDOWS\system32\shell32.dll
все это.
ResHacker.exe => shell32.dll=> String Table => 258 => 1049 =>
STRINGTABLE
LANGUAGE LANG_RUSSIAN, 0x1
{
4112, "После смены расширения имени файла этот файл может оказаться недоступным.\n\nВы действительно хотите изменить расширение?"

Ну а к самой библиотеке shell32.dll обращается Explorer.exe, как я понял.
Тут разве что только патчить.
Это всего лишь мои рассуждения.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Yuriy [?]
Тут разве что только патчить
Ещё бы узнать как :scratch: ...

На oszone поднимали подобную тему, там тоже пишут что нормальными средствами от этого не избавиться.

Пока патча нету, можно пользоваться вот таким скриптом, окошко закрывается почти мгновенно:

Код:
#NoTrayIcon

Opt("WinWaitDelay", 0)
HotKeySet("^+e", "_Exit")

While 1
	WinWait("[CLASS:#32770;TITLE:переименование]", "Вы действительно хотите изменить расширение?")
	ControlClick("[CLASS:#32770;TITLE:переименование]", "Вы действительно хотите изменить расширение?", "Button1")
WEnd

Func _Exit()
	Exit
EndFunc
 
Верх