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

Startup(inicialização)


Paulo Nobre

Pergunta

23 respostass a esta questão

Posts Recomendados

  • 0

Não tem chave para isso. No caso, essa é uma pasta e tudo que está ali é automaticamente executado quando o Windows entra.

As chaves que existem no registro (mas que não tem haver com a pasta Inicializar, apesar de terem o mesmo efeito) são HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run e HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, GrayMalkin a quanto tempo em?

Em relação as chaves do RUN já estou usando.

O que eu preciso é o seguinte:

Tenho um listbox que mostra todos os programas que iniciam com Windows, através dele o usuário

poderá eliminá-lo da chave do registro.

Como você mencionou

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run e HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

São as chaves que uso para baixar os que estão lá.

A minha pergunta teve como objetivo poder baixar os outros, os que se encontram no menu iniciar inicialização.

Sei que o caminho genérico do startup encontro na chave:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders.

Se os nomes estivessem no registro usaria um TStringList e passaria para o listbox.

Estando numa pasta(os atalhos é que ficam lá, acho) terei que arrumar um jeito de pegar todos os nomes da pasta e copiar para o listbox. Teria que arrumar também uma maneira de quando o usuário clicar no caminho que está no listbox o progrma fosse deletado desta pasta.

Essa é a única maneira ou existe algo mais inteligente?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei se você chegou a usar aquela rotina que eu postei no tópico Escolher Um Arquivo Aleatório, mas aquela rotina funciona justamente para pegar a lista de arquivos de uma pasta e passar pra um TStringList.

Agora, para fazer um arquivo da pasta inicializar não inicializar aí tem que apagar ele daquela pasta mesmo. Pelo que entendí você gostaria que o usuário pudesse marcar ou desmarcar um programa da lista, né? Nesse caso acho que quando o usuario desmaracar um item, você terá que move-lo dessa pasta para outra. A lista deverá listar o conteúdo dessas duas pastas, os que estiverem marcados são da pasta inicializar, e os que não estiverem são da pasta de backup. Aí quando o cara marcar algum você deverá mover da pasta de backup para a inicializar denovo. Ou ainda, quando o cara desmarcar algum o seu programa pode mudar a extensão do arquivo para que o mesmo não seja exevutado, tipo: de 'Calc.lnk' para 'Calc._nk'. Ou de 'Excel.exe' para 'Excel._xe'.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, GrayMalkin a quanto tempo em?

Sim, já tinha um tempinho que eu não postava nesta sala (mas estou sempre presente aqui). :)

Se os nomes estivessem no registro usaria um TStringList e passaria para o listbox.

Estando numa pasta(os atalhos é que ficam lá, acho) terei que arrumar um jeito de pegar todos os nomes da pasta e copiar para o listbox. Teria que arrumar também uma maneira de quando o usuário clicar no caminho que está no listbox o progrma fosse deletado desta pasta.

Essa é a única maneira ou existe algo mais inteligente?

Acho que o Thales já deu duas ótimas sugestões, então não tenho nada a complementar.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Thales,

Cheguei a pensar sim, mas não sabia se existia em algum lugar do registro um local para armazenar

esses programas. Depois da resposta do Graymalkin, percebi que teria que partir para algo semelhante

ao que você sugeriu e é o que vou tentar.

Graymalkin,

É sempre bom ter sua experiência por aqui, seja nos códigos seja na lógica de programação.

Aproveita e tira uma dúvida em relação aos símbolos que aparecem nos "Avatares" (não sei se o nome é este). Na última vez que você esteve por aqui, a algum tempo, que respondeu para mim tinha algo diferente no seu avatar do que "Monitor Global".

Essas mudanças são feitas pelo administrador ou são automáticas.

Uns tem escrito NOVATO, outros VETERANO.

Quais são os critérios?

Existe uma tabela?

Só por curiosidade dá para explicar?

Link para o comentário
Compartilhar em outros sites

  • 0
