Redirecionar paginas web pelo Delphi 7

Delphi

01/04/2006

Holla a todos,

gostaria de saber como posso redirecionar uma pagina web pelo Delphi 7.
Estou fazendo um programa de restrição de navegação, nele eu já consigo fechar as paginas que nao estao restristas. Mais covenhamos, fechar a pagina web nao é muito legal. Dessa forma queria redirecionar essa pagina web para uma pagina offline dizendo que a pagina esta bloqueada.
Por esse motivo gostaria de saber qual seria a função da API do Windwos que posso utilizar para redirecionar uma pagina web.

Eu tentei usar o ShellExecute passando por parametro o Handle da janela que quero fechar mais o problema é, quando tenho mais de uma pagina aberta ele pega sempre a ultima janela, desprezando o HANDLE que eu passei.

Se alguem puder me ajudar agradeço,
Sem mais,
Antonio.


Janbaceiredo

Janbaceiredo

Curtidas 0

Respostas

Kroki

Kroki

01/04/2006

Olá.
Não posso passar o código completo para abrir no IE,mas estude esse exemplo onde é aberta uma página numa janela do Windows(abra uma pasta qualquer e deixa aberta);
procedure TForm1.Button1Click(Sender: TObject);
Var
Explorer, Worker, Bar, ComboEx, Combo, Edit : HWND;
Url : String;
begin
Edit := 0;
Explorer := FindWindow(´CabinetWClass´, nil);
If Explorer <> 0 Then Begin
Worker := FindWindowEx(Explorer, 0, ´WorkerA´, nil);
If Worker <> 0 Then Begin
Bar := FindWindowEx(Worker, 0, ´ReBarWindow32´, nil);
If Bar <> 0 Then Begin
ComboEx := FindWindowEx(Bar, 0, ´ComboBoxEx32´, nil);
If ComboEx <> 0 Then Begin
Combo := FindWindowEx(ComboEx, 0, ´ComboBox´, nil);
If Combo <> 0 Then Begin
Edit := FindWindowEx(Combo, 0, ´Edit´, nil);
End;
End;
End;
End;
End;
If Edit <> 0 Then Begin
showmessage(´Transferindo...´);
Url := ´www.kaillera.com´;
SendMessage(Edit, WM_SETTEXT, 0, Integer(Url));
SendMessage(Edit, WM_KEYDOWN, VK_RETURN, $011C001);
End;
end;

Acho que vc não vai ter dificuldade em modificar para oque vc deseja.
Espero ter ajudado.


GOSTEI 0
Janbaceiredo

Janbaceiredo

01/04/2006

Holla kroki,

vc me ajudou muito. Consegui setar barra de endereço do IE para ser redirecionado para a pagina de restrição.
Só estou tendo somente um problema. A constante virtual VK_RETURN não esta realizando o <ENTER> no ComboBoxEx32.
O endereço de redirecionamento fica fica todo selecionado no ComboBoxEx32 a espera do VK_RETURN, mais ele nao é realizado.

Você poderia me dar mais essa ajuda para poder resolver esse problema?
Estou mandando o código que fiz.

function SetUrl(Handle: THandle):Boolean; stdcall;
var
  hWndIE, hWndIEChild : HWND;
  Buffer : array[0..255] of Char;
  Url: String;
begin
  Url:= ´http://janbaceiredo.homelinux.com/Restrito.php´;

  SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0]));

  hWndIE := FindWindow(´IEFrame´, Buffer);
  if hWndIE > 0 then
    begin
      hWndIEChild:= FindWindowEx(hWndIE, 0, ´WorkerW´, nil);
        if hWndIEChild > 0 then
          begin
            hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ReBarWindow32´, nil);
              if hWndIEChild > 0 then
                begin
                  hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ComboBoxEx32´, nil);
                    if hWndIEChild > 0 then
                      begin
                        SendMessage(hWndIEChild, WM_SETTEXT, 255, Integer(Url));
                        SendMessage(hWndIEChild, WM_KEYDOWN, VK_RETURN, $011C001);
                      end;
                end;
          end;
    end;
end;


Sem mais,
Antônio.


GOSTEI 0
Kroki

Kroki

01/04/2006

Ok vc venceu...;

Uses ...DDEman;


