Strona 1 z 1

[SOLVED] Otwieranie lokalizacji domyślną Aplikacją systemu

: ndz maja 24, 2020 10:07 pm
autor: RysiekOpen
Witam, chodzi mi o osiągnięcie takiej funkcjonalności;

1. W arkuszu wstawiam hiperłącze do strony internetowej,
klikając w komórkę (link) - otwiera mi się przeglądarka domyślna i ładuje strona.

2. W arkuszu wstawiam hiperłącze do pliku PDF na dysku,
klikając w komórkę (link) – otwiera mi się PDF w aplikacji domyślnej systemu Acrobat

3. Tworząc przycisk w Arkuszu – mam opcję
formant → Akcja (Otwórz Dokument / Stronę Internetową )
→ Url – podaję stronę lub dokument
--- działanie takie jak w 2 lub 3 po naciśnięciu przycisku.

I teraz pytania powiązane na które nie mogę znaleźć odpowiedzi;

Jak takie działanie osiągnąć z Przycisku Okna Dialogowego ?
tam nie widzę takiej funkcjonalności.

Próbowałem przekierować za pomocą OpenOffice Basic – ale znalazłem tylko

Kod: Zaznacz cały

	Dim noArgs() 'An empty array for the arguments.
	Dim vComp 'The loaded component
	Dim sURL As String 'URL of the document to load

	'sURL = "http://www.adres.pl"
	sURL = "file:///C:/0/Plik.pdf"
	vComp = StarDesktop.LoadComponentFromUrl(sURL, "_blank", 0, noArgs())	
Ale w tym przypadku lokalizacje otwierane są w OpenOffice,
a mi zależy na domyślnej przeglądarce (strony html) i Acrobat (pliki PDF).

Jakim sposobem przy użyciu OpenOffice Basic osiągnąć efekt 1,2,3
czyli otworzyć daną lokalizację w domyślnych Aplikacjach ?

Re: Basic - Otwieranie lokalizacji domyślną Aplikacją system

: pn maja 25, 2020 12:09 am
autor: Jan_J
Funkcja Shell z podstawowej biblioteki Basica powinna załatwić sprawę.

Nie mam pod ręką Windowsa, żeby sprawdzić czy zadziała w funkcji Shell tzw. rozszerzona składnia (polecenie jest nazwą pliku danych, akcja jest uzyciem domyślnej aplikacji ze ścieżką tego pliku jako argumentem), ale sądzę, że tak; w razie czego zawsze jest pod ręką cmd.exe /e

https://wiki.openoffice.org/wiki/Docume ... e_Library)
https://help.libreoffice.org/6.1/he/tex ... 30500.html

Re: Basic - Otwieranie lokalizacji domyślną Aplikacją system

: pn maja 25, 2020 2:56 am
autor: RysiekOpen
Jan_J pisze:Funkcja Shell z podstawowej biblioteki Basica powinna załatwić sprawę.

Nie mam pod ręką Windowsa, żeby sprawdzić czy zadziała w funkcji Shell tzw. rozszerzona składnia (polecenie jest nazwą pliku danych, akcja jest uzyciem domyślnej aplikacji ze ścieżką tego pliku jako argumentem), ale sądzę, że tak; w razie czego zawsze jest pod ręką cmd.exe /e
WIELKIE DZIĘKI !!!

Wreszcie osiągnąłem oczekiwaną odpowiedź Arkusza :)

Dla potomności zamieszczam kod. (Windows7 - 64 bit, Apache OpenOffice 4.1.3)

Kod: Zaznacz cały

Sub F_Uruchom_Aplikacje_Zewnetrzna
	'=====================================================================================
	'---- zainstalowany w systemi Firefox ------------------ prog -------
	'prog = "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"			'---> poprawnie
	prog = "file:///C:/Program Files (x86)/Mozilla Firefox/firefox.exe"		'---> poprawnie

	'---- plik do odtworzenia pdf, lub strona -------------- plik -------
	plik = "F:\Plik.pdf"													'---> poprawnie
	'plik = "file:///F:/Plik.pdf"											'---> poprawnie
	'plik = "www.interia.pl"												'---> poprawnie				
	'plik = "http://www.interia.pl"											'---> poprawnie				
	
	'---- polecenie shell ---------------------------------- polecenie --
	Shell( prog, 2, plik ) 													'---> poprawnie
	'Shell( "C:\Program Files (x86)\Mozilla Firefox\firefox.exe", 2, plik ) '---> poprawnie
	'Shell( prog, 2, "file:///F:/Plik.pdf" ) 								'---> poprawnie

	'=====================================================================================
End Sub
Choć w tym wszystkim jest łyżka dziegdziu –
To ja wskazuję aplikację,
a chciałbym aby system użył domyślnej … - takiej jakiej posiada do danego pliku.
(Bo przecież nie każdy ma Firefoxa i do tego w tym samym katalogu).

Reansumując – WIELKIE DZIĘKI !!! i proszę o dalsze wskazówki … bo może coś pominąłem ...
nie mogę znaleźć "akcja jest użyciem domyślnej aplikacji ..." - tu chyba jest mój problem ! ( a może to już za późno na jasność umysłu).

Re: Basic - Otwieranie lokalizacji domyślną Aplikacją system

: pn maja 25, 2020 10:51 am
autor: Jan_J
zamiast wskazywać aplikację wystarczy podać jako polecenie
cmd /e /c ścieżka_do_pliku
uruchamia systemowy procesor z włączoną składnią rozszerzoną

Re: Basic - Otwieranie lokalizacji domyślną Aplikacją system

: pn maja 25, 2020 11:31 am
autor: RysiekOpen
Jan_J pisze:zamiast wskazywać aplikację wystarczy podać jako polecenie
cmd /e /c ścieżka_do_pliku
uruchamia systemowy procesor z włączoną składnią rozszerzoną
DZIĘKI ZA POMOC !!! Problem rozwiązany.

W międzyczasie znalazłem jeszcze Shell( "explorer", 2, plik ) które też działa.

Dla potomności - Makro otwierające lokalizację w domyślnej Aplikacji systemu

Kod: Zaznacz cały

Function F_Uruchom_Aplikacje_Default

	'----------------------- plik, strona http, itp... -----------
    plik = "F:\Plik.pdf"
    'plik = "http://www.interia.pl"

	'----------------------- polecenie -------------------------
	Shell( "cmd /e /c " & plik, 2 ) 	'--- OK poprawnie
	'Shell( "explorer", 2, plik ) 		'--- OK poprawnie

End Function
Pozdrawiam
Rysiek S.

Re: Basic - Otwieranie lokalizacji domyślną Aplikacją system

: pn maja 25, 2020 4:49 pm
autor: Jan_J
Dla kompletności: wszystko to jest dla użytkowników pracujących w systemie Windows.
W innych systemach (Mac, Linux, inne) mechanizm przydzielania i odczytywania domyślnych aplikacji są zupełnie inne. Funkcja Shell działa tak samo ale trzeba by jej przekazać inne polecenie w parametrze.