Como habilitar a gravação na unidade C no Dos App?

0

Eu sei que é uma má ideia do ponto de vista de segurança. Mas isso absolutamente tem que ser feito. Problema: o Windows 7 Home Premium x64, precisa executar um aplicativo DOS que grava um arquivo de saída em C: \ O aplicativo funciona bem, mas não produz nenhum erro e simplesmente falha ao gravar o arquivo. Eu tentei runas e elevar - nem fazem nenhuma diferença. Dei ao usuário permissões completas, através da guia Segurança, para a unidade c: - através da GUI, elas podem criar facilmente um novo documento RTF em C :.

Isso tudo porque um aplicativo de contabilidade existente que estava sendo executado no Dos no XP foi criado por um desenvolvedor morto, o computador sobreviveu a ele e foi substituído por uma caixa do Win7.

Ônix
fonte
1
Como você está executando um programa DOS no Windows x64, que nem sequer têm NTVDM para suporte DOS? (Será que é mesmo um programa DOS e não apenas um programa de console do Windows regular?)
grawity
Estou executando-o com o modo de compatibilidade para o XP SP3. O aplicativo certamente tem a aparência de um aplicativo DOS, rodando em sua própria janela. Eu entendo que é compilado xBase.
Onyx
Aplicativos DOS não tem qualquer aparência específica que seria diferente de aplicações de console do Windows ... (por exemplo, cmd.exe, o Prompt de Comando, não é um aplicativo DOS.)
grawity

Respostas:

0

Use o Process Monitor para descobrir quais arquivos o programa está tentando criar e quais erros ele recebe no sistema operacional. Se o programa não relatar nenhum erro, ele pode estar gravando o arquivo em outro lugar.

Você deve ver o processo real inicializando, lendo o banco de dados de contabilidade e criando o arquivo de saída antes que o cmd.exe continue com outras tarefas em lote. (Observe que o syscall CreateFile também é usado para ler arquivos existentes, não apenas para criar novos.)

No entanto, se é realmente um aplicativo DOS, não será iniciado, pois a emulação NTVDM DOS não faz parte do Windows x64. Nesse caso, você precisaria executar um Windows de 32 bits (por exemplo, no VirtualBox) ou usar ferramentas como o DOSbox.

gravidade
fonte
Obrigado por essa ferramenta, muito útil! Infelizmente ele só fica para o funcionamento do cmd.exe - CreateFile, o nome do arquivo, e result = Nome não encontrado
Onyx
Isso é estranho - ele deve aparecer sob o nome do programa individual, não sob cmd.exe(que é apenas o shell de comando), a menos que a economia seja feita por um script em lote.
grawity
Um script em lote envolve o processo que deveria criar e salvar o arquivo em alguma lógica de verificação e copia o arquivo criado para um compartilhamento de samba na rede, onde pode ser usado.
Onyx
Certo, você deve ver o processo real inicializando, lendo o banco de dados de contabilidade e criando o arquivo de saída antes que o cmd.exe continue com outras tarefas em lote. No entanto, se realmente for um aplicativo DOS, não será iniciado, pois a emulação do NTVDM DOS não faz parte do Windows x64.
grawity
Ok, então realmente deve ser um aplicativo do Windows fugly :) Acho que vou ter que carregar o virtualbox, executando o XP, para fazer isso funcionar novamente.
Onyx