Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como atualizar uma pasta do windows?


Douglas Soares

Pergunta

Bom dia... estou com um grande problema aqui... tenho um programa que compila um instalador do inno setup via linha de comando... pra pegar a porcetagem eu pego o tamanho atual do arquivo, até chegar ao tamanho completo... só que pra isso o windows tem que atualizar a pasta do executavel toda hora... até o windows xp meu programa funcionava, mas agora no windows 7 ele não atualiza mais... peguei um código na net:

SetForegroundWindow(FindWindow(nil, 'Sigi'));
SendKeys('{F5}', True);

Realmente funciona, porém a pasta tem que estar aberta, e quando executo esse comando a pasta vem pra frente da aplicação...ou seja, é inutil...

Como eu faria para atualizar essa pasta via código, mas sem a pasta vir na frente da aplicação... ela pode até ficar aberta se for o caso!

Abraços

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Se voce ta pegando o tamanho do arquivo via código, supostamente não precisa dessa parte de atualizar pasta do Windows a menos que voce ta fazendo a arte de utilizar um Explorer em seu programa já que voce ta dando um foreground em uma janela chamada Sigi e do Windows é Cabinet

Enfim, resumindo pega o tamanho do arquivo tipo pelo código abaixo

function GetFileSize(const szFile: String): Integer;
var
  SearchRec: TSearchRec;
  sgPath: string;
  inRetval, I1: Integer;
begin
  sgPath := ExpandFileName(szFile);
  I1 := -1;
  try
    inRetval := FindFirst(ExpandFileName(szFile), faAnyFile, SearchRec);
    if inRetval = 0 then
    I1 := SearchRec.Size;
  finally
    SysUtils.FindClose(SearchRec);
  end;
  Result := I1;
end;

abrax

Link para o comentário
Compartilhar em outros sites

  • 0

O Problema é que assim ele não muda o valor nunca... o que quero fazer é tipo uma barra de progresso... o valor total é mais ou menos 10 megas... dai eu coloco isso no max do gauge... e o progress do gauge eu coloco o tamanho do arquivo usando a função GetFileSize... só que ela retorna sempre o mesmo valor, dai fica sempre parada a barrinha... o problema é que no windows xp funciona, mas no windows 7 não funciona... ele não atualiza os arquivos em tempo real... (é um bug)... por isso queria atualizar a pasta, se eu deixo ela aberta e fico apertando F5, a barrinha do programa atualiza normal....

Deu pra entender???

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Sim sim, só não entendo porque ai não atualiza, fiz uns testes aqui e atualiza normal... Windows 7 x64

Sem idéia agora hehe

Já fucei aqui mas não resolveria seu problema, já que aqui funciona normal e eu não consigo emular dessa forma ai

qualquer coisa eu posto aqui

abrx

Link para o comentário
Compartilhar em outros sites

  • 0

Tipo, pra emular você teria que ter o InnoSetup e o ISTool, dai você poe pra compilar qualquer coisa e fica olhando a pasta que o executavel esta sendo compilado... daí você ve se ele muda de tamanho sempre ou só quando começa e quando termina.... no meu xp ele muda sempre, mas aqui no win 7 ele só muda quando começa e quando termina.... :unsure:

Link para o comentário
Compartilhar em outros sites

  • 0

Vá no Gerenciador de Tarefás. Finalize toda a arvore do Windows Explorer (Explorer.exe)

Para acesso ao Gerenciador de Tarefás, clique com botão direito ai na sua barra abaixo onde fica as janelas dos programas, clique em um espaço que não tem programa, em lugar liso. Ai então aparecera a opção Gerenciador de Tarefás.

Seleciodo com Botão direito o Programa Windows Explorer e aperte em Ir para Detalhes. Vai aparecer o programa em execução com o nome Explorer.exe. Clique com botão direito novamente e vá em Finalizar Árvore de Processo.

Obs.: Após fazer isso não saia da janela (Gerenciador de Tarefás) de jeito nenhum, voce pode se perder e ter que reiniciar o computador. (instrução para iniciante)

Este processo é para reiniciar o sistema Work do Windows.

Ainda em Gerenciador de Tarefás, na parte superior vá em Arquivo> Executar Nova Tarefa e acione no campa de escrita Explorer.exe, e no WIN10 tem que selecionar Criar esta tarefa com previlegios administrativos>OK!

Caso tenha medo na execução anote tudo e faça que dara certo.

FEITO!!!

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...