10

Когда я использую проводник Windows для просмотра FTP-сайта, по умолчанию используется вид Tiles. Мне нужно по умолчанию для просмотра списка.

Я не вижу настройки реестра, и стандартные [Инструменты -> Параметры папок ... -> Вид -> Применить к папкам], очевидно, не влияют на FTP-сайты.

3 ответа3

3

Для справки, вот частичный обходной путь, протестированный на W7 SP1 и W10 v1511.

  1. Запустите пакетный скрипт Reset Folder View Настройки всех папок.

  2. Импорт в реестр:

Windows Registry Editor Version 5.00

;My Computer
[HKEY_CURRENT_USER\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ShellFolder]
"FolderType"=""

;Microsoft FTP Folder
[HKEY_CURRENT_USER\Software\Classes\CLSID\{63da6ec0-2e98-11cf-8d82-444553540000}\ShellFolder]
"FolderType"=""

[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{00000000-0000-0000-0000-000000000000}]
"LogicalViewMode"=dword:00000001
"Mode"=dword:00000000

3a. Запустите explorer shell:mycomputerfolder и вы увидите, что My Computer открыт в подробном представлении.

3b. Запустите explorer ftp://your.site.com и он должен оставаться в подробном представлении, если вы не нажмете значок сайта на панели навигации (если он присутствует в разделе « Add Network Location).
Для удобства вы можете создать ярлык с помощью проводника местоположения explorer ftp://your.site.com .

Рекомендации:
Значки рабочего стола Windows 8 в представлении «Плитка» (настройте LogicalViewMode для других режимов просмотра)
Настроить представление папок по умолчанию для хранилища, подключенного через MTP (при этом все представления папок будут переведены в один и тот же режим)

2

Как установить представление списка в качестве представления FTP по умолчанию в проводнике Windows?

Я придумал простое решение этой проблемы, используя один из двух методов ниже , которые могут оказаться полезными для вашего запроса с помощью встроенных технологий Windows.

Я не уверен, что это будет именно то решение, которое вы ищете для решения этой проблемы, но это может быть приемлемый обходной путь, по крайней мере, который вам может пригодиться без необходимости изменять настройки реестра, использовать сторонние решения и т.д.

По сути это использует sendkeys для отправки сочетаний клавиш Ctrl + Shift + 6, чтобы изменить представление на Подробности сразу после открытия представления папки FTP - это, однако, не применяется рекурсивно, так что это может иметь или не иметь значение для вашей конкретной потребности.


Метод 1 (масштабируемый)

Это метод, который будет состоять из (1) создания пакетного сценария с приведенной ниже логикой и (2) затем создания короткого замыкания, указывающего на пакетный сценарий, а затем с его аргументом передается соответствующая деталь соединения FTP для FTP-сервера. вы подключитесь к.

Этот один пакетный скрипт, который вы создаете для этого метода, можно использовать для любого количества ярлыков, которые вы хотите использовать с этим методом, так что это масштабируемое решение, если в будущем вам потребуется больше, чем одно FTP-соединение.

  1. Создать пакетный скрипт

    Создайте пакетный сценарий, который представляет собой просто текстовый файл документа, сохраненный с расширением .cmd или .bat с указанным ниже логическим элементом, и затем сохраните его по некоторому пути, на который вы будете ссылаться в ярлыке, созданном вами в разделе «Создать ярлык».

    @ECHO OFF
    
    %~1
    
    :VBSDynamicBuild
    SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs
    IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
    ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
    ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
    ECHO WshShell.SendKeys "^+6"                              >>"%TempVBSFile%
    ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
    
    CSCRIPT //nologo "%TempVBSFile%"
    
    EXIT /B
    
  2. Создать ярлык

    На рабочем столе щелкните правой кнопкой мыши и выберите « Создать» -> « Ярлык» и вставьте нижеприведенные значения, в которых вы сохранили только что созданный пакетный скрипт (выше), и обязательно установите <username> , <password> , <FTP server URL or IP address> значения для вашей потребности соответственно, выберите Далее, а затем дайте ярлыку FTP значимое имя, чтобы вы знали, что это было позже, а затем выберите Сохранить. (см. скриншоты ниже)

    D:\BatchScripts\OpenFTPDetailView.cmd "%windir%\explorer.exe ftp://<Username>:<password>@<FTP server URL or IP address>/"
    

    ВАЖНО! Важно, чтобы в значении " %windir%\explorer.exe ftp://<Username>:<password>@<FTP server URL or IP address>/" в приведенной выше части свойства ярлыка содержалось двойные кавычки. ,

  3. Используй это

    Теперь все, что вам нужно сделать, - это дважды щелкнуть созданный вами ярлык, чтобы открыть папку FTP с представлением « Подробности», и это так же просто, как двигаться вперед. Вы можете изменить значок на этом ярлыке, если хотите.


