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.
windows-7
command-line
Ônix
fonte
fonte
Respostas:
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.
fonte
cmd.exe
(que é apenas o shell de comando), a menos que a economia seja feita por um script em lote.