OpenOffice-Benutzerverzeichnis automatisiert umbenennen

Diskussionen zu Projekten

Moderator: Moderatoren

Forumsregeln
Dieses Unterforum versteht sich als Plattform zur Diskussion/Bearbeitung komplexerer Anfragen bzw. konkret verabredeter Projekte. Das können Dinge sein wie eine komplexere Calc-Datei oder auch die gemeinsame Programmierung eines größeren Makros, wichtig ist immer die Absicht ein Thema über längere Zeit (z.B. 3 Monate) fortlaufend zu besprechen.
Stephan
********
Beiträge: 9568
Registriert: Mi, 30.06.2004 18:36
Wohnort: nahe Berlin

OpenOffice-Benutzerverzeichnis automatisiert umbenennen

Beitrag von Stephan » Di, 24.03.2015 12:39

Ich könnte Hilfe gebrauchen bei der Programmierung eines kleinen Tools für Linux/Unix/MacOS gebrauchen (im Folgenden erläutert)


Hallo,

wegen der Schwierigkeiten die Benutzer regelmäßig haben wenn sie ihr OpenOffice-Benutzerverzeichnis per Hand umbenennen müssen habe ich hier einmal versucht ein kleines Tool zu implementieren das das automatisiert erledigt.

Der derzeitige Stand ist die unten angehängte Datei "OO-Benutzerverzeichnis_umbenennen_1.0.0.odt", welche bei mir unter OOo und AOO (getestet OOo 3.3.0 und AOO 4.1.1) schon ganz ordentlich funktioniert, aber momentan eben nur unter MS Windows.
Wahrscheinlich funktioniert die Datei auch bereits unter LibreOffice Und MS Windows, ich habe das aber bisher noch nicht getestet.

Wegen der technischen Notwendigkeit das das OO-Benutzerverzeichnis nur umbenannt werden kann wenn OpenOffice nicht läuft besteht meine Lösung aus einer odt-Datei mit Makro PLUS ein kleines Programm (OO-BV.exe) das im Archiv der odt-Datei eingebettet ist.

Das Makro übernimmt die Initialisierung und startet danach OO-BV.exe, welche ihrerseits OpenOffice komplett beendet und das aktuielle OO-Benutzerverzeichnis umbenennt.

OO-BV.exe habe ich der Einfachheit halber mit AutoIT (http://de.wikipedia.org/wiki/AutoIt) erstellt, der derzeitige Quellcode steht weiter unten.

Es wäre nun nötig ein ähnliches Programm, Script etc. wie OO-BV.exe zu Programmieren, welches (standalone) unter Linux bzw. Unix bzw. MacOS läuft.
Wer kann und möchte mir dabei helfen?


Kontaktaufnahme bitte per PM oder auch direkt hier im Thread.

Das Ganze ist meinerseits ohne kommerzielles Interesse. Das Projekt steht meinerseits derzeitig unter ISC-Lizenz (http://de.wikipedia.org/wiki/ISC-Lizenz).


Gruß
Stephan


Quell-Code von OO-BV.exe:

Code: Alles auswählen

;ACHTUNG AutoIT-Quellcode
;Stand: 21.03.2015


#include <GUIConstantsEx.au3>
Global $ExitID

If $CmdLine[0] <> 2 Then help()

;-->etwas warten bevor soffice.bin beendet wird-------------------------
;um die Zeit zu überbrücken statt Sleep() Fortschrittsanzeige laufen lassen
ProgressOn("Bitte etwas Geduld", "Benutzerverzeichnis wird konsolidiert...")
For $i = 10 To 100 Step 10
   Sleep(300)
   $j = Random(0, 9, 1)
   $k = $i+$j
   If $k > 100 Then $k = 100 ;max. 100% möglich
   ProgressSet($k, $k & " %")
Next
Sleep(200)
ProgressOff()
;-------------------------etwas warten bevor soffice.bin beendet wird<--

;evtl. mehrere Instanzen vorhanden
;(jedoch Problem weil im Star-Basic-Makro nur die jeweilige Instanz angesprochen
;wird aus der heraus das Makro läuft, womit nicht das Vorhandensein ungespeicherter
;Dokumente in anderen Instanzen geprüft wird)
While ProcessExists("soffice.bin") ;
   ProcessClose("soffice.bin")
Wend

Sleep(500)

DirMove($CmdLine[1], $CmdLine[2])

Opt("GUIOnEventMode", 1)

_Main()

Func _Main()
   Local $YesID, $NoID

   GUICreate("OO-Benutzerverzeichnis wurde umbenannt", 600, 150)

   $tmp_text1 = "Das bisherige OpenOffice-Benutzerverzeichnis wurde umbenannt in:"
   $tmp_text2 = "Bitte starten Sie OpenOffice jetzt neu, dabei wird automatisch ein neues Benutzerverzeichnis erstellt."

   $tmp_var1 = "    " & CHR(34) & $CmdLine[2] & CHR(34)

   GUICtrlCreateLabel($tmp_text1 & CHR(13) & CHR(13) & $tmp_var1 & CHR(13) & CHR(13) & $tmp_text2, 10, 10, 580, 100, 0x0000)
   $YesID = GUICtrlCreateButton("OK", 275, 120, 50, 20)
   GUICtrlSetOnEvent($YesID, "OnOK")

   GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")

   GUISetState() ; display the GUI

   While 1
      Sleep(1000)
   WEnd
EndFunc   ;==>_Main

Func OnOK()
   Exit
EndFunc

Func OnExit()
   Exit
EndFunc

Func help()
    $msg = "OO-BV ist ein Tool zum Umbenennen des OpenOffice-Benutzerverzeichnisses." & @CR & _
            @CR & "Syntax:" & _
            @CR & "OO-BV.exe <Pfad des aktuellen OO-Benutzerverzeichnisses> <neuer Name des Verzeichnisses (Archiv)>" & @CR & _
            @CR & "Lizenz: ISC-Lizenz" & @CR & _
         "Copyright (c) Jörg Schmidt, www.jm-schmidt.de"
    MsgBox(0, "Hinweis zu OO-BV", $msg)
    Exit
EndFunc  ;==>help
Dateianhänge
OO-Benutzerverzeichnis_umbenennen_1.0.0.odt
(378.9 KiB) 137-mal heruntergeladen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast