mam drobny problem... chcialbym do istniejacego okna przegladarki (firefox) wpisac nowy adres i otworzyc te strone... nie chce zamykac i otwierac firefox z nowym adresem... macie moze jakies pomysly ?
mam drobny problem... chcialbym do istniejacego okna przegladarki (firefox) wpisac nowy adres i otworzyc te strone... nie chce zamykac i otwierac firefox z nowym adresem... macie moze jakies pomysly ?
Nie kumam. Odpalaj strony w zakładkach.
ja nie chce otwierac nowych zakladek, ani nowych okien. Mam juz jedno wlaczone i w nim chce zmienic adres i przejsc na nowa strone.
Przyklad
Otwarty FireFox na stronie www.wp.pl
klikam np. button w programie i adres przechodzi do okna firefoxa na ktorej jest www.wp.pl
ze strony wp.pl firefox przechodzi na strone www.onet.pl bez otwierania zamykania czy zakladek firefoxa
wszystko dzieje sie w jednym i tym samym oknie.
wiecie jak to zrobic ? poradzcie cos :) pomozcie :)
1.) Poczytaj o uchwytach
2.) Może da się uruchomić firefoxa z jakimś parametrem? Ale wątpie bo to czy ma się otwierać w nowych zakładkach czy nie to kwestia ustawień ff, zatem chyba - uchwyty pozostają ;]
jesli uchwyt to znaczy, ze moge sobie wyswietlic w labelu nazwe okna z firefox to mam :) potrafie nawet zczytac adres z okna :) teraz tylko jak wstawic moj nowy adres do starego okna ?
już ci powiedziałem! UCHWYT + Komunikat
Łapiesz uchwyt do miejsca na adres... przesyłasz tam adres, symulujesz wciśniecie entera
mam takie cos:
HH:=Windows.GetForegroundWindow;
II := SendMessage(HH, WM_GETTEXTLENGTH, 0, 0);
II := II + 1;
setlength(SS, II);
SendMessage(HH, WM_GETTEXT,II,longint(@SS[1]) );
lapie uchwyt aktywnego okna i wyswietla w formie stringa... o to chyba chodzi ?
ale jak to przerobic i dobic sie do tego adresu ?
Musisz mieć program do (hmm jakby to nazwać) przeglądania uchwytów (polecam WinSpector) dowiedzieć się nazwy tej kontrolki i jej klasę i złapać uchwyt do niej przy pomocy FindWindowEx (do FindWindowEx będzie potrzebny uchwyt FireFoxa - złapiesz go za pomocą FindWindow) i wtedy użyj dalszą część swojego kodu...
ale coś mi mówi, że to i tak za trudne dla ciebie ;]
tak wiec pobralem ten programik, popatrzylem poczytalem co nieco i juz wiem, w sumie mam okno
WindowHandle:=FindWindow('MozillaUIWindowClass',nil);
wiem, ze srodek firefoxa to MozillaWindowClass. Problem mam, poniewaz program do czytania class i wszystkiego innego nie jest w stanie rozdrobnic sie na wiecej... nie pokaze mi zadnych danych do ikonek czy tez paska z adresem. obecnie problem mam z SrodekHandle:=FindWindowEx(WindowHandle i nie wiem co dalej wpisac, aby dobrac sie do tego adresu...
nom faktycznie... nawet przeglądałem komunikaty jakie wysyła firefox podczas wpisywania i potwierdzania adres - niestety nic nie ma, jedynie ustawia Caption dla okienka
no wlasnie... :( i co mozna z tym fantem zrobic ?
jest szansa aby sie dobrac do tego adresu ?
jakaś szansa zawsze jest ;] ...
no to w jaki sposob ? co trzeba zrobic ?
Prosze Was :) pomozcie mi :) to dla mnie naprawde wazne :) a z pewnoscia tak trudne nie jest :)
naprawde to jest tak strasznie trudne ?
ktos mi pomoze ?
ja bym to zrobił trochę ręcznie hehe , że ustawiłbym okienko Firefoxa aktywne, potem przesunął muszkę nad pasek adresu, co u mnie wygląda tak:
procedure TForm1.Button1Click(Sender: TObject);
var
H : THandle;
R : TRect;
P: TPoint;
begin
H := FindWindow('MozillaUIWindowClass',nil);
ShowWindow(H,SW_SHOWNORMAL);
SetForegroundWindow(H);
GetWindowRect(H, R);
SetCursorPos(R.Left + 250, R.Top + 65);
end;
Potem zasymulowałbym kliknięcie myszką w tym miejscu i wpisanie adresu :P
Po tym wszystkim można jeszcze cofnąć myszkę na wcześniejszą pozycję żeby ładniej było ;P .
albo jak już tam kursor jest to można zrobić GetCursorPos(@P); i skorzystać z WindowFromPoint - zwróci uchwyt do kontrolki spod współrzędnych, które podasz w parametrze.