TJvComputerInfoEx.Create não dá erro na segunda utilização
Caros
Bom Dia
Tentei usar o JvComputerInfoEx da JVCL para saber o nome dos diretórios do Windows, mas ele dá erro ao usar a função na quarta vez em diante, na primeira funciona! Eu coloquei esta funcção dentro de uma UNIT e ela foi declarada na USES dos pas/forms onde foi usada...
Por que da segunda vez em diante não funciona, mesmo no mesmo fomulário onde acabou de funcionar???
[/code]
Bom Dia
Tentei usar o JvComputerInfoEx da JVCL para saber o nome dos diretórios do Windows, mas ele dá erro ao usar a função na quarta vez em diante, na primeira funciona! Eu coloquei esta funcção dentro de uma UNIT e ela foi declarada na USES dos pas/forms onde foi usada...
Por que da segunda vez em diante não funciona, mesmo no mesmo fomulário onde acabou de funcionar???
function DirLocal: String; Var JvComputerInfoEx1: TJvComputerInfoEx; begin JvComputerInfoEx1 := TJvComputerInfoEx.Create(JvComputerInfoEx1) ; // esta linha que dá erro Access Violation... // Verificar Diretório para gravação de Configurações. if (JvComputerInfoEx1.Folders.CommonAppData<>´´) and (DirectoryExists(JvComputerInfoEx1.Folders.CommonAppData)) and ((IsAdmin and not IsVista) or (IsWin98)) then // Tenta Colocar no Diretório Comum de Dados dos Aplicativos DirLocal := JvComputerInfoEx1.Folders.CommonAppData+´\ADV para Windows\´ else if (JvComputerInfoEx1.Folders.Profile<>´´) and (DirectoryExists(JvComputerInfoEx1.Folders.Profile)) then // Tenta Colocar no Diretório de Dados dos Aplicativos - Este é o padrão DirLocal := JvComputerInfoEx1.Folders.Profile+´\ADV para Windows\´ else if (IsAdmin and not IsVista) or (IsWin98) then DirLocal := ExtractFilePath(Application.ExeName) // Diretório da Aplicação quando não é Vista, ou Win98, ou XP com Administrador else if pos(JvComputerInfoEx1.Folders.ProgramFiles,ExtractFilePath(Application.ExeName)) > 0 then // Só libera se estiver em outro diretório fora dos "Arquivos de Programas" DirLocal := ´c:\ADV\Configurações\´ else DirLocal := ExtractFilePath(Application.ExeName); // Só vai para o diretório da aplicação no Vista, se não tiver nenhuma outra opção e se o Software não estiver instalado no Arquivos de Programas //+ end;
Oswaldosaraujo
Curtidas 0