É sempre bom ter sua experiência por aqui, seja nos códigos seja na lógica de programação.

Obrigado! :)

Aproveita e tira uma dúvida em relação aos símbolos que aparecem nos "Avatares" (não sei se o nome é este). Na última vez que você esteve por aqui, a algum tempo, que respondeu para mim tinha algo diferente no seu avatar do que "Monitor Global".

Essas mudanças são feitas pelo administrador ou são automáticas.

Uns tem escrito NOVATO, outros VETERANO.

Quais são os critérios?

Existe uma tabela?

Só por curiosidade dá para explicar?

Os títulos de "Novato", "Veterano" e "Avançado" são automáticos de acordo com a quantidade de posts. E, quando você chega a 600 posts (se não me engano) você pode colocar a frase ou título que quiser (você pode mudar pelo Painel de Controle -> Editar Perfil). E sim, provavelmente da última vez que eu respondi eu era moderador, então devia estar como "Moderador C/C++, VB, Delphi, Python, .NET e D+ Linguagens". Há coisa de um mês e pouco é que passei a ser monitor (moderador global).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Estou usando no evento OnShow do form o código abaixo:

var
    Lista: TStringList;
  Busca   : TSearchRec;
  PastaPesquisa: string;
  K : integer;
begin
   //Procura na pasta que contém os programas que iniciam
  //com o windows.
  reg.RootKey:= HKEY_CURRENT_USER;
  reg.OpenKey('\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL FOLDERS',False);
  PastaPesquisa:=reg.ReadString('Startup');
  reg.CloseKey;

  Lista:= TStringList.Create;
  FindFirst(PastaPesquisa+'\*.*', 0, Busca);
  While FindNext(Busca) = 0 Do Lista.Add(Busca.Name);


  if Lista.Count <> 0 then
    begin
      lstRun.Items.Add('************************************************************');
      lstRun.Items.Add('PROGRAMAS QUE SE ENCONTRAM NO MENU INICIALIZAR');
      lstRun.Items.Add('************************************************************');
      For k:= 0 To Lista.Count - 1 do
        begin
          lstRun.Items.Add(Lista[k]);
          lstRun.Items.Add(PastaPesquisa);
          lstRun.Items.Add('');
      end;
      Lista.Free;
    end
  else
    //Não faz nada

end;

Só que as vezes acontece algo estranho, quando tem só um arquivo na pasta ele se comporta como se não tivesse nada.

Tem alguma errada no meu código?

Por exemplo se tem dois arquivos, um sendo a cópia do taskmgr.exe e um atalho dele aí aparece a cópia do executável.

Se coloco dois atalhos do taskmgr.exe, aparece um deles apenas.

Tá meio doido.

Alguém poderia fazer o teste, só precisa de um listbox no forrm e o inconveniente de momentaneamente reduzir a pasta a um único arquivo.

Link para o comentário
Compartilhar em outros sites

  • 0

Já que o Paulo começou esse assunto de curiosidades, eu gortaria de saber o que significa quando o nome de um usuário que está acessando o fórum está subpontilhado, ou seja sublinhado com pontilhado?

Link para o comentário
Compartilhar em outros sites

  • 0

O rapá, depois da linha FindFirst(PastaPesquisa+'\*.*', 0, Busca); va tem que adicionar Lista.Add(Busca.Name);.

Mas e quanto as pastas . e ..? Não aparecem aí não? você não tem que testar pra ver se é arquivo e não pasta?

Eu nunca vi isso não. Você pode dar um exemplo?

Lá em baixo da página onde está escrito:

"4 usuários estão acessando o fórum"

"3 mebros: Thales Pontes Martins, Graymalkim"

Aí vamos supor que o seu nome esteja sublinhado com pontilhado ao invés de linha contínua, o que significa?

Link para o comentário
Compartilhar em outros sites

  • 0

Troque...

FindFirst(PastaPesquisa+'\*.*', 0, Busca);
  While FindNext(Busca) = 0 Do Lista.Add(Busca.Name);
... por:
if (FindFirst(PastaPesquisa+'\*.*', 0, Busca)=0) then
Repeat
    Lista.Add(Busca.Name);
Until (FindNext(Busca) <> 0);

Certo? ;)

Lá em baixo da página onde está escrito:

"4 usuários estão acessando o fórum"

"3 mebros: Thales Pontes Martins, Graymalkim"

Aí vamos supor que o seu nome esteja sublinhado com pontilhado ao invés de linha contínua, o que significa?

Eu sempre vejo a lista de usuários on-line, mas nunca vi nenhum nome com sublinhado pontilhado. Sempre é só o sublinhado de link (o que é o normal). Qual o navegador que você utiliza?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Mas, eu coloquei

While FindNext(Busca) = 0 Do Lista.Add(Busca.Name);

Tá errado?

Sim está errado, depois do FindFirst tem que adicionar a lista o primeiro nome que ele acha, o FindNext retorna apartir do segundo. Tanto a maneira que o Graymalkim falou quanto a minha estão certas.

Eu sempre vejo a lista de usuários on-line, mas nunca vi nenhum nome com sublinhado pontilhado. Sempre é só o sublinhado de link (o que é o normal). Qual o navegador que você utiliza?

Eu uso o Internet Explorer mesmo, e sempre vejo isso. Obreigado

Link para o comentário
Compartilhar em outros sites

  • 0

Oh, Thales e Graymalkin,

vou acrescentar.

Também vejo o pontilhado quando a pessoa está, acho que escrevendo num tópico, ou quando está ativa, mas não onde você está vendo atualmente.

Link para o comentário
Compartilhar em outros sites

  • 0

É, eu também acho que é quando a pessoa está escrevendo num tópico, mas as vezes eu vejo isso e depois o usuário sai sem ter escrito nada, será que ele estava escrevendo e desistiu?

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, valeu Graymalkin. Eu me lembro de ter visto esse pontilhado ná página de um tópico e na lista de tópicos do fórum Delphi.

E quanto a esse fórum que você disse que perguntou, agente não tem acesso a ele, né? É só para os moderadores?

Link para o comentário
Compartilhar em outros sites

  • 0

Eu já tinha observado esse lance do pontilhado. Inclusive quando você entra num tópico para visualizá-lo ou responder ele, já dá para saber se tem alguém respondendo ele.

Mas, gostaria de aproveitar a oportunidade deste assunto(e do Moderador) para citar algo que não acho adequado e que talvez o colega Graymalkin(através de seus contatos ;)) possa passar a diante, se achar conveniente.

É o seguinte, notei que se você por exemplo, estiver lendo um post e, aguardando por uma resposta, mandar atualizar a tela do navegador o contador de visualizações é incrementado (aquele do índice tópicos) - dá para deixar o Tópico Quente só clicando F5 :o. Acho que poderia ser levado em conta o fato de que a sessão é a mesma e então não incrementá-lo.

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

É o seguinte, notei que se você por exemplo, estiver lendo um post e, aguardando por uma resposta, mandar atualizar a tela do navegador o contador de visualizações é incrementado (aquele do índice tópicos) - dá para deixar o Tópico Quente só clicando F5 :o. Acho que poderia ser levado em conta o fato de que a sessão é a mesma e então não incrementá-lo.

Bem observado, Micheus. Vou passar isso para o Administrador e ver o que ele pode fazer a respeito.

Obrigado! :)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

é isso já é antigo, se a pessoa segurar o F5 ela ira aumentar o numero de visualizações, da para arrumar, tipo pegando o ip do usuario e contando a visualização dele apenas 1 vez por tópico, mas para isso teria que mecher no codigo fonte do forum, e não é nenhum problema pra mim, mas eu não tenho acesso ao ftp, por isso não da, mas vou falar com o Sr. Binho para ver o que da pra fazer

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...