GARANTIR DESCONTO

Fórum Existe alguma forma de capturar o caminho do .exe? #271612

09/03/2005

0

amigos,
coloquei um arquivo .ini que indica o caminho do bd para que no acesso
ele configure o database, mas gostaria de melhorar, independente da unidade ou diretorio que colocar a pasta q contem os arquivos .exe e .ini
quando eu executasse o programa ele verificasse o caminho onde se encontra
ex:

c:\projeto\teste
ou
d:\arquivos de programas\projeto\teste

apartir dai eu gravaria no arquivo.ini o caminho do bd


desde ja agradeço



delphi7.0 e firebird


Marcusbraga

Marcusbraga

Responder

Posts

09/03/2005

Massuda

Duas formas para obter o caminho para onde o programa está instalado:
var
  S: string;
...
  S := ExtractFilePath(Application.ExeName);
  // ou
  S := ExtractFilePath(ParamStr(0));



Responder

Gostei + 0

09/03/2005

Silviogs

Olá

function GetExe(Ext : string) : string;
//
// Retorna o path completo do aplicativo que está associado
// ao arquivo cuja extensão você colocou em Ext
//
// Exemplo:
//
// Showmessage(GetExe(´txt´));
// Vai retornar: C:\Windows\Notepad.exe
//
var
reg: TRegistry; s : string;
I: integer;
begin
s := ´´;
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
if reg.OpenKey(´.´ + ext + ´\shell\open\command´,false) <> false then
begin
s := reg.ReadString(´´);
reg.CloseKey;
end
else
begin
if reg.OpenKey(´.´ + ext, false) <> false then
begin
s := reg.ReadString(´´);
reg.CloseKey;
if s <> ´´ then
begin
if reg.OpenKey(s + ´\shell\open\command´,false) <> false then
begin
s := reg.ReadString(´´);
end;
reg.CloseKey;
end;
end;
end;
if ((length(s) > 0) and (s[1] = ´´´)) then
Delete(s, 1, 1);
i := pos(´.EXE´,uppercase(S));
if I = 0 then
begin
Result := ´´
end
else
begin
Result := copy(S, 1, i +3);
end;
end;

Atenciosamente

Silvio Guedes


Responder

Gostei + 0

09/03/2005

Marcusbraga

valeu massuda mais uma vez...

Só mais uma pergunta isso seria viável? ou pode dar algum pane mais tarde por toda vez que eu abrir o programa ele gravar novamente o arquivo

ou seria mais viavel eu manter fixo o caminho no ini e mudar manualmente somente quando for preciso?

obrigado...


Responder

Gostei + 0

09/03/2005

Massuda

... isso seria viável? ou pode dar algum pane mais tarde por toda vez que eu abrir o programa ele gravar novamente o arquivo ou seria mais viavel eu manter fixo o caminho no ini e mudar manualmente somente quando for preciso?
Já fiz programas que funcionam gravando os dados de configuração em um arquivo .INI no mesmo diretório do programa (ou um subdiretório dele).

Algo que lembrei agora... existe um problema relacionado com o fato do usuário ser ou não administrador da máquina e o diretório onde o programa está instalado. Talvez não seja seu caso, mas lá vai...

Numa máquina com múltiplos usuários com diferentes permissões, a não ser que o usuário seja administrador da máquina, ele não tem permissão para escrever em qualquer um dos subdiretórios de c:\Arquivos de Programas, que é onde normalmente se instala um programa.

Um jeito fácil de contornar esse problema é instalar seu programa em um subdiretório novo (por exemplo, c:\MeuPrograma); assim, apesar de somente um administrador da máquina poder instalar seu programa, o usuário normal poderá utilizá-lo sem problemas.

Agora, pode ser que você precise mesmo instalar seu programa em c:\Arquivos de Programas. Avise se for seu caso.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar