View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002248 | Far Manager | Plugins Manager | public | 2013-01-10 09:34 | 2013-02-26 00:18 |
Reporter | DiRTy_GaRRy | Assigned To | DrKnS | ||
Priority | high | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x64 | OS | Windows Server 2012 | OS Version | 6.2 |
Product Version | 3.0 | ||||
Target Version | 3.0 | Fixed in Version | 3.0 | ||
Summary | 0002248: ANSI плагины не дают запускать приложения из папок являющихся связью | ||||
Description | x64 ANSI плагины под Windows Server 2012 мешают запуску exe-в с ошибкой "The request is not supported.". | ||||
Steps To Reproduce | 1. Запускает far только с плагином far ftp; 2. Создаём "связь каталогов" на каталог в котором есть какой-либо exe-к; 3. Пытаемся запустить exe-к из каталога-связи; 4. Получаем ошибку: ╔═══════════════ Ошибка ═══════════════╗ ║ The request is not supported. ║ ║ Ошибка выполнения ║ ║ C:\DTB\Downloads\DTLite4461-0328.exe ║ ╟──────────────────────────────────────╢ ║ { OK } ║ ╚══════════════════════════════════════╝ 5. На Windows Server 2008 R2 не повторяется. Под Windows 8 x64/x86 не проверял. | ||||
Additional Information | Немного о себе: - Microsoft Windows Server 2012 Datacenter; - Far Manager, version 3.0 (build 3072) x64 откомпилированный собственноручно компилятором Visual Studio 2012; - Проверял со стандартным FAR FTP, а так же с ANSI x64 версией плагина NTFS File Information (ntfsfile_5.3.0_x64.7z). | ||||
Tags | No tags attached. | ||||
Build | 3220 | ||||
|
Ну наличие анси-плагинов влияет только на то, что фар таскает за собой current directory. Возможно, у MS что-то в политиках безопасности поменялось. Нажми в диалоге F3 и посмотри ntstatus, может там подробнее будет расписано. |
|
А я всё пытался вспомнить что нажать, для того что бы получить подробную информацию об ошибке. ;) LastError: 0x00000032 - The request is not supported. NTSTATUS: 0xC00000BB - The request is not supported. P.S. Падает execute.cpp -> 1034 -> ShellExecuteEx. P.P.S. Проводник и FAR без ANSI плагинов ошибок не выдают. |
|
Я могу чем-либо помочь? |
|
Попробуй с изменениями из аттача. Решение костыльное, но ничего лучше я пока не вижу. |
|
curdir.diff (1,060 bytes)
Index: execute.cpp =================================================================== --- execute.cpp (revision 9712) +++ execute.cpp (working copy) @@ -1013,6 +1013,17 @@ Global->Console->ScrollScreenBuffer(((DirectRun && dwSubSystem == IMAGE_SUBSYSTEM_WINDOWS_GUI) || SeparateWindow)?2:1); } + // ShellExecuteEx fails on Windows 8 if current directory is symlink/junction + wchar_t CurDir[MAX_PATH]; + bool NeedFixCurDir = Global->WinVer() >= _WIN32_WINNT_WIN8 && apiGetFileAttributes(strCurDir) & FILE_ATTRIBUTE_REPARSE_POINT; + if (NeedFixCurDir) + { + GetCurrentDirectory(ARRAYSIZE(CurDir), CurDir); + wchar_t SysDir[MAX_PATH]; + GetSystemDirectory(SysDir, ARRAYSIZE(SysDir)); + SetCurrentDirectory(SysDir); + } + DWORD dwError = 0; if (ShellExecuteEx(&seInfo)) { @@ -1023,6 +1034,12 @@ dwError = GetLastError(); } + // ShellExecuteEx fails on Windows 8 if current directory is symlink/junction + if (NeedFixCurDir) + { + SetCurrentDirectory(CurDir); + } + if (!dwError) { if (hProcess) |
|
Костыль пока не пробовал, но решил посмотреть ProcMon-м, что там происходит. Пытаюсь запустить файл AdobeAIRInstaller.exe, который лежит в папке C:\DTB\Downloads, которая является junction-м на папку C:\Users\IVyatkin\Downloads. FAR запускается из папки C:\Program Files\Far Manager, которая является junction-м на папку C:\Projects\FAR Manager\Bin\Far3\Bin. То ли я чего-то не понимаю, то ли действительно какой-то странный лог. |
|
|
|
Лог странный, но подозреваю, что всё это происходит внутри shellexecute. |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-01-10 09:34 | DiRTy_GaRRy | New Issue | |
2013-01-10 09:43 | DrKnS | Note Added: 0009955 | |
2013-01-10 09:51 | DiRTy_GaRRy | Note Added: 0009956 | |
2013-01-11 08:03 | DiRTy_GaRRy | Note Added: 0009963 | |
2013-02-22 00:29 | DrKnS | File Added: curdir.diff | |
2013-02-22 00:30 | DrKnS | Note Added: 0010367 | |
2013-02-22 00:40 | DrKnS | File Deleted: curdir.diff | |
2013-02-22 00:40 | DrKnS | File Added: curdir.diff | |
2013-02-22 00:40 | DrKnS | File Deleted: curdir.diff | |
2013-02-22 00:42 | DrKnS | File Added: curdir.diff | |
2013-02-22 08:17 | DiRTy_GaRRy | Note Added: 0010370 | |
2013-02-22 08:18 | DiRTy_GaRRy | File Added: FAR.7z | |
2013-02-22 18:08 | DrKnS | Note Added: 0010377 | |
2013-02-26 00:18 | DrKnS | Build | => 3220 |
2013-02-26 00:18 | DrKnS | Status | new => closed |
2013-02-26 00:18 | DrKnS | Assigned To | => DrKnS |
2013-02-26 00:18 | DrKnS | Resolution | open => fixed |
2013-02-26 00:18 | DrKnS | Fixed in Version | => 3.0 |
2013-04-13 20:01 | DrKnS | Relationship added | related to 0002367 |