Ir para conteúdo
Fórum Script Brasil
  • 0

Arquivo Em Uso


Denis_Rave

Pergunta

Bom, postei a duvida em um tpc de outro assunto, mas parece que o pessu não viu xD..

Como eu posso checar se um arquivo está aberto no momento?

Por exemplo, eu abro um arquivo .doc, etc pelo meu programa...

Quero saber como checar se o arquivo ainda está sendo utilizado pelo usuário (aberto), mas através de um outro programa, entende?

No caso, seriam duas aplicações diferentes..uma realiza a abertura dos documentos e a outra checa quais estao sendo usados...

Abraços

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Hmm...entendi..

agora, uma pergunta

pelo codigo que voce colocou, ele abriu o arquivo travando o modo de leitura, certo?

agora, o codigo funcionaria mesmo se o arquivo em questao foi aberto em modo somente leitura?

e caso funcione, existe alguma maneira de diferenciar se o arquivo está aberto em somente leitura ou não?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

pelo codigo que voce colocou, ele abriu o arquivo travando o modo de leitura, certo?

Não, na verdade ele abre o arquivo para leitura travando o mesmo (o arquivo). Se o arquivo estiver aberto no Excel (que também trava o arquivo) o código não vai conseguir realizar o processo de travá-lo e por isso ocorre o erro.

agora, o codigo funcionaria mesmo se o arquivo em questao foi aberto em modo somente leitura?

Não, visto que dois ou mais programas podem abrir arquivos no modo somente-leitura. A principal característica de abrir um arquivo como somente-leitura é não trancá-lo e permitir que outros o abram também como somente-leitura (sendo, é claro, que um deles pode até abrí-lo como exclusivo).

e caso funcione, existe alguma maneira de diferenciar se o arquivo está aberto em somente leitura ou não?

Não, creio que desta maneira não. No caso você teria que procurar algo sobre como investigar quais os arquivos utilizados por um determinado programa ou processo no sistema operacional. Isso é possível tendo em vista que utilitários de anti-vírus o fazem.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Ah, me ocorreu uma coisa agora: se o seu caso se resumir aos aplicativos da suíte Office, você também poderia fazer algo como:

    Set excel = GetObject(, "Excel.Application")
    
    For Each pasta In excel.Workbooks
        Debug.Print pasta.Name
    Next pasta

Isso listará todos as pastas de trabalho abertas pelo Excel. Códigos semelhantes podem ser usados para o Word e o PowerPoint, por exemplo.

A primeira linha resultará em erro se não existir uma instância do Excel aberta. E verificando pasta.ReadOnly você também poderá saber se o arquivo está aberto como somente-leitura ou não.

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...