procedure TForm1.TrocaUrl;
var
DDE:TDDEClientConv;
begin
DDE:=TDDEClientConv.Create(Self);
with dde do begin
if DDE.SetLink(´IExplore´,´WWW_OpenURL´) then
RequestData(´http://janbaceiredo.homelinux.com/Restrito.php,,0xFFFFFFFF,0x3,,,´);
end;
DDE.Free;
end;


GOSTEI 0
Janbaceiredo

Janbaceiredo

01/04/2006

Kroki valeu pela ajuda.
Mas essa segunda solução proposta não resolve o meu problema. :(

procedure TForm1.TrocaUrl;
var
  DDE:TDDEClientConv;
begin
  DDE:= TDDEClientConv.Create(Self);
  with dde do
    begin
      if DDE.SetLink(´IExplore´,´WWW_OpenURL´) then
        RequestData(´http://janbaceiredo.homelinux.com/Restrito.php,,0xFFFFFFFF,0x3,,,´);
    end;
  DDE.Free;
end;


:?: :?: Porque :?: :?:

:arrow: Bom, isso porque posso ter mais de uma janela do IE aberta ao mesmo tempo. Essa segunda solução proposta por você, pega sempre a ULTIMA janela aberta e redireciona para o link que desejo. Isso eu já conseguia usando o ShellExecute dessa forma:
uses ShellApi;
...
  ShellExecute(Handle, ´open´, ´http://janbaceiredo.homelinux.com/Restrito.php´, nil, nil, SW_SHOWNORMAL);


Tanto o ShellExecute e a solução proposta por você pega sempre a ultima janela aberta do IE e redireciona.


Eu preciso redirecionar somente a pagina que o usuario tentar acessar:
Vamos ao exemplo:
:arrow: O usuario possui tres paginas do IE aberta sendo elas:
- www.uol.com.br
- www.terra.com.br
- www.clubedelphi.net

:arrow: Vamos supor que o usuario abra mais duas paginas, são elas:
- www.pornografia.com.br
- www.clubedelphi.net/forum

Nesse exemplo preciso redirecionar a pagina numero 4.
:?: :?: Porque :?: :?:

Bom, porque defini que o endereço [b:9759b2da0e][u:9759b2da0e]www.pornografia com.br[/u:9759b2da0e][/b:9759b2da0e]
é restrito e não devera ser acessado.
Dessa forma preciso redirecionar somente a pagina numero 4 para o endereço [b:9759b2da0e][u:9759b2da0e]http://janbaceiredo.homelinux.com/Restrito.php[/u:9759b2da0e][/b:9759b2da0e].

Dessa forma a sua primeira sugestão é mais interessante.
Esse codigo que momentei com sua dica é perfeito para mim. Porque passou o HANDLE da janela que desejo redirecionar.
Meu unico problema é com relação a tecla <ENTER> [b:9759b2da0e]VK_RETURN[/b:9759b2da0e] que não consigo que ela seja capitada. Já tentei com PostMessage, mas também não funcionou. :?


Se você puder me ajudar com relação essa tecla ficaria muito grato.

Sem mais,
Antônio.


GOSTEI 0
Janbaceiredo

Janbaceiredo

01/04/2006

Kroki,

consegui resolver meu problema. Adicionei mais duas verificaçoes nos campos [b:3213e92a14]COMBOBOX[/b:3213e92a14] e [b:3213e92a14]EDIT[/b:3213e92a14].

Dessa forma consegui fazer a aplicação simular o <Enter> para redirecionar a pagina.
Abaixo segue o codigo atualizado e devidamente comentado para quem precisar da mesma funcionalidade.
{*****************************************************************************
 *              Procedimento para setar a URL a ser redirecionada            *
 ****************************************************************************}
procedure SetUrlFromIE(Handle: THandle); stdcall;
var
  hWndIE, hWndIEChild : HWND;
  Buffer : array[0..255] of Char;
  Url: String;
begin
  Url:= ´http://janbaceiredo.homelinux.com/Restrito.php´;

  // Pega o Caption da Janela
  SendMessage(Handle, WM_GETTEXT, 255, lParam(@Buffer[0]));

  // Procura pela janela do Internet Explorer com o Buffer do Caption
  hWndIE := FindWindow(´IEFrame´, Buffer);

  If hWndIE > 0 Then
    Begin
      // Pega o Handle do container do Internet Explorer
      hWndIEChild:= FindWindowEx(hWndIE, 0, ´WorkerW´, nil);

      If hWndIEChild > 0 Then
        Begin
          // Pega o Handle da Barra de Endereço do Internet Explorer
          hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ReBarWindow32´, nil);

          If hWndIEChild > 0 Then
            Begin
              // Pega o Handle do ComboBoxEx32 do Internet Explorer
              hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ComboBoxEx32´, nil);

              If hWndIEChild > 0 Then
                Begin
                  // Pega o Handle do ComboBox do Internet Explorer
                  hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ComboBox´, nil);

                  If hWndIEChild > 0 Then
                    Begin
                      // Pega o Handle do Edit do Internet Explorer
                      hWndIEChild := FindWindowEx(hWndIEChild, 0, ´Edit´, nil);

                      If hWndIEChild > 0 Then
                        Begin
                          // Seta a URL no campo Edit do Internet Explorer
                          SendMessage(hWndIEChild, WM_SETTEXT,  0, lParam(Url));
                          // Simula o precionamento da tecla <Enter>
                          // Pode ser usando tanto VK_RETURN ou $D
                          PostMessage(hWndIEChild, WM_KEYDOWN,  $D, $1c0001);
                        End; // Fim - Verifica retorno Edit

                    end; // Fim - Verifica retorno Combo

                end; // Fim - Verifica retorno ComboBoxEx32

            end; // Fim - Verifica retorno ReBarWindow32

        end; // Fim - Verifica retorno WorkerW

    end; // Fim - Verifica retorno IEFrame

end;


Value pela ajuda,
Sem mais,
Antônio.


GOSTEI 0
Kroki

Kroki

01/04/2006

Legal que vc tenha achado a solução de seu prob.
Não se esqueça que vc deve fazer uma verificação tambem junto com um Handle ´CabinetWClass´ e fechá-lo ou a URL proibida ao ser digitada em uma janela qualquer vai abrir.


GOSTEI 0
Paullsoftware

Paullsoftware

01/04/2006

É justamente isso que estou procurando, mais alguém poderia me explicar como ultilizo esse código :?: :?: :?:


GOSTEI 0
Paullsoftware

Paullsoftware

01/04/2006

vc´s não podem me dar uma mãozinha, to precisando mesmo desse código...


GOSTEI 0
Paullsoftware

Paullsoftware

01/04/2006

ninguém tem uma idéia de como posso usar esse código :?: :?: :?:


GOSTEI 0
Kroki

Kroki

01/04/2006

O janbaceiredo deveria responder porke ele usa desse jeito.
Fala oque vc ker pra ver se da para simplificar.


GOSTEI 0
Paulocesar1301

Paulocesar1301

01/04/2006

Estava no forum ontem e li este tópico...

fiz uma procedure, coloquei em um timer que já existe em um serverzinho que funciona nas máquinas de minha rede e funfou beleza...
...alguns que já tentaram acessar alguns sites proibidos ficaram p**** da vida :lol: ... mas o chefe adorou a novidade...

VLW Clubedelphi e associados

Abraços e Bons Códigos :wink:


GOSTEI 0
Nerdex

Nerdex

01/04/2006

Pessoal;

A parte mais cruacial eu fiz hoje. Estou interceptando os eventos de
´OnChanges e OnEnters´ nas URLs do ComboBox do IE e trantando, onde, se for um site proibido, eu redireciono. Para isto utilizo estas 2 classes da TLB do Shdocvw:

WBEvents: TSHDocVwDWebBrowserEvents2;
ShellWinEvents: TSHDocVwDShellWindowsEvents;

Tudo funciona perfeitamente, mas detalhe: SÓ ESTÁ FUNCIONANDO NO BROWSER... Assim, minha dúvida é o seguinte: A solução acima pode ser adaptada para monitorar o Explorer também, pois utilizando o Explorer, como Browser nada fica monitorado e o meu prgrama vai pro espaço...

Poderia, alguém me ajudar?


GOSTEI 0
Ranyeryfip

Ranyeryfip

01/04/2006

NerdeX tenta isso, em vez de você mandar procurar por FindWindow(´IEFRAME´, etc), você manda procurar por FindWindow(´ExploreWClass´, etc), o restante do codigo é o mesmo que você usou para o IE.


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

Estou usando dessa forma:

var
Janela : THandle;
begin
Janela := FindWindow(nil, ´: : : PLAYBOY.COM.BR : : : - Microsoft Internet Explorer´);
SetUrl(Janela);

blz funciona perfeito .. mais não está servindo pra mim .. não teria como usar pelo endereço? ex: www.playboy.com.br em vez de pegar a janela?


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

Correção:

*não teria como [b:32c4cb196c]pegar[/b:32c4cb196c] pelo endereço? ex: www.playboy.com.br em vez de pegar a janela?


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

up...


GOSTEI 0
Ranyeryfip

Ranyeryfip

01/04/2006

Olá amigo DelphiTotal, o nosso amigo amigo janbaceiredo praticamente jah respondeu sua pergunta e a resposta está neste mesmo tópico, no site about.delphi.com tem uma dica que unindo com a janbaceiredo fica blz o sistema, de bloqueio de url, agora é você usar sua criatividade e sair para o abraço.


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

Sim! eu encontrei essas funções lá no http://delphi.about.com/ >

http://delphi.about.com/library/weekly/aa060303b.htm

{ Retorna endereço das url´s ativas no IE }

function GetUrlFromIE (Handle: THandle; List: TStringList):
 boolean; stdcall;
var
  hWndIE, hWndIEChild : HWND;
  Buffer : array[0..255] of Char;
begin
  //get the window caption
  SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0]));
  //look for the Internet Explorer window with "Buffer" caption
  hWndIE := FindWindow(´IEFrame´, Buffer);
  if hWndIE > 0 then
