Como diagnosticar o erro “O Windows não pode acessar o dispositivo, caminho ou arquivo especificado”?

1

Ao executar o script Python na linha de comando, recebo este erro

Windows cannot access the specified device, path, or file. You man not have the appropriate permissions to access the item.

Como posso verificar qual caminho o sistema tenta acessar? Nenhuma entrada é criada em nenhum dos logs do sistema (Aplicativo, Segurança, Configuração, Sistema). Todas as soluções que encontrei na web mencionam a alteração das propriedades do arquivo. O problema é que neste caso eu não sei qual arquivo o sistema tenta usar para manipular o script Python. Como posso encontrar essa informação? Eu acho que uma ferramenta que monitora todos os arquivos que o sistema tenta abrir pode ajudar aqui.

Detalhes

Quando tento executar o script Python com .py extenstion na linha de comando apenas fornecendo o nome do script (como sample.py ), recebo o erro acima. Eu acho que o problema é devido a má associação de arquivos, mas ... executando reg query HKCR\.py /ve(Default) REG_SZ Python.File e reg query HKCR\Python.File\shell\open\command /ve (Default) REG_SZ c:\python.7\python.exe "%1" %* e o arquivo c:\python.7\python.exe existe e eu posso executá-lo a partir da linha de comando sem problema. Isso me faz pensar que o sistema tenta abrir o script Python usando algum outro caminho no registro. O problema é que não tenho ideia do que é esse caminho.

Windows Vista 64 bits, executando 64 bits cmd.exe, 64 bits Python.

EDITAR

O Process Monitor é muito útil, mas ainda não consigo encontrar a raiz exata que causa o problema. Tentar lançar o script Python gera 866 entradas:

BUFFER TOO SMALL                 1
END OF FILE                      1
FILE LOCKED WITH ONLY READERS   12
NAME NOT FOUND                 301
NO MORE ENTRIES                  4
REPARSE                          5
SUCCESS                        542

Não há resultado NO SUCH FILE . Eu acho que é porque o sistema nem sequer tenta iniciar o executável para abrir o arquivo Python devido a não ser capaz de encontrar um manipulador de definição de entrada de registro adequado para .py files. Existem 178 entradas do tipo RegQueryKey e 141 entradas do tipo RegQueryValue , mas eu tenho dificuldade em tentar tirar qualquer conclusão lendo elas.

    
por Piotr Dobrogost 22.04.2012 / 11:52

1 resposta

3

Uma rápida iniciação do monitor de processo

  1. Abra o Monitor de processo .
  2. Execute seu aplicativo e espere o erro acontecer.
  3. Crie um filtro para o seu aplicativo, clicando com o botão direito do mouse em qualquer uma das entradas que exibem o Nome do processo do seu aplicativo e clicando em Incluir 'yourapp.exe' . br>
  4. Agora,vejaquaistiposdevaloresderetornovocêobteve.AbraomenuFerramentasecliqueemContarOcorrências.
  5. No campo Coluna , selecione Resultado e clique em Contagem .
  6. Agora, procure um erro que possa se correlacionar ao seu problema.
    Temos 2 erros NO TAIS ARQUIVOS , que parecem interessantes. Vamos dar um duplo clique nele!
  7. E lá vamos nós ...
por 22.04.2012 / 13:04