ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Extraindo Resources

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
thiagobarbosa48
Novato
Novato


Registrado: Quarta-Feira, 23 de Julho de 2014
Mensagens: 3

MensagemEnviada: Qua Jul 23, 2014 10:19 am    Assunto: Extraindo Resources Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Jul 23, 2014 2:24 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
thiagobarbosa48
Novato
Novato


Registrado: Quarta-Feira, 23 de Julho de 2014
Mensagens: 3

MensagemEnviada: Qua Jul 23, 2014 2:30 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Jul 23, 2014 2:37 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
thiagobarbosa48
Novato
Novato


Registrado: Quarta-Feira, 23 de Julho de 2014
Mensagens: 3

MensagemEnviada: Qua Jul 23, 2014 2:47 pm    Assunto: Responder com Citação

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... Very Happy
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB