Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Ну состоит отметить, если это для личного пользования то вполне рабоче. Так же из личного опыта сейчас в большинстве случаев у всех стоит win10 и выше.
Мы предлагаем автору методы решения, а он уже сам выбирает какой ему будет удобнее и проще.
Не совсем: меняя настройку, которая позволяет длинные имена, открываем также и право создания ещё более длинных имён сторонними программами. По такому пути поэтому не хотелось идти изначально.
Решение с префиксом "\\?\" лично меня устроило. Microsoft обещает работу этого решения только начиная с определённой сборки системы. Если станет постоянным стандартом, то почему бы не вставлять этот префикс автоматически в код каждой функции? Возможно, удобнее будет добавить параметр для AutoItSetOption(), изменяющий это поведение. Если с этим нет никаких подводных камней (типа замедления работы, ошибок в случае слишком коротких имён или чего-то в этом роде), то можно предложить разработчикам языка.
#include <File.au3>
#include <WinAPIShellEx.au3>
$sPath = "\\?\C:\Tmp\"
For $i = 11 To 95
$sPath &= "w" & $i
Next
_FileCreate($sPath)
_WinAPI_ShellOpenFolderAndSelectItems($sPath)
MsgBox(4096, "", "Script terminated.")
Функция из библиотеки "WinAPIShellEx" свою работу не выполняет, тогда как функция из библиотеки "File" срабатывает. Если убрать префикс, сократив имя файла, то работает.
Код:
#include <File.au3>
#include <WinAPIShellEx.au3>
$sPath = "C:\Tmp\"
For $i = 11 To 94
$sPath &= "w" & $i
Next
_FileCreate($sPath)
_WinAPI_ShellOpenFolderAndSelectItems($sPath)
MsgBox(4096, "", "Script terminated.")
Не совсем: меняя настройку, которая позволяет длинные имена, открываем также и право создания ещё более длинных имён сторонними программами. По такому пути поэтому не хотелось идти изначально.
Решение с префиксом "\\?\" лично меня устроило. Microsoft обещает работу этого решения только начиная с определённой сборки системы. Если станет постоянным стандартом, то почему бы не вставлять этот префикс автоматически в код каждой функции? Возможно, удобнее будет добавить параметр для AutoItSetOption(), изменяющий это поведение. Если с этим нет никаких подводных камней (типа замедления работы, ошибок в случае слишком коротких имён или чего-то в этом роде), то можно предложить разработчикам языка.
Сообщение автоматически объединено:
Всё-таки не всегда помогает. :-(
Код:
#include <File.au3>
#include <WinAPIShellEx.au3>
$sPath = "\\?\C:\Tmp\"
For $i = 11 To 95
$sPath &= "w" & $i
Next
_FileCreate($sPath)
_WinAPI_ShellOpenFolderAndSelectItems($sPath)
MsgBox(4096, "", "Script terminated.")
Функция из библиотеки "WinAPIShellEx" свою работу не выполняет, тогда как функция из библиотеки "File" срабатывает. Если убрать префикс, сократив имя файла, то работает.
Код:
#include <File.au3>
#include <WinAPIShellEx.au3>
$sPath = "C:\Tmp\"
For $i = 11 To 94
$sPath &= "w" & $i
Next
_FileCreate($sPath)
_WinAPI_ShellOpenFolderAndSelectItems($sPath)
MsgBox(4096, "", "Script terminated.")
А оказывается мой метод не такой уж и плохой, да ? :D
Тем более, что вам мешает только если нужно редактировать реестр и после возвращать в исходное состояние, да скорость чуть упадёт, но проблему решит.
А оказывается мой метод не такой уж и плохой, да ? :D
Тем более, что вам мешает только если нужно редактировать реестр и после возвращать в исходное состояние, да скорость чуть упадёт, но проблему решит.
Присваивать себе метод, который в поиске без указания на AutoIt выскакивает первым, а потому прочитан до создания топика, это сильно. Если бы хотя бы скрипт, автоматизирующий эти редактирования туда-сюда, был предложен, то ещё куда ни шло. А не линк на статью, в котором, кстати, оба метода указаны.