Jump to content

Sense Finito!


Beutolomäus

Recommended Posts

  • Replies 104
  • Created
  • Last Reply

Top Posters In This Topic

  • Beutolomäus

    50

  • tramp

    19

  • nuts

    14

  • GruberMa

    8

Hallo,

 

dies klingt sehr interessant. Ergänzend hätte ich noch einen Verbesserungsvorschlag. Könnte die Sicherung nicht auch automatisch erfolgen und zwar in der Weise, daß alte Sicherungen davor erhalten bleiben? Die Sicherung könnte zeit- oder ereignisgesteuert sein.

 

Vor einiger Zeit hatte ich einen Totalabsturzt. Danach waren einige Einstellungen z.B. Fenstergröße und -position verändert. Außerdem waren alle programmierten Timer weg. Die Timer.xml und Timer.bak waren leer. Daraufhin habe ich mir mit AutoHotkey ein Skript geschrieben (vgl.: http://www.DVBViewer.tv/forum/topic/51627-copy-mit-index/page__p__381127__fromsearch__1#entry381127), das die Timer.xml und Timer.bak bei jedem Booten des Rechners in ein Sik-Verzeichnis kopiert und an die Kopie, wenn eine Datei gleichen Namens schon vorhanden ist, einen um 1 erhöhten Index anhängt (also z.B. Timer [1].xml, Timer [2].xml).

 

 

Viele Grüße

 

Webturtle

Edited by Webturtle
Link to comment
Die Ordner, in welchen sich die Einstellungen der jeweiligen Version befinden, sind festgelegt und können offenbar nicht verändert werden.

Doch, der Pfad des Konfigurationsordners kann in Grenzen verändert werden. Bitte das hier lesen - es gilt sinngemäß auch für den DVBViewer Pro:

 

http://www.DVBViewer.com/griga/Install.html#Mehrbenutzer

 

Die korrekte Vorgehensweise für das Tool wäre, die Datei UserMode.ini im DVBViewer Pro/GE-Installationsordner zu lesen und anhand des Inhalts den Pfad des Konfigurationsordners zu ermitteln. So machen es der DVBViewer, sämtliche Plugins (sollten sie zumindest) und auch Add-Ons wie TransEdit.

 

Sie rufen dazu die Shell-Funktion SHGetFolderPath mit CSIDL_APPDATA (UserMode 1) bzw. CSIDL_COMMON_APPDATA (UserMode 2) auf. Der auf diese Weise ermittelte Pfad wird durch den Eintrag Root aus der UserMode.ini vervollständigt. Für den DVBViewer GE sieht das bei mir unter Windows XP so aus:

 

[Mode]
UserMode=2
Root=DVBViewer GE

 

ergibt den Pfad C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\DVBViewer GE.

Link to comment

Ich würde beim Backup die epg.dat außen vor lassen um das Backup zu beschleunigen und deutlich zu verkleinern.

Da die beim Verwendung vom RS gleich zweimal vorhanden sein kann. Und mit 5-40 MB je Datei mit Abstand die größte Datei sein dürfte. Und zumindest meiner Meinung nach eine eher unwichtige Datei ist.

Es fehlen halt im Zweifelsfall erstmal ein paar EPG Informationen. Und wenn das Backup ein paar Tage alt ist, ist die sowieso nichts mehr Wert.

 

http://de.DVBViewer.tv/wiki/DVBViewer_Pro_Dateien

http://de.DVBViewer.tv/wiki/DVB_Recording_Service_Dateien

Link to comment

Der DVBViewer GE hat kein Setup, dass heißt es gibt keine Wirklich Möglichkeit zu ermitteln wo sich der DVBViewer GE Ordner befindet.

 

Die meisten Tools die die UserMode.ini verwenden, erwarten dass sie sich im DVBViewer Verzeichnis befinden. Also im gleichen Verzeichnis wie die UserMode.ini.

Link to comment

Der Anfang für ein Backuptool ist gemacht - sehr schön.

 

Ein paar Vorschlage:

 

1. Es sollten einen silent Mode geben, der das Backup automatisiert durchführen kann - aufgerufen z.B. durch einen Kommandoparameter (-silent).

 

2. Der Packer sollte ein in einem für andere Programme lesbaren Format arbeiten, damit man die Einstellungen problemlos auf einen anderen PC übertragen kann.

ZIP ist eine gute Idee! Ich verwende dafür immer 7Zip (vorischt mit den Lizenzbestimmungen), es gibt sicherlich auch andere Alternativen.

 

3. An einem HTPC gibt es einige Ordner die man sichern sollte.

Wie wäre es mit einer INI, in die man weitere Verzeichnisse oder Dateien eintragen kann und dein Skript sammelt die alle ein?

Der DVBViewer kann seine Spezialbehandlung (ohne egp usw.) ja trotzdem behalten.

 

4. Dein Programm könnte die vorhandenen Backupdateien im Zielordner überprüfen und alte Dateien automatisch löschen.

Also alle Backupdateien einlesen und nur die X (einstellbar über die INI?) aktuellesten Version behalten oder alle Datein älter als X Tage löschen.

 

5. Den Pfad für den DVBViewer Pro automatisch zu ermitteln klappt eigentlich 100%. Wieso hast du dich dagegen entschieden?

Hier mal ein Beispiel (autoit):

Func _Get_dvbv_configdir()

; nuts (www.autoit.de)

;

;$fullpath: false => return DVBViewer config directory

; true => return full path of DVBViewer.exe

;

;@error; 1 => _Get_DVBV_Path failed

; 2 => iniread failed

; 3 => path not found

 

Local $ret

Local $dvbvpath = _Get_DVBV_Path()

If @error Then Return SetError(1, 0, 0)

Local $usermode = IniRead($dvbvpath & "\usermode.ini", "Mode", "UserMode", "")

If @error Then Return SetError(2, 0, 0)

Local $root = Iniread($dvbvpath & "\usermode.ini", "Mode", "Root", "CMUV\DVBViewer")

If @error Then Return SetError(2, 0, 0)

Switch $usermode

Case 2

$ret = @AppDataCommonDir & "\" & $root

If FileExists($ret) Then

Return $ret

Else

Return SetError(3, 0, 0)

EndIf

Case 1

$ret = @AppDataDir & "\" & $root

If FileExists($ret) Then

Return $ret

Else

Return SetError(3, 0, 0)

EndIf

Case 0

Return $dvbvpath

Case Else

Return SetError(3, 0, 0)

EndSwitch

 

EndFunc ;==>_Get_dvbv_konfigdir

 

Func _Get_DVBV_Path($fullpath = False)

; nuts (www.autoit.de)

;

;$fullpath: false => return DVBViewer directory

; true => return full path of DVBViewer.exe

;

;@error; 1 => path not found

Local $path = RegRead('HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\DVBViewer Pro_is1', 'Inno Setup: App Path')

If Not FileExists($path) Then $path = RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\DVBViewer Pro_is1', 'Inno Setup: App Path')

If Not FileExists($path) Then Return SetError(1, 0, 0)

Switch $fullpath

Case False

Return $path

Case True

$path &= '\DVBViewer.exe'

If Not FileExists($path) Then Return SetError(1, 0, 0)

Return $path

EndSwitch

#cs

Beschreibung laut Lars

HKLM + Software\Microsoft\Windows\CurrentVersion\Uninstall\DVBViewer Pro_is1' -> 'Inno Setup: App Path' oder

HKCU + Software\Microsoft\Windows\CurrentVersion\Uninstall\DVBViewer Pro_is1' -> 'Inno Setup: App Path' oder

indem man den registry zweig der registrierten COM klasse des DVBCOMServers abfragt und daraus den pfad ermittelt

#ce

EndFunc ;==>_Get_DVBV_Path

Edited by nuts
Link to comment
  • 2 months later...
  • 3 weeks later...

Wo findet man denn die aktuellen Versionen? 0.9.3 und 0.9.4 sind bei file-upload nicht auffindbar? Wäre an der automatisierbaren Version interessiert...

Link to comment

Hm du müsstest auch hier genug Speicherplatz haben um das Backuptool hochzuladen. Kommt eine Fehlermeldung?

 

Hast du eingebaut das weitere Dateien und Ordner mitgesichert werden können?

Link to comment

Hast du darüber schon nachgedacht?

3. An einem HTPC gibt es einige Ordner die man sichern sollte.
Wie wäre es mit einer INI, in die man weitere Verzeichnisse oder Dateien eintragen kann und dein Skript sammelt die alle ein?
Der DVBViewer kann seine Spezialbehandlung (ohne egp usw.) ja trotzdem behalten.

Müsste man imho gar nicht übers GUI lösen.

Eine Sektion in der INI, in die man zusätzliche Dateien und Verzeichnisse eintragen kann würde reichen.

 

"Die Pfad im Explorer öffnen" Buttons könnte man, zumindest fürs Zielverzeichnis, in die "Fileselectfolder" Funktion (wie vor dem manuellen Backup) ändern.

Zumindest bei gefundenem Backup-Verzeichnis würde ich dann die erneute Auswahl vor jedem Backup weglassen.

 

Ansonsten scheint bei mir alles zu funktionieren. :)

 

