<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Calibre_eBook_MultiUser_Tool_%2F_Funktion</id>
	<title>Calibre eBook MultiUser Tool / Funktion - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=Calibre_eBook_MultiUser_Tool_%2F_Funktion"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Calibre_eBook_MultiUser_Tool_/_Funktion&amp;action=history"/>
	<updated>2026-05-06T14:19:14Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Calibre_eBook_MultiUser_Tool_/_Funktion&amp;diff=10796&amp;oldid=prev</id>
		<title>BLinz: /* Calibre ist noch nicht gestartet */</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Calibre_eBook_MultiUser_Tool_/_Funktion&amp;diff=10796&amp;oldid=prev"/>
		<updated>2018-04-26T20:58:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Calibre ist noch nicht gestartet&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
[[Kategorie:Calibre]]&lt;br /&gt;
[[Kategorie:ZnilTools]]&lt;br /&gt;
&amp;lt;big&amp;gt;Download: &amp;#039;&amp;#039;&amp;#039;[[Media:CalibreMultiuserStarter.zip|CalibreMultiuserStarter.zip]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Stichwörter: Calibre Multiuser MultiComputer mehrere Rechner Dropbox SkyDrive GoogleDrive Netzlaufwerk Netzwerk&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Ich hatte das Problem das ich mit einem Freund zusammen Calibre ( http://calibre-ebook.com/ ) nutzen wollte - im Netzwerk und in DropBox.&amp;lt;br&amp;gt;&lt;br /&gt;
Nun kann Calibre aber empfindlich reagieren wenn es auf 2 oder mehr Rechnern gleichzeitig gestartet wird - schnell kommt es zu &amp;quot;im Konfilkt stehende Kopien&amp;quot; usw. und die Änderungen von einem Rechner sind ersteinmal weg etc.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun, so richtig MultiUser fähig kann ich Calibre auch nicht machen - aber ich kann dafür sorgen das Calibre immer nur auf einem Rechner gleichzeitig gestartet ist.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorbereitung==&lt;br /&gt;
Ihr nehmt einen Ordner und &amp;quot;Installiert&amp;quot; Calibre Portable in diesem: http://calibre-ebook.com/download_portable&lt;br /&gt;
Eure &amp;lt;code&amp;gt;Calibre Library&amp;lt;/code&amp;gt; befindet sich dann in diesem Ordner, also das Verzeichnis in dem die ganzen eBooks dann liegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr schon die normale Version von Calibre nutzen - kopiert den Ordner &amp;lt;code&amp;gt;Calibre Library&amp;lt;/code&amp;gt; der normalen Installation einfach in diesen und startet einmal die &amp;lt;code&amp;gt;calibre-portable.exe&amp;lt;/code&amp;gt;. Es kommt ein kurzes Setup zu eurem Gerät und Email. Später könnt Ihr weitere Geräte etc. hinzufügen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Calibre richtig läuft sollte der Ordner so aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:CalibreMultiUser-001.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Der Ordner kann selbstverständlich auch in einer DropBox etc liegen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die &amp;quot;Calibre Portable&amp;quot; Version funktioniert genauso wie die Installationsversion - und hat den Vorteil das auf allen Rechnern automatisch die gleiche Version eingesetzt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MultiUser einrichten==&lt;br /&gt;
Ladet die &amp;#039;&amp;#039;&amp;#039;[[Media:CalibreMultiuserStarter.zip|CalibreMultiuserStarter.zip]]&amp;#039;&amp;#039;&amp;#039; herunter und entpackt diese.&amp;lt;br&amp;gt;&lt;br /&gt;
Die &amp;lt;code&amp;gt;CalibreMultiuserStarter.exe&amp;lt;/code&amp;gt; kopiert Ihr nun in das Verzeichnis in der auch die &amp;lt;code&amp;gt;calibre-portable.exe&amp;lt;/code&amp;gt; liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann sollte es so aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
: [[Datei:CalibreMultiUser-002.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MultiUser nutzen==&lt;br /&gt;
Der ganze Trick ist nun das Ihr in Zukunft Calibre über die &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;CalibreMultiuserStarter.exe&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
startet.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese funktioniert wie folgt:&amp;lt;br&amp;gt;&lt;br /&gt;
===Calibre ist noch nicht gestartet===&lt;br /&gt;
* Sie prüft ob eine &amp;lt;code&amp;gt;CalibreLockFile.txt&amp;lt;/code&amp;gt; im gleichen Verzeichnis liegt.&lt;br /&gt;
* Diese existiert nicht und wird mit folgendem Inhalt angelegt:&lt;br /&gt;
** Anmeldename&lt;br /&gt;
** Computername&lt;br /&gt;
** Uhrzeit und Datum&lt;br /&gt;
* Dann wird die &amp;lt;code&amp;gt;calibre-portable.exe&amp;lt;/code&amp;gt; gestartet&lt;br /&gt;
* Nun wartet die &amp;lt;code&amp;gt;CalibreMultiuserStarter.exe&amp;lt;/code&amp;gt; im Hintergund und prüft alle 3 Sekunden ob es einen &amp;lt;code&amp;gt;calibre-portable.exe&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;calibre.exe&amp;lt;/code&amp;gt; Prozess gibt.&lt;br /&gt;
** Wenn Ja läuft Calibre noch - weitere 3 Sekunden warten&lt;br /&gt;
** Wenn Nein wird die &amp;lt;code&amp;gt;CalibreLockFile.txt&amp;lt;/code&amp;gt; wieder gelöscht und das Programm beendet sich&lt;br /&gt;
&lt;br /&gt;
===Calibre ist bereits gestartet===&lt;br /&gt;
* Es gibt eine &amp;lt;code&amp;gt;CalibreLockFile.txt&amp;lt;/code&amp;gt; im gleichen Verzeichnis.&lt;br /&gt;
* Diese wird ausgelesen und dem Benutzer eine Fehlermeldung angezeigt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:CalibreMultiUser-003.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Calibre wird &amp;#039;&amp;#039;&amp;#039;NICHT&amp;#039;&amp;#039;&amp;#039; gestartet und das Programm beendet sich.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Nachtrag==&lt;br /&gt;
Die kleine &amp;lt;code&amp;gt;CalibreLockFile.txt&amp;lt;/code&amp;gt; ist nur wenige Bytes groß (30 bis 60 Bytes) und somit durch DropBox &amp;amp; Co. in wenigen Sekunden auf die anderen Geräte repliziert.&amp;lt;br&amp;gt;&lt;br /&gt;
Da in der Meldung der Anmelde- und Rechnername steht lässt sich leicht ermitteln auf welchen Gerät Calibre noch gestartet ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Sollte es eine Fehler geben - Calibre ist auf dem gemeldeten Rechner gar nicht gestartet - löscht Ihr einfach die &amp;lt;code&amp;gt;CalibreLockFile.txt&amp;lt;/code&amp;gt; und es funktioniert wieder alles wie gewohnt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Quellcode==&lt;br /&gt;
Das Tool wurde in/mit AutoIt geschrieben:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#NoTrayIcon&lt;br /&gt;
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
#AutoIt3Wrapper_Icon=CalibeIcon.ico&lt;br /&gt;
#AutoIt3Wrapper_Res_Description=2013 Bernhard Linz / Bernhard@znil.de / http://znil.net&lt;br /&gt;
#AutoIt3Wrapper_Res_Fileversion=1.0.0.3&lt;br /&gt;
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y&lt;br /&gt;
#AutoIt3Wrapper_Res_LegalCopyright=znil.net&lt;br /&gt;
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
&lt;br /&gt;
; CalibeMultiuserStarter&lt;br /&gt;
; 2013 von Bernhard Linz&lt;br /&gt;
; http://znil.net&lt;br /&gt;
; Bernhard@znil.net&lt;br /&gt;
&lt;br /&gt;
Dim Const $s_LockFileName = &amp;quot;CalibreLockFile.txt&amp;quot;&lt;br /&gt;
Dim Const $s_CalibreProgramName = &amp;quot;calibre-portable.exe&amp;quot;&lt;br /&gt;
Dim Const $s_CalibreMainProgramName = &amp;quot;calibre.exe&amp;quot;&lt;br /&gt;
Dim $h_lockfile&lt;br /&gt;
Dim $h_Calibre&lt;br /&gt;
Dim $b_RunCalibe = False&lt;br /&gt;
Dim $a_gelockt_von&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If FileExists($s_LockFileName) = 1 Then&lt;br /&gt;
    $h_lockfile = FileOpen($s_LockFileName,0)&lt;br /&gt;
    $a_gelockt_von = StringSplit(FileReadLine($s_LockFileName), &amp;quot;:&amp;quot;, 0)&lt;br /&gt;
    FileClose($h_lockfile)&lt;br /&gt;
    ; $a_gelockt_von[1] = Benutzername&lt;br /&gt;
    ; $a_gelockt_von[2] = Computername&lt;br /&gt;
    ; $a_gelockt_von[3] = Stunde&lt;br /&gt;
    ; $a_gelockt_von[4] = Minute&lt;br /&gt;
    ; $a_gelockt_von[5] = Tag&lt;br /&gt;
    ; $a_gelockt_von[6] = Monat&lt;br /&gt;
    ; $a_gelockt_von[7] = Jahr&lt;br /&gt;
    If $a_gelockt_von[0] = 7 Then&lt;br /&gt;
        MsgBox(262160, &amp;quot;Calibre blockiert&amp;quot;, &amp;quot;Der Benutzer &amp;#039;&amp;quot; &amp;amp; $a_gelockt_von[1] &amp;amp; &amp;quot;&amp;#039; am Computer &amp;#039;&amp;quot; &amp;amp; $a_gelockt_von[2] &amp;amp; &amp;quot;&amp;#039;&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
         &amp;quot;hat bereits um &amp;quot; &amp;amp; $a_gelockt_von[3] &amp;amp; &amp;quot;:&amp;quot; &amp;amp; $a_gelockt_von[4] &amp;amp; &amp;quot; Uhr am &amp;quot; &amp;amp; $a_gelockt_von[5] &amp;amp; &amp;quot;.&amp;quot; &amp;amp; $a_gelockt_von[6] &amp;amp; &amp;quot;.&amp;quot; &amp;amp; $a_gelockt_von[7] &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
         &amp;quot;Calibre gestartet und nimmt eventuell Änderungen vor.&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
         &amp;quot;Programmaufruf ist blockiert!&amp;quot;)&lt;br /&gt;
    EndIf&lt;br /&gt;
    $b_RunCalibe = False&lt;br /&gt;
Else&lt;br /&gt;
    $h_lockfile = FileOpen($s_LockFileName,2)&lt;br /&gt;
    FileWriteLine($h_lockfile, @UserName &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @ComputerName &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @HOUR &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @MIN &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @MDAY &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @MON &amp;amp; &amp;quot;:&amp;quot; &amp;amp; @YEAR &amp;amp; @CRLF)&lt;br /&gt;
    FileClose($h_lockfile)&lt;br /&gt;
    $b_RunCalibe = True&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
If $b_RunCalibe = False Then&lt;br /&gt;
    Exit 1&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
$h_Calibre = Run(@ScriptDir &amp;amp; &amp;quot;\&amp;quot; &amp;amp; $s_CalibreProgramName, @ScriptDir, @SW_MAXIMIZE)&lt;br /&gt;
If $h_Calibre = 0 Then&lt;br /&gt;
    FileDelete($s_LockFileName)&lt;br /&gt;
    MsgBox(16, &amp;quot;Fehler&amp;quot;, &amp;quot;Konnte &amp;#039;&amp;quot; &amp;amp; @ScriptDir &amp;amp; &amp;quot;\&amp;quot; &amp;amp; $s_CalibreProgramName &amp;amp; &amp;quot;&amp;#039; nicht starten&amp;quot;)&lt;br /&gt;
    Exit 1&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
    Sleep(3000)&lt;br /&gt;
    If (ProcessExists($h_Calibre) = 0) And (ProcessExists($s_CalibreMainProgramName) = 0) Then&lt;br /&gt;
        $b_RunCalibe = False&lt;br /&gt;
    EndIf&lt;br /&gt;
Until $b_RunCalibe = False&lt;br /&gt;
&lt;br /&gt;
FileDelete($s_LockFileName)&lt;br /&gt;
Sleep (3000)&lt;br /&gt;
&lt;br /&gt;
If FileExists($s_LockFileName) = 1 Then&lt;br /&gt;
    MsgBox(16,&amp;quot;Warnung&amp;quot;, &amp;quot;Konnte das Calibre-Lock-File nicht löschen:&amp;quot; &amp;amp; @CRLF &amp;amp; @ScriptDir &amp;amp; &amp;quot;\&amp;quot; &amp;amp; $s_CalibreProgramName)&lt;br /&gt;
    Exit 1&lt;br /&gt;
Else&lt;br /&gt;
    Exit 0&lt;br /&gt;
EndIf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--[[Benutzer:BLinz|Bernhard Linz]] 20:45, 22. Okt. 2013 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>