logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

BuilderC++ i internet. Jak otworzyć stronę internetową?

rafe 09 Lut 2006 22:08 1466 9
REKLAMA
  • #1 2282527
    rafe
    Poziom 10  
    Posty: 57
    cześć.
    Jak z builderaC++ 5.0 odpalić stronkę internetową np:www.onet.pl.
    Dokładniej chodzi mi o to że przykładowo naciskam Buttnon w programie i automatycznie odpala się stronka internatowa o dowolnym adresie.

    Dziękuję.
    Pozdrawiam.
  • REKLAMA
  • #2 2284016
    one_eddie
    Poziom 25  
    Posty: 973
    Pomógł: 62
    Ocena: 14
    Wystarczy wykorzystac komponent WebBrowser i pod akcja guzika ustawic mu odpowiedni URL.
  • REKLAMA
  • #3 2286266
    Mystic Vintage
    Poziom 12  
    Posty: 96
    Pomógł: 4
    Ocena: 5
    Wersja 6.0 jest dawno dostępna za darmo ;)

    Jeżeli w BCB nie ma takiego komponentu, należy zaimportować go jako ActiveX, który jest w każdym windowsie. Nazywa się właśnie WebBrowser
  • #4 2286386
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    rafe napisał:
    Dokładniej chodzi mi o to że przykładowo naciskam Buttnon w programie i automatycznie odpala się stronka internatowa o dowolnym adresie.
    A gdzie się ma ta stronka odpalić? W przeglądarce? W oknie programu? Na suficie? Bo to jest forum techniczne, tu nie wróżymy z fusów.
  • #5 2288692
    m.polo
    Poziom 14  
    Posty: 169
    Pomógł: 5
    Ocena: 2
    hehe, elektryk - spokojnie ;)
    Rafe pewnie zaraz napisze o co dokładnie chodzi, a ja tymczasem z podobnym problemem - to samo, tylko cała strona {powiedzmy niech będzie ten ONET.PL}, a dokładniej jej kod ma znaleźć się w stringu ;)
    A tymczasem próbuje z WebBrowserem ;]
  • REKLAMA
  • #6 2288838
    Sam Sung
    Poziom 33  
    Posty: 2014
    Pomógł: 227
    Ocena: 583
    A może łatwiej wpisać w OnClick
    ShellExecute(0, 'open', 'http://www.elektroda.pl/rtvforum', nil, nil, SW_SHOWDEFAULT);

    Przykład jest z Delphi, ale w Borland C++ też powinny być dostępne funkcje WinAPI.
  • #7 2306770
    rafe
    Poziom 10  
    Posty: 57
    Witam.
    Dzięki wszystkim za odpowiedzi. Pomogły tylko dwie linijki:

    /*otwiera okno przegladarki*/
    ShellExecute(NULL, "open", "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE", NULL, NULL, SW_SHOWNORMAL);

    /*i wczytuje do niej jaks strone*/
    ShellExecute(NULL, "open", "http://interia.pl", NULL, NULL, SW_SHOWNORMAL);

    Stronka odpala się w przeglądarce.

    Jednocześnie mam pytanie czy da radę zamknąć tę otwartą stronę w przeglądarce z poziomu Buildera??
    Podobno można to zrobić ingerująć w otwarty proces na komputerze.
    Tylko że nie wiem dokładnie jak ??
    Jeśli by ktoś coś wiedział na ten temat to bardzo proszę o informację i jeśli można o jakiś przykład kodu.

    Pozdrawiam.
  • #8 2306863
    one_eddie
    Poziom 25  
    Posty: 973
    Pomógł: 62
    Ocena: 14
    Poszukaj sobie informacji o zamykaniu procesu na platformie windows. (szukaj: close process win32)

    Jesli nic nie znajdziesz lub cos nie bedzie dzialac zadaj pytanie na forum, przedtem jednak przeszukaj je pod wzgledem odpowiedzi.

    Nie wiem dlaczego traktujesz forum jak wyszukiwarke, zadajesz pytanie a roboty szukaja za ciebie?
  • REKLAMA
  • #9 2307389
    rafe
    Poziom 10  
    Posty: 57
    cześć.
    Dziękuję Wam wszystkim za odpowiedzi. Jesli ktoś czuje się jako robot do wykonywania roboty to już jego sprawa. Ja nie miałem w każdym razie na myśli nic takiego. Jeśli ktoś poczuł się urarzony to przepraszam.
    Myślę że lista jest m.in. po to by zadawać pytania i szukać na nie odpowiedzi. Dzięki one_eddie za podpowiedź o zamykaniu procesów
    na platwormie Windows.

    Dzięki. Pozdrawiam.
  • #10 2307781
    Sam Sung
    Poziom 33  
    Posty: 2014
    Pomógł: 227
    Ocena: 583
    Lepszym rozwiązaniem byłoby wysłanie komunikatu zamknięcia okna do okna przeglądarki. To dużo łagodniejsze rozwiązanie niż killowanie procesu (to ostatnie uchodzi tylko w ostateczności).
    Tak czy siak pozostaje problem albo znalezienia uchwytu okna, albo uchwytu procesu.
    Otwarcie strony w taki sposób:
    ShellExecute(NULL, "open", "http://interia.pl", NULL, NULL, SW_SHOWNORMAL);
    wcale nie gwarantuje, że otworzy ją Internet Explorer. To już zalezy, jaką ktoś ma domyślną przeglądarkę. Szukanie okna po tytule/nazwie klasy staje się więc w zasadzie niemożliwe, ppdobnie jak procesu po nazwie exeka. Więc myślę, że jeśli chcesz coś więcej niż tylko otworzyć okno, to ShellExecute się do tego nie nadaje.

Podsumowanie tematu

✨ Dyskusja dotyczy uruchamiania stron internetowych z poziomu Borland C++ Builder 5.0. Najprostsze rozwiązanie to użycie funkcji WinAPI ShellExecute, która pozwala otworzyć domyślną przeglądarkę z podanym adresem URL. Alternatywnie można wykorzystać komponent WebBrowser (wbudowany lub importowany jako ActiveX), który umożliwia osadzenie i wyświetlanie strony w oknie aplikacji. Poruszono także problem zamykania otwartej strony z poziomu programu, co wymaga ingerencji w proces systemowy – można to zrobić przez zamknięcie procesu lub wysłanie komunikatu zamknięcia okna, jednak jest to trudne ze względu na różnorodność przeglądarek i brak gwarancji, że otwarta strona działa w Internet Explorerze. ShellExecute otwiera stronę w domyślnej przeglądarce, co utrudnia identyfikację i kontrolę procesu. Zalecane jest poszukiwanie informacji o zamykaniu procesów w Win32 API oraz rozważenie bardziej łagodnych metod niż bezpośrednie zabijanie procesu.
Wygenerowane przez model językowy.
REKLAMA