Como definir a exibição de lista como a exibição FTP padrão no Windows Explorer?

10

Quando eu uso o Windows Explorer para navegar em um site FTP, o padrão é a exibição de mosaicos. Preciso que seja padronizado para a visualização de lista.

Não vejo uma configuração de registro e o padrão [Tools - > Opções de pasta ... - > Ver - > Apply to Folders] aparentemente não tem efeito em sites FTP.

    
por MiloDC 26.06.2012 / 01:36

3 respostas

3

Para o registro, aqui está uma solução parcial testada no W7 SP1 e no W10 v1511.

  1. Execute o script em lote Redefinir configurações de exibição de pastas de todas as pastas .

  2. Importar para o registro:

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. Execute explorer shell:mycomputerfolder e você deverá ver My Computer aberto na exibição de detalhes.

3b. Execute explorer ftp://your.site.com e ele deve permanecer na visualização de detalhes contanto que você não pressione o ícone do site no painel de navegação (se presente por Add Network Location ).
Você pode criar um atalho com a localização explorer ftp://your.site.com por conveniência.

Referências:
Ícones da área de trabalho do Windows 8 na visualização em mosaico (configure LogicalViewMode para outros modos de visualização)
Configurar o modo de exibição de pasta padrão para armazenamento conectado via MTP (isso ajusta todas as pastas para o mesmo modo)

    
por 08.08.2016 / 20:38
2

Eu escrevi isso para fazer isso com o Autoit: apenas execute o script e suas janelas do ftp explorer devem estar na lista quando visualizadas pela primeira vez. Ainda não é perfeito, mas tem a funcionalidade básica que você deseja. Também requer a biblioteca que encontrei aqui .

Testado no Windows 7 de 64 bits.

#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

Adendo: talvez seja necessário alterar a linha 257 de "AutomatingWindowsExplorer.au3" de If @OSVersion "WIN_XP" Then para If @OSVersion <> "WIN_XP" Then

    
por 04.08.2016 / 10:40
2

How to set List view as the default FTP view in Windows Explorer?

Eu criei uma solução simples para esse problema usando um dos dois métodos abaixo que você pode achar útil para sua consulta com as tecnologias nativas incorporadas do Windows.

Não tenho certeza se essa será a solução real que você está procurando para resolver esse problema, mas pode ser uma solução aceitável pelo menos que você possa achar útil sem precisar alterar as configurações do registro, usar soluções de terceiros etc. .

Essencialmente, isso usa sendkeys para enviar a Ctrl < teclas de atalho strong> + Shift + 6 para alterar o veja Detalhes logo após a exibição da pasta FTP - isso, no entanto, não se aplica de forma recursiva, o que pode ou não fazer diferença para sua necessidade específica.

Método 1 (escalonável)

Este é um método que consiste em (1) criar um script em lote com a lógica abaixo e (2) , criando um curto que aponte para o script em lote e então ter o argumento passará no detalhe da conexão FTP aplicável ao servidor FTP ao qual você se conectará.

Este script de lote único que você cria para este método pode ser usado para quantos atalhos você quiser usar com este método, por isso é uma solução escalável caso sua necessidade cresça para mais do que apenas uma conexão FTP no futuro.

  1. Crie um script em lote

    Crie um script em lote, que é apenas um arquivo de documento de texto salvo com uma extensão .cmd ou .bat com a lógica abaixo e salve-o em algum caminho que você referenciará no atalho criado na seção de criação de atalhos.

    @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. Crie um atalho

    Na sua área de trabalho, clique com o botão direito do mouse e selecione Novo - > Atalho e insira os valores abaixo nos quais salvou o script em lote que você acabou de criar (acima) e certifique-se de definir os valores <username> , <password> , <FTP server URL or IP address> para sua necessidade, selecione < strong> Próximo e, em seguida, dê ao atalho de FTP um nome significativo para que você saiba o que é mais tarde e, em seguida, selecione Salvar . (veja capturas de tela abaixo)

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

    IMPORTANTE: é importante que haja aspas duplas em torno do valor " %windir%\explorer.exe ftp://<Username>:<password>@<FTP server URL or IP address>/" " na parte da propriedade de atalho acima.

  3. Usando

    Agora,tudooquevocêprecisafazeréclicarduasvezesnoatalhocriadoparaabrirapastaFTPcomavisualizaçãoDetalheseétãosimplesquantoavançar.Vocêtambémpodealteraroíconenesteatalho,sequiser.

Método2(estáticoporscript)

Estemétodoésemelhanteaométodo1acima,masvocêNÃOprecisarácriarumatalhoparafuncionar,masaindaprecisarádefiniro<username>,<password>,<FTPserverURLorIPaddress>valoresparasuanecessidadedeacordocomoservidorFTPaoqualvocêseconectará.

  1. Crieumscriptemlote

    Crieumscriptemlote,queéapenasumarquivodedocumentodetextosalvocomumaextensão.cmdou.batcomalógicaabaixoesalve-oemalgumcaminhoquevocêusaráparaclicarduasvezesemexecutá-lo.

    @ECHOOFF%windir%\explorer.exeftp://<username>:<password>@<FTPserverURLorIPaddress>/:VBSDynamicBuildSETTempVBSFile=%temp%\~tmpSendKeysTemp.vbsIFEXIST"%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. Usando

    Agora, tudo o que você precisa fazer é clicar duas vezes no script em lote criado para abrir a pasta FTP com a visualização Detalhes e é tão simples quanto avançar.

Maisrecursos

por 04.08.2016 / 21:32