CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Wysyłanie adresu URL do tego samego okna przeglądarki.

Wysyłanie adresu URL do tego samego okna przeglądarki.

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Wysyłanie adresu URL do tego samego okna przeglądarki.

Nowy postprzez Cyfrowy Baron » sobota, 2 października 2010, 19:38

Wysyłam do przeglądarki Firefox adres:

KOD cpp:     UKRYJ  
 String bUrl = "jakiś adres"
  TDdeClientConv *Adres = new TDdeClientConv(this);

 if(Adres->SetLink("firefox", "WWW_OpenURL"))
 {
  Adres->RequestData(bUrl + ",,");
 }
 else
   ShellExecute(this->Handle, NULL , bUrl.c_str(), L"", L"", SW_SHOWNORMAL);

 delete Adres;


Działa to jak oczekiwałem, czyli przeglądarka ładuje stronę. Gdy chcę załadować nową stronę, ten kod również ją ładuje, ale w nowym oknie lub w nowej karcie, a ja chciałbym, żeby otworzył ją w tym samym oknie lub w tej samej karcie.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Wysyłanie adresu URL do tego samego okna przeglądarki.

Nowy postprzez polymorphism » sobota, 2 października 2010, 21:57

Poszukaj informacji o komendzie WWW_OpenURL, ma ona parametry, które być może dotyczą sposobu otwierania url-a.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Wysyłanie adresu URL do tego samego okna przeglądarki.

Nowy postprzez Cyfrowy Baron » niedziela, 3 października 2010, 08:58

Szukałem i znalazłem info, że należy oprócz adresu przekazać wartość 0xFFFFFFFF. Być może w czasach, gdy przeglądarki nie korzystały z zakładek to działało, jednak teraz nie działa. :zawiedziony:
Inne pomysły, inne metody z wykorzystaniem innych klas? :roll:
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Wysyłanie adresu URL do tego samego okna przeglądarki.

Nowy postprzez polymorphism » niedziela, 3 października 2010, 11:44

Ta wartość to id okna, w którym chcesz otworzyć url-a, wartość -1 oznacza aktywne okno. Według dokumentacji, WWW_OpenURL zwraca id okna, w którym url został otwarty, więc wystarczyłoby podać go przy następnym wywołaniu tej komendy. Sprawdziłem, niestety nie działa :( Cały czas zwraca wartość 1, niezależnie od ilości otwartych okien FF czy też zakładek.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Wysyłanie adresu URL do tego samego okna przeglądarki.

Nowy postprzez Cyfrowy Baron » niedziela, 3 października 2010, 12:04

Opracowałem trochę inny kod oparty na funkcji SendMessage i schowku:

KOD cpp:     UKRYJ  
  HWND hWnd_1 = FindWindow(L"MozillaWindowClass", 0);

  if(hWnd_1 != NULL)
     SendMessage(hWnd_1, WM_PASTE, 0, 0);


adres jest wklejany prawidłowo o ile w przeglądarce wybrany jest pasek adresu. Pojawiają się jednak dwa problemy: po pierwsze jak kliknąć w pasek adresu przyciskiem ENTER, komendy WM_KEYDOWN i WM_KEYUP z parametrm WParam = VK_RETURN nie działa, po drugie jaka jest nazwa klasy paska adresu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Wysyłanie adresu URL do tego samego okna przeglądarki.

Nowy postprzez polymorphism » niedziela, 3 października 2010, 12:32

Według Spy++ nie są to okna sensu stricto, więc takie sztuczki nie muszą działać.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Wysyłanie adresu URL do tego samego okna przeglądarki.

Nowy postprzez Cyfrowy Baron » niedziela, 3 października 2010, 13:42

Tak też przypuszczałem, gdyż sprawdzałem programem WinID i na wszystkim pokazywał mi tylko główną klasę okna.
Na razie nie mam pomysłu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości

cron