Denis_Rave Postado Janeiro 5, 2007 Denunciar Share Postado Janeiro 5, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 5, 2007 Denunciar Share Postado Janeiro 5, 2007 Tente abrir o arquivo de modo exclusivo e se der erro é porque o mesmo está sendo usado: n = FreeFile() Open "d:\teste.xls" For Binary Lock Read As #n Close #nAbraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis_Rave Postado Janeiro 5, 2007 Autor Denunciar Share Postado Janeiro 5, 2007 Hmm...entendi..agora, uma perguntapelo 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 7, 2007 Denunciar Share Postado Janeiro 7, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis_Rave Postado Janeiro 7, 2007 Autor Denunciar Share Postado Janeiro 7, 2007 Valeu Graymalkin, tu é demais mesmo!Vou dar uma procurada sobre como diferenciar somente leitura dos arquivos que estão abertos...como você mesmo disse, se os anti-virus usam processos semelhantes, deve ter uma maneira de se fazer ;)Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 7, 2007 Denunciar Share Postado Janeiro 7, 2007 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 pastaIsso 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis_Rave Postado Janeiro 8, 2007 Autor Denunciar Share Postado Janeiro 8, 2007 Putzz...que massa!Nunca tinha ouvido falar dessa funçao GetObject ^^Acho que com isso eu posso continuar o trabalho aqui xDValeu mais uma vez, tu é meu idolo cara!Abração Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Denis_Rave
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
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.