Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.01.2016, 16:51
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
Данный плагин не открывает длинные пути файлов (больше 259). Как я понял это происходит из-за вот этой строчки: Код: plaintext 1. т.е., судя по описанию, если первый параметр NULL, то cmd ограничивается 259 символами. Я попробовал загнать исходники ( есть на сайте автора плагина ) в VS2013 и откомпилить, но так как я не спец (от слова СОВСЕМ) в сишных проектах, то результат ожидаем - пшик. Спецы помогите решить проблему: откомпилировать исходники, чтобы потом плагин мог установиться, или может кто имеет доступ на форум Total Commander - задать там этот вопрос. Может кто знает Email автора (Egor Vlaznev) - я ему напишу. Прошу любой помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.01.2016, 18:56
|
|||
|---|---|---|---|
HELP: плагин sLister для Total Commander |
|||
|
#18+
Скорее всего из-за этого Код: plaintext 1. Если не путаю, это ограничение зашитое в WinAPI. Как бороться - ХЗ. Укороти пути. Как вариант сначала перейти в папку, затем указать только имя файла. https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx lpCommandLine [in, out, optional] The command line to be executed. The maximum length of this string is 32,768 characters, including the Unicode terminating null character. If lpApplicationName is NULL, the module name portion of lpCommandLine is limited to MAX_PATH characters. Если правильно понял, то возможно так заработает Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.01.2016, 20:23
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
Dima T, Проблема в том, что я полный NULL в Си. Я даже не знаю как из исходников (ничего не изменяя) получить рабочий плагин. То, что у меня получается, не воспринимается Total Commander'ом как плагин. Видимо где-то надо настраивать проект. Поэтому и просил помощи у специалистов - может кто-то уже делал плагины, и ему не составит труда скомпилить исходники и выдать на выходе готовый плагин без ограничений 259 символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.01.2016, 15:26
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
Привожу результаты своих изысканий в VS2013. 1) Первоначально проект компилировался из исходников, но коммандер не хотел кушать этот плагин. Причина: функции из DLL экспортировались в виде _ListLoadW@12. Решил: Подключил .def файл. Оказывается недостаточно просто добавить его в проект :), необходимо явно прописать его в свойствах проекта: Configuration Properties => Linker => Input => Module Difinition File 2) При пошаговой отладке (подключение к процессу Total Commander: DEBUG => Attach to Process... => TOTALCMD.EXE) получились следующие результаты: а) Плагин РАБОТАЕТ. Файл открывается и отображается корректно (начальное состояние исходника) Код: plaintext 1. возвращает 1 и ошибку: "error 5: Отказано в доступе." значение cmd: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 2557590 "D:\я111.pdf" б) Плагин запускается. В окне листера: Ошибка загрузки D:\<...ПОЛНЫЙ путь 266 символов...>.pdf Код: plaintext 1. возвращает 1 и ошибку: "error 5: Отказано в доступе." значение cmd: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 2950180 "D:\<...ПОЛНЫЙ путь 266 символов...>.pdf" в) Ошибка компиляции Код: plaintext 1. IntelliSense: argument of type "const char *" is incompatible with parameter of type "LPCWSTR" г) Плагин НЕ работает, даже не запускается Код: plaintext 1. возвращает 0 и ошибку: "error 3: Системе не удается найти указанный путь." значение cmd: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 460782 "D:\я111.pdf" д) Плагин запускается. В окне листера: Ошибка загрузки D:\Files Код: plaintext 1. возвращает 1 и ошибку: "error 0: Операция успешно завершена." значение rpath: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe значение cmd: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 2361128 "D:\я111.pdf" Т.е., судя по 2.а, б и д, проблема, видимо, не в CreateProcessW, и код работает правильно??? Прошу специалистов прокомментировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2016, 14:02
|
|||
|---|---|---|---|
HELP: плагин sLister для Total Commander |
|||
|
#18+
Стандартный обход проблемы 260 символов — снабжать путь к файлу префиксом \\?\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2016, 23:05
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
RWolf , Все тоже самое. Немного изменился п.2д Плагин запускается. В окне листера: Ошибка загрузки D:\<...здесь только директория...>\Files - итого полный путь без имени файла 202 символов + \Files Код: plaintext 1. возвращает 1 и ошибку: "error 0: Операция успешно завершена." значение rpath: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe значение cmd1: \\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 2294978 "D:\<...ПОЛНЫЙ путь 266 символов...>.pdf" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 00:22
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
Так как я чайник, то пробовал различные варианты запуска CreateProcessW, поэтому дополню пунктом 3: а) Плагин НЕ запускается. Код: plaintext 1. возвращает 0 и ошибку: "error 123: Синтаксическая ошибка в имени файла, имени папки или метке тома." значение cmd: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 1836380 "D:\я111.pdf" б) Плагин НЕ запускается. Код: plaintext 1. возвращает 0 и ошибку: "error 123: Синтаксическая ошибка в имени файла, имени папки или метке тома." значение cmd2: "C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -plugin 2622870 "D:\я111.pdf" в) Плагин НЕ запускается. Код: plaintext 1. возвращает 0 и ошибку: "error 123: Синтаксическая ошибка в имени файла, имени папки или метке тома." значение cmd1: \\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 1049864 "D:\я111.pdf" г) Плагин НЕ запускается. Код: plaintext 1. возвращает 0 и ошибку: "error 3: Системе не удается найти указанный путь." значение cmd1: \\?\"C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -plugin 787724 "D:\я111.pdf" д) Плагин НЕ запускается. Код: plaintext 1. возвращает 0 и ошибку: "error 123: Синтаксическая ошибка в имени файла, имени папки или метке тома." значение cmd2: "\\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -plugin 2491792 "D:\я111.pdf" е) Плагин НЕ запускается. Код: plaintext 1. возвращает 0 и ошибку: "error 122: Область данных, переданная по системному вызову, слишком мала." значение cmd1: \\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 918962 "D:\<...ПОЛНЫЙ путь 266 символов...>.pdf" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 09:32
|
|||
|---|---|---|---|
HELP: плагин sLister для Total Commander |
|||
|
#18+
AlexSyr2009, а нафига тебе вообще эта хрень, totall commander? Far же есть, он лучше на порядок.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 10:05
|
|||
|---|---|---|---|
HELP: плагин sLister для Total Commander |
|||
|
#18+
В lpApplicationName не должно быть ничего, кроме имени исполняемого файла; параметры командной строки перечисляются в lpCommandLine. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 13:36
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
RWolf , 4а) Плагин НЕ запускается. Код: plaintext 1. возвращает 0 и ошибку: "error 2: Не удается найти указанный файл." значение cmd: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 525790 "D:\я111.pdf" . . . . . . . . . или \\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 853380 "D:\я111.pdf" . . . . . . . . . или "\\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -plugin 1050018 "D:\я111.pdf" 4б) Открывается не плагин, а сама Суматра с двумя вкладками: 1836408 и я111.pdf. Сам Total Commander зависает Код: plaintext 1. возвращает 1 и ошибку: "error 0: Операция успешно завершена." значение rpath: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe значение cmd2: -plugin 1836408 "D:\я111.pdf" 4в) Плагин запускается. В окне листера: Ошибка загрузки D:\Files Код: plaintext 1. возвращает 1 и ошибку: "error 0: Операция успешно завершена." значение rpath: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe значение cmd2: \\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -plugin 2688400 "D:\я111.pdf" 4г) Плагин запускается и КОРРЕКТНО отображает файл Код: plaintext 1. возвращает 1 и ошибку: "error 0: Операция успешно завершена." значение rpath: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe значение cmd2: "\\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -plugin 722164 "D:\я111.pdf" . . . . . . . . . или "C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -plugin 394846 "D:\я111.pdf" 4д) Плагин запускается. В окне листера: Ошибка загрузки D:\<...ПОЛНЫЙ путь 266 символов...>.pdf Код: plaintext 1. возвращает 1 и ошибку: "error 0: Операция успешно завершена." значение rpath: C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe значение cmd2: "\\?\C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -plugin 853236 "D:\<...ПОЛНЫЙ путь 266 символов...>.pdf" Какие выводы? 1. В lpApplicationName (rpath) должен быть либо NULL (п. 2а), либо ПОЛНЫЙ путь к запускаемой программе (п. 4г) 2. В lpCommandLine (cmd) должен быть ПОЛНЫЙ путь к программе с параметрами командной строки заключенный в КАВЫЧКИ (пп. 4в, 4г) 3. Префикс \\?\ не имеет значения при заполненном параметре lpApplicationName (rpath) (п. 4г) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 13:43
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
AlexSyr2009Какие выводы? Выводы такие, что MSDN надо читать очень внимательно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 13:48
|
|||
|---|---|---|---|
HELP: плагин sLister для Total Commander |
|||
|
#18+
AlexSyr20091. В lpApplicationName (rpath) должен быть либо NULL (п. 2а), либо ПОЛНЫЙ путь к запускаемой программе (п. 4г) Да. AlexSyr20092. В lpCommandLine (cmd) должен быть ПОЛНЫЙ путь к программе с параметрами командной строки заключенный в КАВЫЧКИ (пп. 4в, 4г) Кавычки нужны только для разбора строки; если в имениах файлов нет пробелов, кавычки можно не ставить. AlexSyr20093. Префикс \\?\ не имеет значения при заполненном параметре lpApplicationName (rpath) (п. 4г) Префикс ставится к длинному имени файла. В любом случае, разбор командной строки всё равно на совести запускаемого приложения, так что префикс может и не пригодиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 14:29
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
Dimitry SibiryakovВыводы такие, что MSDN надо читать очень внимательно. Наконец-то специалист появился. Как же я Вас долго ждал! авторThe lpCommandLine parameter can be NULL. In that case, the function uses the string pointed to by lpApplicationName as the command line. Прокомментируйте, опираясь на результаты пп. 3 б, г и д. и CreateProcess function . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 14:54
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
AlexSyr2009Прокомментируйте, опираясь на результаты пп. 3 б, г и д По всем третьим пунктам: в параметре имени исполняемого приложения - только имя исполняемого приложения, а ты туда ещё и аргументы напихал. Они воспринимаются как часть имени файла и, естественно, файл с таким диким именем не находится. lpApplicationName [in, optional] The name of the module to be executed. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 15:10
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
[quot Dimitry Sibiryakov] Еще раз: The lpCommandLine parameter can be NULL . In that case , the function uses the string pointed to by lpApplicationName as the command line . Разве командная строка не подразумевает аргументов??? Вполне допускаю, что где-то кавычки не там стоят, но где про это в MSDN написано, да и вроде как я попробовал их по разному ставить. автор... а ты туда ещё и аргументы напихал ... А куда тогда их пихать, если lpCommandLine is NULL??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 15:42
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
AlexSyr2009Разве командная строка не подразумевает аргументов??? В данном случае - нет. AlexSyr2009А куда тогда их пихать, если lpCommandLine is NULL??? Аргументы передаются исключительно в lpCommandLine. Выбора нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 15:44
|
|||
|---|---|---|---|
HELP: плагин sLister для Total Commander |
|||
|
#18+
AlexSyr2009Еще раз: The lpCommandLine parameter can be NULL . In that case , the function uses the string pointed to by lpApplicationName as the command line . Это надо понимать так: можно не указывать, что передать запускаемому приложению в качестве командной строки, тогда эта строка будет по умолчанию заполнена значением lpApplicationName. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 16:48
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
По п. 3 вопрос закрыт: INFO: Understanding CreateProcess and Command-line Arguments авторIf the ApplicationName parameter is passed and the CommandLine parameter is NULL, then the ApplicationName parameter is also used as the CommandLine. This does not mean that you can pass additional command-line parameters in ApplicationName string . For example, the following call will fail with a "File Not Found" error: Код: plaintext 1. MS'у влом было написать это в описании функции??? Остается открытым вопрос с длиной командной строки, ограниченной 259 символами - собственно с чего все и началось. Т.е. имеем 4г (короткий путь) - работает, 4д (длинный) - не работает. Что скажите? Можно ли в данном плагине что-то сделать для исправления этой ситуации, или это баг самой Суматры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.01.2016, 16:58
|
|||
|---|---|---|---|
|
|||
HELP: плагин sLister для Total Commander |
|||
|
#18+
AlexSyr2009Можно ли в данном плагине что-то сделать для исправления этой ситуации, или это баг самой Суматры? Баг Суматры, однозначно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2018654]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 10ms |
| total: | 192ms |

| 0 / 0 |
