makro - jaki system operacyjny

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
babiniec4
Posty: 53
Rejestracja: wt sie 03, 2010 10:20 pm

makro - jaki system operacyjny

Post autor: babiniec4 »

W Windows Xp makro pewnego dokumentu tworzy skrót internetowy na pulpicie do pewnego folderu.
Aby skrót pojawił się na pulpicie w Windows7 w kodzie makra słowo Pulpit należy zastąpić słowem Desktop.

Czy istnieje jakieś makro, które potrafi stwierdzić jaki system operacyjny jest zainstalowany aby móc wywołać odpowiednie makro tworzenia skrótu? Pozdrawiam
Apache OpenOffice 4.1.5 na Windows 10
Jan_J
Posty: 4653
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: makro - jaki system operacyjny

Post autor: Jan_J »

Basic:

Kod: Zaznacz cały

wersja = SetGUIType() rem ma zwracać kod numeryczny ale mi nie działa tak jakbym chciał
no i nie rozpoznaje wersji danego systemu. GUI <> OS.

Python:

Kod: Zaznacz cały

import sys
wersja = sys.platform # zwraca nazwę platformy operacyjnej, np. 'win32' albo 'linux2'
if wersja[0:3] == 'win':
   wersja = sys.getwindowsversion() # zwraca szczegółowe informacje o wersji systemu Windows
See also http://docs.python.org/library/sys.html

Poza tym szablon ścieżki do pulpitu nie jest wkompilowany w wersję Windows, tylko zapamiętany w rejestrach w gałęzi

Kod: Zaznacz cały

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
pod nazwą Desktop. W typowych sytuacjach będzie to

Kod: Zaznacz cały

%USERPROFILE%\Desktop
lub

Kod: Zaznacz cały

%USERPROFILE%\Pulpit
ale może też być inaczej, jeżeli użytkownik zaingeruje we wpisy rejestrowe.
Tak więc zamiast mozolnie ustalać wersję systemu, lepiej byłoby spytać konfigurację o ścieżkę do pulpitu (użytkownika lub wspólnego).
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
babiniec4
Posty: 53
Rejestracja: wt sie 03, 2010 10:20 pm

Re: makro - jaki system operacyjny

Post autor: babiniec4 »

Wszystko jasne ale w tej materii nie dam rady bez pomocy bo nie wiem jak "spytać" o tą ścieżkę. Może jakieś koło ratunkowe?
Apache OpenOffice 4.1.5 na Windows 10
Jan_J
Posty: 4653
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: makro - jaki system operacyjny

Post autor: Jan_J »

Makrem bezpośrednio chyba się nie da, w każdym razie nie znam biblioteki OOo, za której pomocą można by korzystać z systemowych API Windows. Wywołałbym polecenie powłoki Windows

Kod: Zaznacz cały

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop
z makra OOo za pomocą polecenia system(), tak, by uzyskac odpowiedź (to może wymagac przekierowania wyniku do pliku).
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