Guest Valdecir Peres Postado Novembro 6, 2006 Denunciar Share Postado Novembro 6, 2006 Alguém pode me ajudar com este artigo, pois não consegui copilar o programa Bom, nesse artigo, vou mostrar com fazer seu programa iniciar juntamente com o Windows. Adiciona na Uses da Unit 'Registry'e depois:Procedure CriaStartup(NomeDoPrograma, LocalDoPrograma: String);varReg : TRegistry;Begin Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; // foi adicionado na RootKey o valor HKEY_CURRENT_USER para ser iniciado o programa apenas se for iniciado o usuário atual. Para ser iniciado com todos usuarios, troque o HKEY_CURRENT_USER por HKEY_LOCAL_MACHINE Reg.RootKey('SOFTWAREMicrosoftWindowsCurrentVersionRun', False); Reg.WriteString(NomeDoPrograma, LocalDoPrograma); Reg.CloseKey; Reg.Free;End; Demais artigos incluidos por Jeferson Jose dos Santos Junior Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 6, 2006 Denunciar Share Postado Novembro 6, 2006 Reg.RootKey('SOFTWAREMicrosoftWindowsCurrentVersionRun', False);Acho que você tá cometendo alguns errinhos aí, tente ->Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 6, 2006 Denunciar Share Postado Novembro 6, 2006 Cara beleza por este passou, só que estou recebendo o seguintes erros ainda no código Procedure TFRacesso.CriaStartup(ControleFinanceiro, C:\Documents and Settings\Administrador\Meus documentos\Valdecir\VdlSistemasfontes\VDL Sistemas - PHT: String);var Reg : TRegistry;BeginReg := TRegistry.Create;Reg.RootKey := HKEY_LOCAL_MACHINE;Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false);Reg.WriteString(ControleFinanceiro, C:\Documents and Settings\Administrador\Meus documentos\Valdecir\VdlSistemasfontes\VDL Sistemas - PHT);Reg.CloseKey;Reg.Free;End;Recebi este erros[Error] vdlacesso.pas(31): Illegal character in input file: '\' ($5C)[Error] vdlacesso.pas(31): ';', ')' or '=' expected but 'AND' found[Error] vdlacesso.pas(31): Illegal character in input file: '\' ($5C)[Error] vdlacesso.pas(31): Missing parameter type[Error] vdlacesso.pas(47): Illegal character in input file: '\' ($5C)[Error] vdlacesso.pas(47): ';', ')' or '=' expected but 'AND' found[Error] vdlacesso.pas(47): Illegal character in input file: '\' ($5C)[Error] vdlacesso.pas(47): Missing parameter type[Error] vdlacesso.pas(54): ')' expected but ':' found[Error] vdlacesso.pas(54): Illegal character in input file: '\' ($5C)[Error] vdlacesso.pas(54): Operator not applicable to this operand type[Fatal Error] vdlincluirfornecdesp.pas(78): Could not compile used unit 'vdlacesso.pas'Agora cara como isso vai inicializar com o Windows, você sabe me explicar, tenho que fazer mais alguma coisaAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 6, 2006 Denunciar Share Postado Novembro 6, 2006 você tá doidão cara, tá fazendo umas coisas muito erradas. Por que você colocou o caminho do seu programa como identificador de parametro do seu procedimento? Tenta assim->Procedure TFRacesso.CriaStartup(ControleFinanceiro : String); var Reg : TRegistry; Begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false); Reg.WriteString(ControleFinanceiro, ParamStr(0)); Reg.CloseKey; Reg.Free; End; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 7, 2006 Denunciar Share Postado Novembro 7, 2006 Cara beleza, deu certo só que na matéria que vi nas colunas do site, diz que o sistema iniciaria junto com o Windows, e isto não está acontecendo, tá certo isto tem lógica este procedimento.Tem como de um sistema ao clicar em um botão eu abrir outro sistema desenvolvido em delphi.Outra coisa Cara Doidão não, estou aprendendo.Obrigado pela forçaAbraços Valdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 7, 2006 Denunciar Share Postado Novembro 7, 2006 Cara beleza, deu certo só que na matéria que vi nas colunas do site, diz que o sistema iniciaria junto com o Windows, e isto não está acontecendo, tá certo isto tem lógica este procedimento.O procedimaneto tem sentido sim. O que você está passando como parametro pro procedimento? Passe por exemplo CriaStartup('Controle');.De qualquer maneira de uma olhada no seu regedit pra ver se a chave está lá mesmo.Tem como de um sistema ao clicar em um botão eu abrir outro sistema desenvolvido em delphi. Tem. Com o WinExec você pode abrir qualquer programa -> Winexec('c:\programa.exe', SW_SHOWNORMAL); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 Thales valeu, mas o que voce quiz dizer com isso" O que você está passando como parametro pro procedimento? Passe por exemplo CriaStartup('Controle');."Não entendi......AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 Funcionou????????????????????????Thales valeu, mas o que voce quiz dizer com isso" O que você está passando como parametro pro procedimento? Passe por exemplo CriaStartup('Controle');."Não entendi...... Você tem que passar o nome do campo como parametro tipo 'ControleFinanceiro' e não o caminho do arquivo tipo 'C:\arquivos de programas\controle.exe'. O caminho do programa já é retornado por ParamStr(0). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 Thales obrigado por sua atenção, mas não funcionou, eu coloquei a procedure como você posto.Procedure TFRacesso.CriaStartup(ControleFinanceiro : String);var Reg : TRegistry;Begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false); Reg.WriteString(ControleFinanceiro, ParamStr(0)); Reg.CloseKey; Reg.Free;End;Na realidade eu estou precisando de algo que faça o sistema inicializar junto com o Windows, e procurando achei este código na internet, mas não consegui fazer funcionar.Por isso comecei mondar um projeto com um único form. A idéia é a seguinte: Colocar este projeto na pasta de inicializar do Menu Iniciar do Windwos e deste form chamar o outro sistema só que já estou me deparando com alguns problemas, espero que você possa me ajudar.O que eu preciso é o seguinte: Que o programa filtre os documentos vencidos, e só abra este form se houver documentos vencidos. (Coloquei no form um dbgrid apontado para tabela documentos) Coloquei no evento Show do form o seguinte procedimento.procedure TFRlembrdoc.FormShow(Sender: TObject);begin If (not IBTransaction1.InTransaction)then IBTransaction1.StartTransaction; TBcaddoc.Open; TBcaddoc.IndexFieldNames := 'DTAVVCTO'; If TBcaddoc.Fieldbyname('DTAVVCTO').Value<Date then FRlembrdoc.Show else Application.Terminate; Só que mesmo quando a data de aviso é menor que a data atual o form não abre,Tem como resolver isto, tem como fazer isto............???????????Thales me ajuda.AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 Olá Valdecir,nessa linha:Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false);você está usando FALSE, e na verdade seria TRUEReg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True);acho que o Thales não observou issoem todo caso se não funcionar no Planeta Delphi tem um componente que faz isso.só que você tem se registrar, e vai na opção Pesquisa e digite exatamente: Iniciar sua aplicacao ao logon do windows,que vai te trazer o componente.Abs. Progr'amador. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 Pessoal não funcionou, será que vocês não podem me ajudar com a segunda idéia, pra mim vai ser mais viável. AbraçosValdecir :huh: :unsure: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 Pessoal não funcionou, será que vocês não podem me ajudar com a segunda idéia, pra mim vai ser mais viável. AbraçosValdecir :huh: :unsure:Não, não, não colega!!!, você é brasileiro e "brasileiro não desiste nunca" :D tente assim:Procedure TFRacesso.CriaStartup(ControleFinanceiro : String); var Reg : TRegistry; Begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); Reg.WriteString(ControleFinanceiro, '"' + ParamStr(0) + '"'); Reg.CloseKey; Reg.Free; End;Abs. Progr'amador. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 8, 2006 Denunciar Share Postado Novembro 8, 2006 você está usando FALSE, e na verdade seria TRUEReg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True);acho que o Thales não observou issoAcho que não deveria ser TRUE já que a chave é suposta a já existir. E esse parametro TRUE cria a chave caso não exista. O mais provável é que o colega esteja fazendo alguma coisa errada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Novembro 9, 2006 Denunciar Share Postado Novembro 9, 2006 Experimente trocar:Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false); PorReg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 9, 2006 Denunciar Share Postado Novembro 9, 2006 Experimente trocar:Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false); PorReg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false);Olá s3c,Acredito que não seja isso, eu fiz aqui e deu certo, acho que o erro é no código do cara mesmo.---------Valdecir,Posta sua unit inteira pra que possamos da uma olhada, ok?ABs. Progr'amador. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Novembro 9, 2006 Denunciar Share Postado Novembro 9, 2006 Olá Progr'amador, comigo se colocar Software sem "\" ele falha no Reg.OpenKey. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 9, 2006 Denunciar Share Postado Novembro 9, 2006 Cara, não vou precisar mandar a unit “ FUNCIONOU “.Com esta procedure.Procedure TFRacesso.CriaStartup(ControleFinanceiro : String);var Reg : TRegistry;Begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); Reg.WriteString(ControleFinanceiro, '"' + ParamStr(0) + '"'); Reg.CloseKey; Reg.Free;End;Agora posso abusar, tem como por uma condição pra abrir só se tiver algum documento vencido, e filtrar estes documentos num grid.Cara se tiver vai fica muito bom..... tem que dá.Abraços Valdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 9, 2006 Denunciar Share Postado Novembro 9, 2006 Agora posso abusar, tem como por uma condição pra abrir só se tiver algum documento vencido, e filtrar estes documentos num grid.Cara se tiver vai fica muito bom..... tem que dá.Abraços ValdecirDa pra fazer o seguinte:Ao abrir ele verifica se tem registro, se tiver fica aberto se não tiver fecha, entendeu!?Abs. Progr'amador. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 9, 2006 Denunciar Share Postado Novembro 9, 2006 Experimente trocar:Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false); PorReg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false);Exatamente. Realmente na documentação do Delphi está escrito que é necessário essa contra barra antes.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 Da pra fazer o seguinte:Ao abrir ele verifica se tem registro, se tiver fica aberto se não tiver fecha, entendeu!?Abs. Progr'amador.Cara fiz isso, procedure TFRlembrdoc.FormShow(Sender: TObject);beginIf (not IBTransaction1.InTransaction)thenIBTransaction1.StartTransaction;TBcaddoc.Open;TBcaddoc.IndexFieldNames := 'DTAVVCTO';If TBcaddoc.Fieldbyname('DTAVVCTO').Value<Date thenFRlembrdoc.ShowelseFRlembrdoc.Close; Só que mesmo quando a data de aviso é menor que a data atual o form não abre,Tem como resolver isto............???????????Abraços Valdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 Olá Valdecir,Eu nunca usei esse componente IB*Mas seria tipo assim:Usando IBQueryIBQuery1.Close; IBQuery1.SQL.Add('Select * From Tabela Where DTAVVCTO <:nData'); IBQuery1.Params[0].Value := Date; IBQuery1.Open; If not (IBQuery1.RecordCount > 0) then Application.Terminate;Abs. Progr'amador. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 13, 2006 Denunciar Share Postado Novembro 13, 2006 Pessoal deu pau, o sistema está iniciando junto com o Windows, só que ele inicia antes do Interbase, e recebo a seguinte mensagem “ UNAVAILABLE DATABASE “.Caramba, consegui fazer todos os acertos, o form só abrir se tiver documentos vencidos e agora esse pau.Tem como resolver isso, alguém sabe, tem idéia de como fazer este ajuste. AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 13, 2006 Denunciar Share Postado Novembro 13, 2006 Pessoal deu pau, o sistema está iniciando junto com o Windows, só que ele inicia antes do Interbase, e recebo a seguinte mensagem “ UNAVAILABLE DATABASE “.Caramba, consegui fazer todos os acertos, o form só abrir se tiver documentos vencidos e agora esse pau.Tem como resolver isso, alguém sabe, tem idéia de como fazer este ajuste. AbraçosValdecirCara,Por que você não coloca no inicializar do Windows???Inciar --> Programas --> InicializarAbs. Progr'amador. ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 13, 2006 Denunciar Share Postado Novembro 13, 2006 Cara já fiz isto, deu na mesma.Será que não tem solução ???????AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 13, 2006 Denunciar Share Postado Novembro 13, 2006 Cara já fiz isto, deu na mesma.Será que não tem solução ???????AbraçosValdecirCerto, mas você apagou o que está no registro??? pra ficar somente com o do InicilalizarAbs. Progr'amador. ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Valdecir Peres Postado Novembro 13, 2006 Denunciar Share Postado Novembro 13, 2006 Apaguei cara.Você vê alguma solução............???????AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Valdecir Peres
Alguém pode me ajudar com este artigo, pois não consegui copilar o programa
Bom, nesse artigo, vou mostrar com fazer seu programa iniciar juntamente com o Windows.
Adiciona na Uses da Unit 'Registry'
e depois:
Procedure CriaStartup(NomeDoPrograma, LocalDoPrograma: String);
var
Reg : TRegistry;
Begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
// foi adicionado na RootKey o valor HKEY_CURRENT_USER para ser iniciado o programa apenas se for iniciado o usuário atual. Para ser iniciado com todos usuarios, troque o HKEY_CURRENT_USER por HKEY_LOCAL_MACHINE
Reg.RootKey('SOFTWAREMicrosoftWindowsCurrentVersionRun', False);
Reg.WriteString(NomeDoPrograma, LocalDoPrograma);
Reg.CloseKey;
Reg.Free;
End;
Demais artigos incluidos por Jeferson Jose dos Santos Junior
Link para o comentário
Compartilhar em outros sites
49 respostass a esta questão
Posts Recomendados
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.