P.S. Konfig. INI vielleicht besser in die von Windows dafür vorgesehenen Verzeichnisse ablegen? Glaube sonst meckert UAC, wenn in bestimmte Verzeichnisse geschrieben wird.

Link to comment

@nuts

Darüber habe ich sogar ausführlich nachgedacht, bin aber zu dem Schluss gekommen, dass der Aufwand, dieses Feature zu integrieren, viel größer wäre, als es anfänglich scheint. Die hunderttausend Probleme, welche zu bewältigen wären, möchte ich erst gar nicht ansprechen.

Würde mich schon interessieren welche Probleme dabei aufgetreten sind. :)

Ich wollte schon länger eine Backup-Funktion in meine Skripte einbauen und hätte ggf. dann einfach dein Skript im "silent-mode" verwendet.

Nur die DVBViewer-Verzeichnisse zu sichern reicht bei mir leider nicht.

 

P.S. Bitte nicht als Feature-Forderung verstehen. Das Programm ist für den ursprünglichen Zweck gelungen.

Link to comment

Eine Nuts-Version ^^

Sehr nett! Danke.

Die Benutzung ist etwas eingeschränkt, aber wenn ich darf würde ich "nutsBackup" direkt in meine Skripte einbinden (per Fileinstall). Dann könnte ich mir das drumrum (Zielverzeichnis, Quellverzeichnisse usw.) selbst zusammenbastlen.

