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

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
RysiekOpen
Posty: 8
Rejestracja: wt maja 19, 2020 3:55 pm

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

Post 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 ?
Ostatnio zmieniony pn maja 25, 2020 11:07 pm przez RysiekOpen, łącznie zmieniany 1 raz.
Apache OpenOffice 4.1.3
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

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

Post 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
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
RysiekOpen
Posty: 8
Rejestracja: wt maja 19, 2020 3:55 pm

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

Post 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).
Apache OpenOffice 4.1.3
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

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

Post 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ą
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
RysiekOpen
Posty: 8
Rejestracja: wt maja 19, 2020 3:55 pm

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

Post 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.
Apache OpenOffice 4.1.3
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

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

Post 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.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