Wyświetlanie strony html, która nie ma dokładnego adresu.

0

Witam,
od pewnego czasu borykam sie z problemem a mianowicie:
Chcę wyswietlić stronę html w oknie WebBrowser (np. file:///J:/test.html) ktora znajduje sie w tym samym folderze co program, i wszystko dziala jak nalezy. Program mam oddac na plycie i ty pojawia sie problem, bo jesli kto inny go uruchomi mam tylko niewielka szanse, ze trafi na ten sam znaczek numeryczny (w tym przypadku plyta miala literke J).
probowalem w miejsce literki wstawiac nazwe plyty ale daremnie.

Macie jakies pomysly jak mam odpalic ta strone? Zauwazylem, ze wiele programow dołączanych do gazet (menu z programami do zainstalowania) dziala na zasadzie menu i wyswietlania stron html które sa na plycie.

Moj program ma dzialac na zasadzie klikniecia w panel lub label i automatycznym wyswietleniu strony w oknie WebBrowser. To wszystko.

Czasu mam niewiele wiec prosze o szybka odpowiedz, z gory dzieki!

0

To ci powinno pomóc:
C#: Directory.GetCurrentDirectory
Delphi: ExtractFilePath(Application.ExeName)

0

przepraszam ze nie podalem jezyka: Visual Cpp Windows Form

ta sama komende dostalem od wujka jednak nie mam pojecia gdzie ja upchac

0

W kod programu.

0

czlowieku, moze jestem newbie ale nie jestem debilem
nie rozumiem czy mam zrobic tak:

//instrukcje przycisku, ktory uruchomi strone

Directory::GetCurrentDirectory();
this->webBrowser1->Navigate(test.html);

//instrukcje przycisku, ktory uruchomi strone

czy inaczej, ale jak sie domyslam to nie zadziala

Nie da sie dojsc latwiejsza metoda? Np. poprzez nazwe plyty?

0

Musisz skleić wynik podanej ci metody z nazwą pliku (przez Path.Combine albo zwykłą konkatenację napisów) i przekazać ją jako argument Navigate.

0

Sluchaj, myslalem ze pisze w dziale newbie
nie mam pojecia czym jest Path.Combine, gdybym znal komendy nie przychodzil bym tutaj.
Pierwszy raz uruchamiam visuala a znaczaco rozni sie od konsolowego deva.

Liczylem na to ze kod nie bedzie dlugi a w pierwszej odpowiedzi otrzymam gotowca z instrukcjami
gdzie to wkleic. Zamiast tego mam komendy ktorych nie rozumiem i kpiące ze mnie komentarze, dzieki stary.

1

Liczylem na to ze kod nie bedzie dlugi a w pierwszej odpowiedzi otrzymam gotowca z instrukcjami

Hahahah, przeliczyłeś się.

0

My tu gotowców nie dajemy.

0

nie prosze o cala aplikacje a o jedna, sklejona komende
na pewno mniej sie napracujecie niz w przypadku tlumaczenia prawda?

2

Plusem się łączy stringi. "string" + "string" daje "stringstring". Directory.GetCurrentDirectory() zwraca stringa, np. "C:\". "test.html" to inny string. Po zrobieniu Directory.GetCurrentDirectory() + "test.html" dostajesz co chciałeś. I teraz to tylko przekazać trzeba do WebBrowser.Navigate() - czyli wkleić pomiędzy nawiasy tej funkcji...

0

Dziekuje wszystkim za pomoc, rozwiazaniem okazal sie kod:

			 String^ katalog = Directory::GetCurrentDirectory();
			 String^ plik = "\\test.html";
			 String^ szukane = katalog + plik;
			 this->webBrowser1->Navigate(szukane);

Pozdrawiam.

0

Miałbym kolejną zagadkę:
strona którą chcę wyświetlić znajduje się na dysku z adresem: file:///D://files/1.html
przegladarka chrome odpala tą stronę jednak iexplorer wyrzuca bład abym sprawdzil poprawnosc adresu. Niefartownie narzedzie wyswietlajace strone (WebBrowser) dziela pod ie.

Domyslam sie, ze chodzi o nazwe stanowiska i komputera ale skoro program ma byc przenosny nie moge tam wstawic swojej.

Co w takim razie mam robic. Pytalem sie znajomego to wspomial o kropce (uklad mialby wygladac tak (./files/1.html)

0

Podawaj normalną ścieżkę dostępu do pliku.
W IE się nic nie zmieni, a reszta przeglądarek zamieni sobie to na właściwy link.

Podasz: C:\Image Map\Image Map.html
W IE zadziała.
W FF zamieni sobie na file:///C:/Image%20Map/Image%20Map.html i też zadziała.
W Operze zamieni sobie na file://localhost/C:/Image%20Map/Image%20Map.html i też zadziała.

0

tylko ze komenda

Directory.GetCurrentDirectory

nie podaje adresu w formie C:/Image Map/Image Map.html tylko file:\\C:\Image Map\Imagemap.html
przypomne ze pliki sa na dysku a literka dyzku nie jest stala

@Edit
Ok, sam doszedlem, sprawa nie byla az tak skompkilowana, wystarczylo dodac nowego stringa (localhost) i wstawic go pomiedzy file a adres. IE bylo na tyle madre ze samo przestawilo slash na backslash

Jeszcze raz dzieki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1