Mit meinen Skripten meine ich:

http://www.DVBViewer.tv/forum/topic/48512-erweitertes-beenden-v2-extended-exit-v2/

oder

http://www.DVBViewer.tv/forum/topic/52529-tcp-control/

 

Natürlich mit einem entsprechenden Hinweisen im Thread und im Quellcode, dass das Backup-Modul von dir kommt.

Link to comment
Das Zielverzeichnis für die ZIP-Datei, als Parameter zu übergeben, könnte man ja noch einbauen.

Das meinte ich. :)

Wäre nicht schlecht.

Ich möchte die Anwendungen nur im dafür vorgesehenen Verzeichnis ausführen und in diese Verzeichnisse sollte imho kein Programm Schreibzugriffe tätigen.

 

Eine INI anstatt der Textdatei für die Verzeichnisse fände ich etwas übersichtlicher.

z.B.

[backup]

DVBV=%\...\DVBViewer

EG=%\...\EG

 

Dann kann man als Key eine Bezeichnung wählen, die auf den ersten Blick erahnen lässt was man da überhaupt sichert.

Mit der Textdatei könnte ich aber auch leben. ;)

Edited by nuts
Link to comment
  • 3 weeks later...

Hallo Beutolomäus,

 

Vielen Dank für dein Programm, es leistet gute Dienste!

 

Schade ist, das nur die letzten fünf Backups aufbewahrt werden und alle älteren automatisch gelöscht werden. Kann man dieses Verhalten abschalten oder beeinflussen?

 

LG,

 

GruberMa

Link to comment

Wenn du Lust hast, ich hätte noch ein paar Vorschläge für die silent bzw. die nutsversion.

Fehlermeldungen: Die msgbox ist für Fehlermeldungen beim Aufruf aus anderen Skripten eher nicht so geeignet.
Dein Skript hängt ja dann ohne User-Aktion fest.
Lösung 1: Fehlermeldungen in ein Log schreiben
Lösung 2: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499%28v=vs.85%29.aspx
Dann kann die Fehlermeldung im externen Skript selbst behandelt werden.
Lösung 3: beides

Mir wäre jede Variante recht. :)

 

Backupzielverzeichnis:

Anstatt als zweiten Parameter wäre es imho besser diesen Eintrag in die INI zu packen.

Dann könnte man das dort hinterlegte Verzeichnis nach älteren Backups durchsuchen.

(und ich muss mich in meinen Skripte nicht drum kümmern :D )

Anzahl der Backups:

Ist das Backupverzeichnis in der INI hinterlegt könnte man im nächsten Schritt die maximale Anzahl an Backups bestimmen und ggf. ältere Backups löschen.

 

Sonderbehandlung für den DVBViewer:

Automatische Pfadermittlung und das ausschließen der EPG Daten gefällt mir in deiner Hauptversion gut.

Das könnte man auch in die "nutsversion" einbauen.

 

Damit man es sich besser vorstellen kann mal eine Entwurf wie die INI dann ca. aussehen müsste:

 

[settings]
BackupDir= (default bzw. kein Eintrag = @scriptdir)
BackupMax=5 (maximal 5 Backups in BackupDir behalten - Rest nach dem Erstellungsdatum löschen)
Log= (default bzw. kein Eintrag = @scriptdir)

[DVBViewer]
DVBViewerPro=0/1 (fürs DVBViewer Verzeichnis 0=disable, 1=enable)
DVBViewerProConfig=0/1 (fürs DVBViewer Konfig.-Verz. 0=disbale, 1=enable => ohne EPG Daten)
DVBViewerGE=Pfadangabe
DVBViewerGEConfig= (s. Pro)


[backup] => und hier kommt weiterhin jedes zusätzliche Verzeichnis rein
EG=C:\ProgramData\EventGhost

Edited by nuts
Link to comment

Ja bezieht sich eigentlich nur auf die Nuts-Version. ;)

"Fehlermeldungen" ist vielleicht auch für den Silent-Modus interessant, daher hab ichs so formuliert.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...