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) 1225-mal heruntergeladen
[b]Ich könnte Hilfe gebrauchen bei der Programmierung eines kleinen Tools für Linux/Unix/MacOS gebrauchen (im Folgenden erläutert)[/b]
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.
[b]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. [/b]
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.
[b]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?[/b]
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];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
[/code]