Способ 2 (статический для сценария)

Этот метод аналогичен методу 1 выше, но вам НЕ нужно создавать ярлык для его работы, но вам все равно нужно будет установить значения <username> , <password> , <FTP server URL or IP address> для ваших нужд соответственно для FTP-сервера, к которому вы будете подключаться.

  1. Создать пакетный скрипт

    Создайте пакетный сценарий, который представляет собой просто текстовый файл документа, сохраненный с расширением .cmd или .bat с приведенной ниже логикой, и затем сохраните его по некоторому пути, который вы будете использовать для двойного щелчка, чтобы выполнить его.

    @ECHO OFF
    
    %windir%\explorer.exe ftp://<username>:<password>@<FTP server URL or IP address>/
    
    :VBSDynamicBuild
    SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs
    IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
    ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
    ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
    ECHO WshShell.SendKeys "^+6"                              >>"%TempVBSFile%
    ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
    
    CSCRIPT //nologo "%TempVBSFile%"
    
    EXIT /B
    
  2. Используй это

    Теперь все, что вам нужно сделать, - это дважды щелкнуть созданный вами пакетный скрипт, чтобы открыть папку FTP в представлении « Подробности», и это так же просто, как двигаться вперед.


Дополнительные ресурсы

2

Я написал это, чтобы сделать это с Autoit: просто запустите скрипт, и ваши окна ftp explorer должны быть в виде списка при первом просмотре. Это еще не идеально, но у вас есть базовая функциональность, которую вы хотите. Также требуется библиотека, которую я нашел здесь.

Проверено на Windows 7 64-битной.

#include "Automating Windows Explorer\Includes\AutomatingWindowsExplorer.au3" ;UDF
#include <Array.au3>

Local $str = "Address: ftp" ;part of visible text in explorer control, unique to ftp, I think...
Local $CheckedWindows[5] ;Keep track of activated windows because I don't have a shell hook for window.created
Local $hExplorer

while 1
    Sleep(2000)    
    $hExplorer = WinWaitActive("[CLASS:CabinetWClass]", $str)

    If not ContainsElement($CheckedWindows,$hExplorer) then ;Only trigger on a *new* window
        setFTPview($str,$hExplorer)
        _ArrayAdd($CheckedWindows,$hExplorer)
    EndIf
    ;delete unused handles to prevent aliases or large array, but I don't know the shell hook for window.closed
    ;alternative is to periodically loop through existing windows and delete non-existing handles (todo)
WEnd

func ContainsElement($arr,$el)
    Local $Bound = UBound($arr)
    For $i=0 to ($Bound -1)
        If $arr[$i] == $el then return True
    Next
    return False
Endfunc

func setFTPview($str,$hExplorer)
    GetIShellBrowser( $hExplorer )
    If Not IsObj( $oIShellBrowser ) Then
        MsgBox( 0, "Automating Windows Explorer", "Could not get an IShellBrowser interface. Terminating." )
    Return
    EndIf
    GetShellInterfaces() ; Get other interfaces, might not be needed
    SetIconView($FVM_LIST)
    Sleep(1000)
endfunc

Приложение: вам может понадобиться изменить строку 257 «AutomatingWindowsExplorer.au3» с If @OSVersion "WIN_XP" Then на If @OSVersion <> "WIN_XP" Then

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .