Что нового

автоматическое обновление проводника во избежание обрезанных названий

Alexey

Чайник
Сообщения
171
Репутация
0
как сделать, чтобы в проводнике при переименовании файла в более длинное название НЕ появлялся обрубок вида
xxxxxxxxxxxxxxxxxxxxxxx...
(его не урезанное название, в т.ч. с расширением, становится видимым только после F5),
а сразу (без F5) всегда отображалось полное название (с расширением), какое длинное оно бы ни было ?

по данной теме (вроде бы) нашёл в нэте вот что:
чтобы обновление содержимого окна проводника происходило автоматически, а не по нажатию F5, в реестре нужно найти ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update и изменить значение величины UpdateMode с 1 на 0
но оно на моей win xp sp 2 pro эффекта на даёт
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Alexey
Пока значок в фокусе (выделен синим цветом), его название не обрезается, но если выделить другой значок, то проводник автоматически обрезает название до одной строки с троеточием...
 
Автор
A

Alexey

Чайник
Сообщения
171
Репутация
0
snoitaleR
а нужно, чтобы вообще ничего нигде никогда не обрезалось (выглядит это по-уродски, тем более при разрешении 1920 по горизонтали)
я не знаю по какому принципу и зачем это всё неудобство задумано, но хотелось бы как-то найти решение. сейчас вот от безысходности попробовал просто зафиксировать некоторые варианты того, что происходит (и, вероятно, это далеко не все нюансы), вот что получилось:

- названия обрезаются по самому длинному на данный момент объекту в текущей папке
- если это первая под-папка в папке - название обрезается до 12 символов, далее - троеточие
- если это первый файл в папке - название обрезается до 20 символов, далее - троеточие
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Alexey
Может это и не то, что нужно, но попробуй увеличить интервал между значками по горизонтали или вертикали...
 

kaster

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

а зачем ты ставишь ударения (выделение полужирным) над некоторыми словами? чтобы самому не забыть или нам напомнить? ;D
 
Автор
A

Alexey

Чайник
Сообщения
171
Репутация
0
snoitaleR
попробовал увеличить интервал с 43 до 45, 53, 83 (и по горизонтали, и по вертикали) - никаких изменений
я вот начинаю думать, что эта мелкая проблема решения не имеет вовсе, поскольку, по большому счёту, нужно не столько автоматическое обновление проводника, сколько полное отсутствие обрезаний названий файлов и папок

Kaster, будь внимательнее ;) в той теме я как раз этот свой вопрос изначально и задал. на что CreatoR мне ответил, что тот топик - не для вопросов, и дал ссылку на эту часть форума, где я, собственно, тему и создал
а зачем ты ставишь ударения (выделение полужирным) над некоторыми словами?
выделяю полужирным потому что, к сожалению, не могу нормально там где я считаю нужным ставить ударения - они отображаются как попало (разные языки, сайты), иногда ударения вначале ставятся как надо, а впоследствии - отчего-то смещаются, в т.ч. и на согласные буквы.
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Alexey [?]
попробовал увеличить интервал
Я замечал, что после подобных изменений может потребоваться выход из профиля пользователя с последующим входом, так как не всегда происходит автоматическое обновление интервалов между значками...
 
Автор
A

Alexey

Чайник
Сообщения
171
Репутация
0
snoitaleR, тогда позднее попробую тоже самое ещё и с перезагрузкой. просто при изменении значений и нажатии "применить" XP выводит секунды на 3 табличку "пожалуйста, подождите", вот я и подумал, что так система должным образом обновляет эти интервалы
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Alexey
У меня значки на рабочем столе обычно отключены...
Но ради интереса проверил:
Поставил интервал по горизонтали и вертикали 100, вышел (не смена пользователя, а именно выход) из профиля и зашел, значок "Bluetooth-окружение" раньше был обрезан в названии, теперь отображается полностью...
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Alexey
Думаю, полноценного решения предложенным мною способом не получить...
Максимум две строки выводится, остаток все равно обрезается...
 
Автор
A

Alexey

Чайник
Сообщения
171
Репутация
0
snoitaleR
к сожалению, так и есть - попробовал я изменить обе 43 на 100, перезагрузил, но названия файлов обрезаются точно так же (да и к тому же ярлыки на рабочем столе стали смотреться глупо)

с папками, по большому счёту, аналогично. за тем лишь исключением, что если их создавать мышкой (чего я давно не делаю, к счастью), то обрезаются, а если при помощи небольшой проги bxnewfolder (в таких случаях использую исключительно её), то создаётся папка с названием хоть в 70-80 символов (всего пару-тройку раз проверил, не исключено, что это не всегда так)

такое нестабильное, половинчатое решение я использовать, разумеется, не стал. так что проблема по-прежнему до неприличного актуальна
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Alexey
Повторю еще раз, совет данный CreatoR'ом и Yashied'ом тебе точно не подошел? В частности использовать вот эту функцию
Код:
Func _UpdateExplorer()

    Local $Opt = Opt('WinSearchChildren', 1)
    Local $List = WinList('[CLASS:SHELLDLL_DefView]')

    For $i = 1 To UBound($List) - 1
        DllCall('user32.dll', 'long', 'SendMessage', 'hwnd', $List[$i][1], 'int', 0x0111, 'int', 0x7103, 'int', 0)
    Next

    Opt('WinSearchChildren', $Opt)

EndFunc   ;==>_UpdateExplorer

а именно вот так
Код:
FileMove('Старое имя файла', 'Новое имя файла')
_UpdateExplorer()
Func _UpdateExplorer()

    Local $Opt = Opt('WinSearchChildren', 1)
    Local $List = WinList('[CLASS:SHELLDLL_DefView]')

    For $i = 1 To UBound($List) - 1
        DllCall('user32.dll', 'long', 'SendMessage', 'hwnd', $List[$i][1], 'int', 0x0111, 'int', 0x7103, 'int', 0)
    Next

    Opt('WinSearchChildren', $Opt)

EndFunc   ;==>_UpdateExplorer

у меня вот например, после использования этого скрипта, при переименовании файла из 1.txt в 11111111111111111111111111111.txt название прекрасно отображается на экране.
в противном случае, возможно дело в твоей винде
 
Автор
A

Alexey

Чайник
Сообщения
171
Репутация
0
Kaster
взял второй код, запускал из script editor ("Go"), компилировал его в exe и запускал этот еxe - всё без толку. названия обрезаются точно так же
к тому же нужно, чтобы не обрезалось всегда, не только при переименовании, но и при создании папки/(текстового) файла или при переименовании в папке, содержащей и другие объекты с менее длинными (чем создающееся) названиями

вот наглядно (на всякий случай) несколько вариантов того, чего не должно происходить:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
А можешь полный скриншот выложить?
 
Автор
A

Alexey

Чайник
Сообщения
171
Репутация
0
Yashied,
не пойму только, чт? это может прояснить. впрочем, пожалуйста :smile: самый простой вариант:

Full-Screen

(так действительно выглядит весь экран, если раскрыт лишь проводник - я ничего не убирал и не подчищал)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Alexey
а каким образом ты создал этот самый файл?
из скрипта? или просто средствами самого проводника?
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Alexey
Попробуй переключить режим "Вид" на "Таблица", раздвинуть первое поле "Имя" как можно шире и вернуться в режим "Список"...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Или так.

Код:
#Include <GUIListView.au3>
#Include <WinAPI.au3>

$hListView = ControlGetHandle(_WinAPI_FindWindow('ExploreWClass', 'zzz---test'), '', '[CLASS:SysListView32]')
_GUICtrlListView_SetColumnWidth($hListView, 0, 400)
 
Автор
A

Alexey

Чайник
Сообщения
171
Репутация
0
Kaster, создал как обычно создают .txt-файл в проводнике
и, раз уж мы этого коснулись, прошу подсказать как создавать обычные .txt-файлы с помощью скрипта нажатием комбинации клавиш (т.е., чтобы не лазить мышкой в меню её правой кнопки)

snoitaleR, идея, кстати, интересная. но, к сожалению, не прокатило, хотя я расширил поле 'имя' аж до 2000 пикселей (проводник-то 2000 запомнил, но я работаю исключительно в режиме 'список', а не 'таблица'. да и эти 2000, как я понял, не совсем имеют отношение к тому, что я пытаюсь изменить)

Yashied, ничего не изменилось
а что zzz---test в скрипте делает ? это ведь просто временная папка для сиюминутной проверки разных вариантов
 
Верх