WRITEPRIVATEPROFILESTRING NO WIN8
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
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
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
http://msdn.microsoft.com/en-us/library/windows/desktop/ms725501%28v=vs.85%29.aspx
é ...... isso tá me cherando migração para a plataforma NET ..... daqui uns dias se eu usar form1.cls vai limpar toda tela do desktop ....
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.
[Ô]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.
Ocelot, Vou avaliar o diretório e também o tratamento de erro na API.
é quase certeza de que é isso mesmo.
Valeu.
é quase certeza de que é isso mesmo.
Valeu.
Tópico encerrado , respostas não são mais permitidas