WRITEPRIVATEPROFILESTRING NO WIN8

EDSONLOPES 23/04/2013 08:47:15
#422329
Esta função, utilizada para gravar arquivos de inicialização, funciona perfeitamente no win7, vista e xp. Ocorre que no Win8-64 ela nada grava e também não exibe nenhum erro.
A pasta e o arquivo .INI são de propriedade do login do windows que é administrador.

Alguém já passou por esta dificuldade? utilizou outra função para a mesma finalidade?

Grato


Declare Function WritePrivateProfileString Lib [Ô]kernel32[Ô] Alias [Ô]WritePrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpstring As Any, ByVal lpFileName As String) As Long

RHADYE 27/04/2013 01:07:26
#422595
Caro EDSON, nunca testei isso no windows 8 mas pelo que vi no msdn essa função da api pode ter seu funcionamento alterado por uma diretiva do sistema e passar a ler as informações no registro ao invés do arquivo. Aqui segue o link para mais informações.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms725501%28v=vs.85%29.aspx
EPISCOPAL 27/04/2013 08:54:02
#422596
é ...... isso tá me cherando migração para a plataforma NET ..... daqui uns dias se eu usar form1.cls vai limpar toda tela do desktop ....
OCELOT 27/04/2013 13:26:52
#422602
Resposta escolhida
Provavelmente você não tem permissão de gravação no diretório.

[Ô]Não dar erro[Ô] é algo relativo quando se usa API, API nunca da erro da mesma forma que código do VB6 em que se trata com o [Ô]On Error[Ô], se você ler a documentação dessa função vai ver que se ela executar com sucesso ela retorna um valor diferente de zero, se falhar ela retorna zero, nesse caso precisa-se usar uma outra API chamada GetLastError para pegar o número do erro e pode-se opcionalmente ainda usar a API FormatMessage para pegar o texto da mensagem do erro.

EDSONLOPES 27/04/2013 21:54:47
#422622
Ocelot, Vou avaliar o diretório e também o tratamento de erro na API.
é quase certeza de que é isso mesmo.
Valeu.
Tópico encerrado , respostas não são mais permitidas