begin
    //try to get a handle to IE´s toolbar container
    hWndIEChild := FindWindowEx(hWndIE, 0, ´WorkerW´, nil);
    if hWndIEChild > 0 then
    begin
      //get a handle to address bar
      hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ReBarWindow32´, nil);
      if hWndIEChild > 0 then
      begin
        //finally, locate combo box and add its text to the list
        hWndIEChild := FindWindowEx(hWndIEChild, 0, ´ComboBoxEx32´, nil);
        if hWndIEChild > 0 then
        begin
          SendMessage(hWndIEChild, WM_GETTEXT, 255, integer(@Buffer));
          //List.AddObject(Buffer,TObject(hWndIE));
          List.Add(Buffer)
        end;
      end;
    end;
  end;
  //continue enumeration
  Result :=True;
end; (*GetUrlFromIE*)


implementei o código é talz .. retorna blz as urls ..

mais não sei verificar por exemplo usando essa função verificar se a url playboy (http://www.playboy.com.br) está ativa se estiver usar a função
do janbaceiredo SetUrlFromIE(Handle: THandle); stdcall;

se alguém puder ajudar..


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

[b:0c8bd7a1b4]up[/b:0c8bd7a1b4]


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

[b:250cfadd23]up[/b:250cfadd23]


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

alguem?


GOSTEI 0
Nerdex

Nerdex

01/04/2006

DelphiTotal... como te disse eu fiz assim, postarie só o que interessa ...: :shock: Ok? ...

uses
  Activex, Shdocvw_tlb, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, SHDocVwEvents, MSHTML_TLB, ComCtrls, ShellAPI, ExtCtrls;

type
  TForm1 = class(TForm)
    WBEvents: TSHDocVwDWebBrowserEvents2;
    ShellWinEvents: TSHDocVwDShellWindowsEvents;
    ...

var
  Form1: TForm1;
  ShellWin: ShDocVw_Tlb.IShellWindows;
  Connection: integer;
  ...

procedure InterfaceConnect(const Source: IUnknown; const IID: TIID; 
  const Sink: IUnknown; var Connection: Longint);
var
  CPC: IConnectionPointContainer;
  CP: IConnectionPoint;
begin
  Connection := 0;
  if Succeeded(Source.QueryInterface(IConnectionPointContainer, CPC)) then
    if Succeeded(CPC.FindConnectionPoint(IID, CP)) then
      CP.Advise(Sink, Connection);
end;

procedure TForm1.ShellWinEventsWindowRegistered(Sender: TObject; lCookie: Integer);
begin
  with (ShellWin.Item(ShellWin.Count - 1) as IWebbrowser2) do
  InterfaceConnect(ShellWin.Item(ShellWin.Count - 1) as IWebBrowser2, DWebBrowserEvents2, WBevents, Connection);
end;

procedure TForm1.WBEventsBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
//Aqui pega evento quando o cara "insere/informa" a URL
end;

//Inicia o serviço
procedure TForm1.BtnStartClick(Sender: TObject);
begin
ShellWin:= CoShellWindows.Create;
ShellWinEvents.Connect(ShellWin);
for ib:= 0 to ShellWin.Count - 1 do
  InterfaceConnect(ShellWin.Item(ib) as IWebbrowser2, DwebbrowserEvents2, WBevents, Connection);
end;

procedure TForm1.WBEventsDocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
//Evento de documento (home page) carregada
end;


Existem dezenas de outros eventos para o objeto TSHDocVwDWebBrowserEvents2 que podem ser interceptadas... para qualquer instância do IE existente na máquina, conseqüentemente, sendo tanto pelo internet explorer quanto o win explorer.

P.S.: Acredito que esse meu proj. evita de ter que monitorar o caption da janela via Handle com um Timer...: :evil: ... Sem querer menosprezar os companheiros, mas acho a idéia um pouco gambiarrística...


GOSTEI 0
Nerdex

Nerdex

01/04/2006

NerdeX tenta isso, em vez de você mandar procurar por FindWindow(´IEFRAME´, etc), você manda procurar por FindWindow(´ExploreWClass´, etc), o restante do codigo é o mesmo que você usou para o IE.


Pegando o valor de Handle por IEFrame para o windows explorer não consegui postar o valor no ComboBox - Acredito que os nomes para as classes (Objetos) sejam diferentes das do IE.


GOSTEI 0
Nerdex

Nerdex

01/04/2006

Consegui redirecionar via Handle também para o Win Explorer, para isto basta alterar a linha:

hWnd := FindWindow(´IEFrame´, Buffer);


por

hWnd:= FindWindow(´ExploreWClass´, nil);


Abraço


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

NerdeX,

Cara ainda não consegui resolver meu problema... estou tentando pelo endereço tpo (www.playboy.com.br)...

tpo se tivesse como

Janela := FindWindow(´IEFrame´, ´www.playboy.com.br´);
SetUrlFromIE(Janela);

estava querendo algo do tpo .. mais ainda não consegui..


GOSTEI 0
Ranyeryfip

Ranyeryfip

01/04/2006

Olá NerdeX, foi isso mesmo que eu lhe disse na mensagem anterior.

:lol:


GOSTEI 0
Nerdex

Nerdex

01/04/2006

NerdeX, Cara ainda não consegui resolver meu problema... estou tentando pelo endereço tpo (www.playboy.com.br)... tpo se tivesse como Janela := FindWindow(´IEFrame´, ´www.playboy.com.br´); SetUrlFromIE(Janela); estava querendo algo do tpo .. mais ainda não consegui..


Aí que tá cara! O caption da janela poderá não condizer, ou nunca, com o endereço Url. No exemplo que postei acima, eu pego a Url do browser e/ou do win explorer, atravéz de 2 respectivos eventos, que são: BeforeNavigate e DocumentComplete.

No meu programa eu tenho uma lista de ´palavras´ liberadas ex:

Terra
Uol
Devmedia

Aí eu efetuo quebras de string na Url capturada, e efetuo comparações com os ítens da lista de ´permitidos´. Se não existir na lista, identifico uma Url proibida, aí sim cara! ... é que eu uso HANDLE somente para redirecionamento... entende?

Flw


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

entendi + ou - ... :?

NerdeX vlw pelas dicas .. mais vou desistir :(
Já tentei de tudo mais não consegui ..

Vlw por tudo !!


GOSTEI 0
Nerdex

Nerdex

01/04/2006

Total... Olha só a diferença:

Agora nesta janela do browser que eu estou respondendo este tópico, aparece no caption da janela o seguinte (sem as áspas): ´Fórum DevMedia :: Responder - Microsoft Internet Explorer´

Janela := FindWindow(´IEFrame´, ´www.playboy.com.br´);


Sendo assim, a variável Janela só será maior que 0 (zero) se o segundo parâmetro da função for: ´Fórum DevMedia :: Responder - Microsoft Internet Explorer´ (sem as áspas).

O valor (string) da Url é: ´http://forum.clubedelphi.net/posting.php?mode=reply&t=75551&sid=9042b64db5648f109caf98787607b48e´ (sem aspas) que está no ComboBox do browser.

Amigo? Tu notou a diferença das coisas? ... Visse que são nomes distintos, e por captura de caption da janela, não funciona legal...?

Abraço


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

Entendi agora.. :wink:

NerdeX, por captura de caption da janela não ta dando certo pq depois do titulo da página tem o ´- Microsoft Internet Explorer´ ou seja os funcionarios daqui da empresa ficam mudando direto o nome que aparece depois do Titulo :

exemplo .. no computador da Ana ele personalizou o IE dela é colocou Navegador ANA .. entende?

dai se eu mandar ele verificar

var
Janela : THandle;
begin
Janela := FindWindow(nil, ´Sexo - Microsoft Internet Explorer´);
if Janela <> 0 then
begin
SetUrlFromIE(Janela);

não vai dar certo pq o programa vai verificar por Microsoft Internet Explorer no titulo da página..

Consegue entender?
Por isso ta dificil..


GOSTEI 0
Ranyeryfip

Ranyeryfip

01/04/2006

NerdeX, jah tentei fazer o código pra redirecionar a página no Mozilla e não consigo, você jah conseguiu fazer para o Mozzila?

Jah usei o WinSight32, para tentar pegar as classes, mas não estou conseguindo fazer, funcionar.

vlw


GOSTEI 0
Nerdex

Nerdex

01/04/2006

Pessoal! Usem Handle somente para redirecionamento!
Outra coisa. Neste site tem tudo:


[url]http://www.devspy.com/public/viewer/show.aspx?guid=12a[/url]

Tem até esse programinha (EventSinkImp) que captura as classes da TLB interfaceando a shdocvw.dll

Baixar aqui:
[url]http://www.techvanguards.com/products/eventsinkimp[/url]


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

Consegui fazer um ótimo software de monitoramento.. estou utilizando na empresa está ótimo ..

Mais agora com a nova atualização da Microsoft o Internet Explorer 7 essa procedure não está funcionando .. alguém poderia adapta-lá ?
O legal seria funcionar no Firefox tb.. ai ficava show.


GOSTEI 0
Nerdex

Nerdex

01/04/2006

Mais agora com a nova atualização da Microsoft o Internet Explorer 7 essa procedure não está funcionando .. alguém poderia adapta-lá ? O legal seria funcionar no Firefox tb.. ai ficava show.


Cara! Adapte vc mesmo... Use esse programa (eu usei) para capturar os nomes das instâncias dos Handles, aí vc só vai precisar trocar nomes e verificar talvez a ordem das funções.

[size=18:4453fe913c][color=darkblue:4453fe913c]WinDowse[/color:4453fe913c][/size:4453fe913c]


Baixar aqui:

[url]http://www.greatis.com/delphicb/windowse/[/url]

Abraço


GOSTEI 0
Delphitotal

Delphitotal

01/04/2006

Blz!
Vou estudar um poco pra vêr..
vlw


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

Olá, desculpe ressussitar o tópico mais rodei a internet inteira
atrás disso, Alguém já conseguiu adptar ao iexplorer 7 ou firefox?
Se possivel alguns de vocês puder disponibilizar o source para mim
estudar-lo, seria de grande utilidade

aguardo resposta


t+


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

[b:50dc49f460] UP! [/b:50dc49f460]


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

[b:1408b22492] UP! [/b:1408b22492]


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

[b:84f354d856]UP![/b:84f354d856]


GOSTEI 0
Onjahyr

Onjahyr

01/04/2006

Camarada, não precisa ficar subindo o tópico todo o tempo num mesmo dia, aliás, você já notou que estamos num feriado de carnaval e que pouca gente entra no site nestes dias?


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

na verdade travou, não tava indo minha mensagem eu voltava a pagina
e enviava ela de novo, e quando foi, foi tudo de uma vez

Mais preciso muito do source desse projeto
Parece que 5 pessoas conseguiu fazer dar certo
espero que 1 possa me dar atenção

ficarei aguardando


T+


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

[b:38fcbb4766] UP! [/b:38fcbb4766]

:?


GOSTEI 0
Onjahyr

Onjahyr

01/04/2006

[quote:8315b100cb=´cyborg*´][b:8315b100cb] UP! [/b:8315b100cb]

:?[/quote:8315b100cb]

ôh companheiro, tudo bom? não se chateie :lol:
Poxa, quando vi sua carinha eu tive dó e resolvi lêr as mensagens, uma-a-uma e vi que a resposta estava numa delas.... Tem que ter paciência e lêr devagar, uma-a-uma... Nem ia dizer, ia mandar você procurar, mas para não fazer você perder tempo resolvi escrever logo:

http://delphi.about.com/od/windowsshellapi/l/aa060303b.htm

Tem o código prontinho, você captura e o que vai fazer deve usar a sua criatividade, por exemplo: pode redirecionar para outra página, ou bloquear o IExplorer, ou fechar a janela, tem muita coisa que pode ser feito. As opções que podem ser ralizadas no IExplorer vc encontra num artigo aqui na ClubeDelphi que o Victory Fernandes fez a muito tempo para o IExplorer 5.5, mas funciona com as outras versões, eu até já usei algumas coisas um tempo desses....
Põe a cabeça para fazer tua criatividade.

Espero ter te ajudado.


GOSTEI 0
Facc

Facc

01/04/2006

legal esse tópico... me ajudou bastante... mas ainda não se aplica no meu caso... gostaria de trabalhar com palavras chaves em uma lista negra, exemplo, se achasse a palavra orkut, playboy, sexo, batepapo, powerscrap, entre outras ele redirecionasse para uma outra página informando que ele tentou acessar uma página proibida e que foi gerado um log do horário e a página que ele tentou acessar. Quero isso pq se eu fazer a verificação através do endereço da página (ex. www.orkut.com) existe um modo de burlar isso (images.orkut.com) assim ele consegue acessar a página normalmente...

Será que consegui relatar o problema que eu passo??


GOSTEI 0
Onjahyr

Onjahyr

01/04/2006

É simples!
Basta salvar os nomes e comparar com o comando [b:5b55b3a0a4]copy[/b:5b55b3a0a4] o endereço digitado, se conter [b:5b55b3a0a4]orkut[/b:5b55b3a0a4] é só seguir o resto...

Blz.


GOSTEI 0
Facc

Facc

01/04/2006

É simples! Basta salvar os nomes e comparar com o comando [b:afc6e9cc94]copy[/b:afc6e9cc94] o endereço digitado, se conter [b:afc6e9cc94]orkut[/b:afc6e9cc94] é só seguir o resto... Blz.


pensei nessa possibilidade tbm... copiar qndo tem www. antes é facil... mas qndo não tem www.??? ex. images.orkut.com, pois a quantidade antes do ponto é diferente de um pra outro...


GOSTEI 0
Kroki

Kroki

01/04/2006

Porque vc não programa para fazer uma pesquisa de strings nos endereços de URL digitados?
Se tiver a plavra ´chave´ vc direciona ou fecha.


GOSTEI 0
Onjahyr

Onjahyr

01/04/2006

Porque vc não programa para fazer uma pesquisa de strings nos endereços de URL digitados? Se tiver a plavra ´chave´ vc direciona ou fecha.


Foi isso que eu sugeri...
Ele faz a pesquisa e com o [b:1cb6cbccd7]copy[/b:1cb6cbccd7] no endereço para separar a string e faz a comparação com as strings cadastradas


GOSTEI 0
Facc

Facc

01/04/2006

[quote:8780a7d265=´kroki´]Porque vc não programa para fazer uma pesquisa de strings nos endereços de URL digitados? Se tiver a plavra ´chave´ vc direciona ou fecha.


Foi isso que eu sugeri...
Ele faz a pesquisa e com o [b:8780a7d265]copy[/b:8780a7d265] no endereço para separar a string e faz a comparação com as strings cadastradas[/quote:8780a7d265]


Consegui fazer pela lista negra, agora o que eu queria é redirecionar pra uma outra página (pode ser de aviso de site proibido, ou o site da empresa) - já achei como fazer, só que aki na empresa estamos usando o IE7, e a página que foi redirecionada está abrindo em uma nova aba... gostaria que fosse aberta na mesma... tem como fazer isso?


procedure TForm1.TrocaUrl;
var
  DDE:TDDEClientConv;
begin
  DDE:=TDDEClientConv.Create(Self);
  with dde do
  begin
    if DDE.SetLink(´IExplore´,´WWW_OpenURL´) then
      RequestData(´endereço do site a ser redirecionado´);
    end;
  DDE.Free;
end;



GOSTEI 0
Onjahyr

Onjahyr

01/04/2006

Se não me engano é configuração do navegador, vou pesquisar melhor. Se encontrar solução eu te digo...

Blz.


GOSTEI 0
Facc

Facc

01/04/2006

Se não me engano é configuração do navegador, vou pesquisar melhor. Se encontrar solução eu te digo... Blz.


Era a conf. do navegador mesmo...

valeu


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

O meu só ta funcionando no iexplorer 6 e de outra maneira,
ele verifica a palavra chave fecha e abre em outra pagina.. em
vez de redirecionar,

Vou dar uma olhada aqui direito

Facc mandei uma MP pra vc!

onjahyr valeu pela ajuda :wink:

Flw´s


GOSTEI 0
Facc

Facc

01/04/2006

[quote:c8130fb2c7=´cyborg*´]O meu só ta funcionando no iexplorer 6 e de outra maneira,
ele verifica a palavra chave fecha e abre em outra pagina.. em
vez de redirecionar,

Vou dar uma olhada aqui direito

Facc mandei uma MP pra vc!

onjahyr valeu pela ajuda :wink:

Flw´s[/quote:c8130fb2c7]

Dei uma parada com isso, não obtive nenhuma ajuda...


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

Era a conf. do navegador mesmo... valeu


Deu e impressão que tinha dado tudo certo neste seu comentário,
Mais tudo bem te entendo

Flws


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

Ae galera, não está funcionando no iexplorer 7, Apenas no iexplorer 6 está pegando (...) como faço para funcionar no ie 7 tbm?


Lembrando que já saiu a versão do iexplorer 8 tbM!

Estou sem tempo para esudar diariamente, Quando chegar em casa irei ler o topico inteiro e prestar + atenção, mais inquanto isso espero um comentário

Gostaria de colocar para pegar no firefox e ie 8 tbm

é só capturar o nome do handle com esse programa windowse que funciona ? Alguém ai ja testou?

T+


GOSTEI 0
Facc

Facc

01/04/2006

[quote:a770bbc7da=´cyborg*´]Ae galera, não está funcionando no iexplorer 7, Apenas no iexplorer 6 está pegando (...) como faço para funcionar no ie 7 tbm?


Lembrando que já saiu a versão do iexplorer 8 tbM!

Estou sem tempo para esudar diariamente, Quando chegar em casa irei ler o topico inteiro e prestar + atenção, mais inquanto isso espero um comentário

Gostaria de colocar para pegar no firefox e ie 8 tbm

é só capturar o nome do handle com esse programa windowse que funciona ? Alguém ai ja testou?

T+[/quote:a770bbc7da]

amigo, nesse tópico vc acha tudo... e fazendo a pesquisa no forum tbm


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

Blz facc, daqui a pouco estou chegando para ler tudo direitinho, mais
só uma pergunta o seu funciona no ie7 e firefox ?

Flw´s


GOSTEI 0
Facc

Facc

01/04/2006

[quote:5dc7a3d3fe=´cyborg*´]Blz facc, daqui a pouco estou chegando para ler tudo direitinho, mais
só uma pergunta o seu funciona no ie7 e firefox ?

Flw´s[/quote:5dc7a3d3fe]

Só não funciona com o AvantBrowser


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

Consegui, quando eu digito a palavra chave ele edita a url para ser redirecionada, o problema é que como o timer fica olhando a cada
5 segundos a tecla enter em vez de ser precionada apenas quando é editado o endereço da url, fica sendo precionada a cada 5 segundos (...)

Pelo menos agora estou entendendo como funciona,
Vou vê se arrumo aqui

T+


GOSTEI 0
Cyborg*

Cyborg*

01/04/2006

Salve, Olha eu dinovo aqui enxendo o saco
eu usei esse programa windowse para pegar o nome das instancias do handle, mais não consegui fazer funcionar em outras versões

Uma coisa que não entendi foi no firefox sendo que aparece só um handle, sendo que no iexplorer6 aparece 5 se não me engano

como vou fazer funcionar em outras versoes agora?


GOSTEI 0
POSTAR