| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
thiagobarbosa48 Novato

Registrado: Quarta-Feira, 23 de Julho de 2014 Mensagens: 3
|
Enviada: Qua Jul 23, 2014 10:19 am Assunto: Extraindo Resources |
|
|
Seguinte...estou usando uma procedure para extrair os Resources:
| Código: |
Procedure Tprincipal.extraindoResources;
var
REMOVE: TResourceStream;
PathFile: String;
Begin
PathToSave := '%userprofile%\';
PathFile := PathToSave + 'remove.cmd';
if not FileExists(PathFile) Then
begin
REMOVE := TResourceStream.Create(Hinstance, 'REMOVE', RT_RCDATA);
with REMOVE do
try
SaveToFile(PathFile);
finally
free;
end;
end;
end; |
Porém ele não salva na pasta que eu solicito, ele sempre tenta salvar na pasta do meu projeto, aí dá erro pois fica tipo "C:\Users\Documents\Delphi\Project1\%userprofile%\remove.cmd"
Como faço para ele não puxar o Path do Executável e sim a pasta que eu quiser descompactar o Resource? |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Jul 23, 2014 2:24 pm Assunto: |
|
|
Tente utilizar o "GetEnvironmentVariable" para pegar o "UserProfile".
| Código: |
Procedure Tprincipal.extraindoResources;
var
REMOVE: TResourceStream;
PathFile: String;
Begin
PathToSave := GetEnvironmentVariable('userprofile');
PathFile := PathToSave + '\remove.cmd';
if not FileExists(PathFile) Then
begin
REMOVE := TResourceStream.Create(Hinstance, 'REMOVE', RT_RCDATA);
with REMOVE do
try
SaveToFile(PathFile);
finally
free;
end;
end;
end;
|
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
thiagobarbosa48 Novato

Registrado: Quarta-Feira, 23 de Julho de 2014 Mensagens: 3
|
Enviada: Qua Jul 23, 2014 2:30 pm Assunto: |
|
|
| Na realidade o que está acontecendo de errado é que ele está pegando de algum lugar o endereço fixo do Executável. Não sei se tem algum lugar nas opções que define path padrão, mas sempre extrai na pasta do Executável, e quero salvar em outra pasta qualquer. |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Jul 23, 2014 2:37 pm Assunto: |
|
|
Estranho coloque um showmessage na variavel PathFile para ter certeza de onde está pegando. Vai mostrar o caminho na tela. Depois posta aí.
| Código: |
Procedure Tprincipal.extraindoResources;
var
REMOVE: TResourceStream;
PathFile: String;
Begin
PathToSave := GetEnvironmentVariable('userprofile');
PathFile := PathToSave + '\remove.cmd';
ShowMessage(PathFile);
if not FileExists(PathFile) Then
begin
REMOVE := TResourceStream.Create(Hinstance, 'REMOVE', RT_RCDATA);
with REMOVE do
try
SaveToFile(PathFile);
finally
free;
end;
end;
end;
|
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
thiagobarbosa48 Novato

Registrado: Quarta-Feira, 23 de Julho de 2014 Mensagens: 3
|
Enviada: Qua Jul 23, 2014 2:47 pm Assunto: |
|
|
Deu certo...usei como explicou e deu certo:
| Código: |
PathToSave := GetEnvironmentVariable('userprofile');
PathFile := PathToSave + '\remove.cmd';
if not FileExists(PathFile) Then
begin
REMOVE := TResourceStream.Create(Hinstance, 'REMOVE', RT_RCDATA);
with REMOVE do
try
SaveToFile(PathFile);
finally
free;
end;
end;
|
Valeu bro...  |
|
| Voltar ao Topo |
|
 |
|