Fórum Um auto-início diferente #430214
01/12/2012
0
Olá,
queria saber se alguém sabe o code que faz aplicação iniciar ao detectar um site específico, por exemplo semelhante a como se inicia junto com o sistema.
Sempre tive essa curiosidade de saber isso. Por exemplo, ao entrar no site DevMedia, daí a aplicação inicia, e dá uma mensagem. Exemplo:
"Bem vindo ao site DevMedia!" ou então faz apenas a inicialização sem dá mensagem mesmo. E depois que sair do site, o software "pausa", e só retornando quando detectar o site pré definido no source do projeto.
Já procurei muito por essa informação, mas ainda não obtive resultado. Só encontro coisa que todos já sabem (fazer iniciar junto com o Windows) rsrs.
Alguém tem ideia de como faz ou conhece algum site/forum na net que explique isso?
valeu galera!
Luiz Eduardo
Curtir tópico
+ 0
Responder
Posts
01/12/2012
Claudia Nogueira
Vejo da seguinte forma.
Como um software vai saber que algum usuário entrou em algum site sem pelo menos esse software estar rodando?
Tem que ser um serviço ou algo do tipo realmente iniciado com o sistema operacional.
Em Delphi você pode fazer uma aplicação que fica rodando invisível com um Timer capturando de segundo a segundo as URLs dos navegadores, e quando for detectado que a URL é do site especificado, aí sim o software fica visível e faz o que tem que fazer.
Essa é minha opinião, e não vejo como um aplicativo em Delphi fazer outro tipo de coisa nesse sentido que você quer, mas posso estar enganada.
Vamos ver a opinião do resto do pessoal.
Como um software vai saber que algum usuário entrou em algum site sem pelo menos esse software estar rodando?
Tem que ser um serviço ou algo do tipo realmente iniciado com o sistema operacional.
Em Delphi você pode fazer uma aplicação que fica rodando invisível com um Timer capturando de segundo a segundo as URLs dos navegadores, e quando for detectado que a URL é do site especificado, aí sim o software fica visível e faz o que tem que fazer.
Essa é minha opinião, e não vejo como um aplicativo em Delphi fazer outro tipo de coisa nesse sentido que você quer, mas posso estar enganada.
Vamos ver a opinião do resto do pessoal.
Responder
Gostei + 0
01/12/2012
Luiz Eduardo
Vejo da seguinte forma.
Como um software vai saber que algum usuário entrou em algum site sem pelo menos esse software estar rodando?
Tem que ser um serviço ou algo do tipo realmente iniciado com o sistema operacional.
Em Delphi você pode fazer uma aplicação que fica rodando invisível com um Timer capturando de segundo a segundo as URLs dos navegadores, e quando for detectado que a URL é do site especificado, aí sim o software fica visível e faz o que tem que fazer.
Essa é minha opinião, e não vejo como um aplicativo em Delphi fazer outro tipo de coisa nesse sentido que você quer, mas posso estar enganada.
Vamos ver a opinião do resto do pessoal.
Como um software vai saber que algum usuário entrou em algum site sem pelo menos esse software estar rodando?
Tem que ser um serviço ou algo do tipo realmente iniciado com o sistema operacional.
Em Delphi você pode fazer uma aplicação que fica rodando invisível com um Timer capturando de segundo a segundo as URLs dos navegadores, e quando for detectado que a URL é do site especificado, aí sim o software fica visível e faz o que tem que fazer.
Essa é minha opinião, e não vejo como um aplicativo em Delphi fazer outro tipo de coisa nesse sentido que você quer, mas posso estar enganada.
Vamos ver a opinião do resto do pessoal.
Valeu Claudinha, também acho que não faz sentido esse negócio de iniciar ao capturar uma url, uma vez que não seja iniciado junto com o sistema. Você tem razão, mas para capturar a url, já tenho aquela solução do Google Chrome
Function GetActivePageUrlFromChrome(Handle: HWnd; Param: LParam): Bool; stdcall;
var
List: TStrings;
hWndChrome, hWndChromeChild: HWND;
Buffer : array[0..255] of Char;
begin
List := TStrings(Param);
//get the window caption
SendMessage(Handle, WM_GETTEXT, Length(Buffer), integer(@Buffer[0]));
//look for the chrome window with "Buffer" caption
hWndChrome := FindWindow('Chrome_WidgetWin_1', Buffer);
if hWndChrome <> 0 then
begin
hWndChromeChild := FindWindowEx(hWndChrome, 0, 'Chrome_OmniboxView', nil);
if hWndChromeChild <> 0 then
begin
SendMessage(hWndChromeChild, WM_GETTEXT, Length(Buffer), integer(@Buffer));
List.Add(Buffer);
end;
end;
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
slChromeUrl : TStringList;
begin
slChromeUrl := TStringList.Create;
try
EnumWindows(@GetActivePageUrlFromChrome, LParam(slChromeUrl));
Memo1.Lines.AddStrings(slChromeUrl);
Finally
FreeAndNil(slChromeUrl);
end;
end;
A segunda parte (a procedure do Button) eu transformei em uma Função: String; pra facilitar.
Daí como eu faria pra especificar a url no source do projeto?
Seria algo como um teste de condição tipo:
if(GetURLChrome) then Application.Run; end;
mas no caso acima acho que Application.Run não seria o correto, tendo em vista que a aplicação já se encontra iniciada junto com o sistema não é? não sei bem...
então seria melhor assim:
if(GetURLChrome) then ShowMessage(bla bla bla bla); end;
O que você acha? será que o exemplo de uso que citei acima daria certo?
valeu!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)