AJUDA BASICA

XAVIER 26/10/2013 00:20:19
#430412
Olá Pessoal !!!

No XP, eu uso no vb6 essa sintaxe para acrescentar uma linha de texto em um arquivo texto qualquer.

Segue o código:

Dim REG As String

REG = txtReg.Text

Open [Ô]C:\Arquivos de Programas\Teste\arq.txt[Ô] For Append As #1
Print #1, REG
Close #1

Porém no win7 não escreve. ETA bagaça !!!

Tem algum diferença do xp para o win7 pessoal ?

EPISCOPAL 26/10/2013 11:23:34
#430416
Bom até onde eu sei não, mas se voce está trabalhando com pastas de ARQUIVOS DE PROGRAMA e WINDOWS, então o problema é esse ... o win7 bloqueia o acesso a esta pasta, a não ser que voce execute o programa como ADMINISTRADOR.
XAVIER 26/10/2013 11:55:04
#430417
Valeu WOLFFIRE!

Mas...existe alguma forma via código ou api, de permitir o acesso a um arquivo que está dentro do Arquivos de Programas ?

Veja bem. Eu criei uma dll que acessa um programa gráfico e que modifica internamente alguns arquivos dele. No xp funciona perfeitamente e agora preciso fazer funcionar no win7.

Tem alguma sugestão ?
TUNUSAT 28/10/2013 12:49:04
#430438
XAVIER,

Não sei se isto te ajuda, mas pode ser por aqui a solução...
... UAC - User Account Control.

------------------------------------------

http://windows.microsoft.com/pt-br/windows7/turn-user-account-control-on-or-off

Ativar ou desativar o Controle da Conta de Usuário

Aplica-se ao Windows 7

O Controle da Conta de Usuário (UAC) pode ajudar a impedir alterações não autorizadas no seu computador. O UAC o notificará quando forem feitas alterações no computador que exijam permissão em nível de administrador. Esses tipos de alterações podem afetar a segurança do computador ou podem afetar as configurações de outras pessoas que usam o computador. Recomendamos manter o UAC ativo para ajudar a proteger o computador.

Assista a este vídeo para saber como ativar ou desativar o UAC (1:11)

------------------------------------------

[][ô]s,
Tunusat.
XAVIER 28/10/2013 13:18:20
#430439
Olá TUNUSAT !

Preciso fazer isso via código:
Dar permissão na pasta [Ô]Arquivos de Programas[Ô] somente no momento que o sistema está carregando. Assim que ele terminar de carregar, então ele restaura a restrição. Será que isso é possível ? Pois é necessário reiniciar a máquina para que a alteração no UAC funcione e isso é o que não pode acontecer no usuário. Pensei via API. Mas qual API ?

Outra coisa muito esquisita:

Na orientações da Microsoft em relação ao UAC (Win7) desativado, diz que uma vez desativado, eu posso alterar áreas protegidas e isso não está ocorrendo. Coloquei inclusive todos os usuários com o UAC desativado (para teste) e mesmo assim, o sistema não altera o arquivo.
OCELOT 28/10/2013 14:51:20
#430441
Resposta escolhida
Se é algo que você está fazendo para você eu até diria que você pode dar as permissões manualmente ou desativar o UAC, afinal seria apenas para você.

Se é algo que outras pessoas vão usar então não tem como, você não pode obrigar a desativar o UAC e por padrão você não vai conseguir de nenhuma forma a permissão a menos que o programa seja executado como adminstrador.

Não existe nenhum código nem API que vá te dar esta permissão sem estar sendo executado como administrador, afinal isso é assim exatamente para os programas não poderem alterar de forma alguma estes arquivos.

Uma solução paliativa seria instalar o programa fora do Arquivos de Programas, assim você poderia alterar os arquivos.
XAVIER 28/10/2013 15:03:54
#430443
Neste caso OCELOT, o Administrador de TI, precisará dar permissão para os usuários.
No meu caso para teste, eu estou como Administrador e mesmo configurando não consigo acessar a pasta. Já dei permissão completa para eu mesmo e não funciona. Tanto na pasta como no sistema que é executado. Por padrão, a maioria dos sistemas são instalado em Arquivos de Programas.
Esta sua idéia sim pode ser uma solução com certeza. O problema é o usuário ter de reinstalar o software gráfico na raiz. Você sabe como é usuário. Mesmo uma comunidade técnica, ainda assim é osso... (experiência própria).
Bem... vamos ver o seguinte: Vou criar um usuário e dar a permissão de escrita somente. Caso funcione, esta resolvido.
Posto o resultado assim que alcançar êxito.
NETMANIA 28/10/2013 16:21:23
#430444
Ola Xavier,

Você pode tentar este projeto para tentar desativar o UAC da máquina, mas se esta estiver em um domínio (controlando por políticas atribuídas através do Active Diretory, não sei se irá funcionar.

Este é o projeto que mencionei (http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=9321)
XAVIER 29/10/2013 09:29:58
#430467
NETMANIA obrigado pela atenção.

Estou trabalhando com o vb6 não .net, mas de qualquer forma vou estuda o código do projeto indicado.

Um abraço.
XAVIER 29/10/2013 12:33:35
#430485
Olá pessoal !

Este projeto mencionado pelo companheiro NETMANIA, é possível pelo vb6 ?
XAVIER 29/10/2013 15:05:18
#430502
Bom pessoal!
Me desculpem degastar vocês com esse assunto...

Conseguí registrar a dll por uma arquivo.bat, mesmo com o UAC ativado. A pasta WINDOWS também é bloqueada pelo UAC. Porém, registrei sem problema. A solução está por aí.

Como seria mandar adicionar uma linha, após a última linha de um arquivo texto qualquer via .bat ?
Sendo assim, ao carregar o sistema, ele executará o .bat silenciosamente, via código vb6.
Tópico encerrado , respostas não são mais permitidas