regedit abfragen ohne Adminrechte

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

regedit abfragen ohne Adminrechte

Beitrag von susapo »

Hallo,
ich brauche in meinem Makroprogramm die Monitorauflösung.
dazu hab ich dieses kleine Beispiel gefunden, was auch prima funktioniert, allerdings nur, wenn ich Libreoffice zunächst mit Administratorrechten starte.
sonst nicht. Obwohl ich selber mit einem Admin Konto bei Win 10 pro angemeldet bin.

Code: Alles auswählen

Sub Bildschirmaufloesung

Const HKEY_LOCAL_MACHINE = &H80000002
	GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
	sTemplateKeyName = "SYSTEM\ControlSet001\Control\UnitedVideo\CONTROL\VIDEO\{274C3232-9E50-11E9-9450-C69596D29C81}\0000\"
	sTemplateValueName = "DefaultSettings.XResolution"
	X_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
	sTemplateValueName = "DefaultSettings.YResolution"
	Y_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
	msgbox "Die Bildschirmauflösung ist " & X_Setting & " x " & Y_Setting  
End Sub
da ich das Programm weitergeben will, ist es nicht möglich, immer erst LO mit Adminrechten zu starten.

was könnte ich tun?
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: regedit abfragen ohne Adminrechte

Beitrag von Stephan »

was könnte ich tun?
z.B. siehe:
http://www.vbforums.com/showthread.php? ... dth-height

Das dortige Makro für Word 2000 läuft bei mir in OO/LO sogar ohne Kompatibilitätsoption:

Code: Alles auswählen

Option Explicit
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Sub ScreenSize()
    Dim ScreenRect As RECT
    Dim ret As Long
    ret = GetClientRect(CLng(GetDesktopWindow()), ScreenRect)
    MsgBox "Width: " & ScreenRect.Right - ScreenRect.Left
    MsgBox "Height: " & ScreenRect.Bottom - ScreenRect.Top
End Sub

Private Sub Document_New()
    ScreenSize
End Sub

Gruß
Stephan
Antworten