Nur als Info: Hier unter Windows 7 wird auch keine
Vollzugs Benachrichtigung angezeigt. Das ist aber auch
mit der Original Version so. Es liegt also nicht am Script.
Die im Script verwendete API steht erst ab Windows 10 zur Verfügung.
Nur als Info: Hier unter Windows 7 wird auch keine
Vollzugs Benachrichtigung angezeigt. Das ist aber auch
mit der Original Version so. Es liegt also nicht am Script.
Die im Script verwendete API steht erst ab Windows 10 zur Verfügung.
steht erst ab Windows 10 zur Verfügung.
Danke für den Hinweis ![]()
Habe es gerade eben in 116.0.2 getestet,
da wird die Bestätigung nach Backup angezeigt.
Prima.
Mfg.
Endor
da wird die Bestätigung nach Backup angezeigt.
![]()
Obwohl aktiviert irgendwie nicht wirklich.
Kann dir jetzt erst so eine Meldung zeigen ![]()
Kurz vorher wird die Meldung unten rechts angezeigt, dann ausgeblendet, und nur über den Hinweisbutton unten rechts dann angezeigt.
Danke, danke, so habe ich mir das gedacht, und funktioniert ganz prima. Auch die Benachrichtigung wird angezeigt.
![]()
Danke, danke, so habe ich mir das gedacht, und funktioniert ganz prima.
Gerne. Freut mich, wenn es das ist, was du wolltest...
.
Momentan versuche ich mich noch an einer anderen "Baustelle" bei dem bestehenden Skript - obwohl ich es wahrscheinlich eh nie benutzen werde
:
Während des Backups "blockiert" das Skript den Firefox komplett, was absolut richtig so ist, da ja während des Backups auf keinen Fall Veränderungen an den Firefox-Dateien (z.B. prefs.js) durchgeführt werden dürfen. Aber dieses Blockieren wird dem Nutzer des Skripts in keinster Weise (visuell) sichtbar gemacht. Selbst der Mauszeiger verändert sich erst, wenn man trotzdem versucht den Firefox anzusprechen. Das empfinde ich als nicht sonderlich anwenderfreundlich und kann, wenn das Backup länger dauert, auch z.B. dazu führen, dass man den Prozess selber abschießt, weil man denkt, der hängt jetzt irgendwie (ist mir, ungeduldig wie ich bin, wirklich beim ersten Start passiert...
).
Idee wäre ein modaler Dialog, der während der Sicherung angezeigt wird und vielleicht noch eine schöne Animation beinhaltet. Ist aber leider aufwendiger, als ich zuerst dachte, aber mal schauen. Nette Fingerübung für javascript/xpcom allemal - man muss ja immer weiter lernen und in Form bleiben
.
---
Und wirklich traurig, dass sich aborix hier nicht mehr blicken lässt
. Wenn es ihm so weit gut geht, was ich sehr hoffe, und es nicht ein Schweigegelübde o.Ä. ist, könnte er ja mal hier im Forum ein Lebenszeichen von sich geben.. ![]()
Post 184 Dieses Skript. Wie kann ich den Chrome\CSS-Ordner zu den Ausnahmen hinzufügen?
*CSS-Ordner*
Thank ![]()
Kommentieren Sie diese Zeile aus oder entfernen Sie sie, damit das Skript in Firefox v143+ funktioniert
ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
lenny2 No!
Ändern in ChromeUtils.importESModule("moz-src:///browser/components/customizableui/CustomizableUI.sys.mjs"); wäre
der richtige Weg![]()
Wie bereits hier festgestellt, muss diese Datei nicht importiert werden.
Danke für die Antworten, mit anderen Worten, diese Zeile kann gestrichen werden.
Wie bereits hier festgestellt, muss diese Datei nicht importiert werden
Ah, na dann.
Weg damit.
Ich verwende das Skript aus Beitrag #184. In v147 werden keine Push-Benachrichtigungen des Skripts mehr neben der System Tray angezeigt, die über den Abschluss der Sicherung informieren.
Ich habe nur ein Skript, das Push-Benachrichtigungen ausgibt. Möglicherweise tritt dieses Problem auch in Skripten mit anderen Funktionen auf.
In v146 tritt das beschriebene Problem nicht auf.
Oh ha![]()
Da hat mich lenny aber an was erinnert.
Ich nutze ebenfalls das Script, aber habe die Version von BrokenHeart etwas abgeändert!
Der Sicherungspfad ist fest vorgegeben und ich habe folgende Korrektur vor genommen.
Gelöscht => ChromeUtils.importESModule("moz-src:///browser/components/customizableui/CustomizableUI.sys.mjs");
// ==UserScript==
// @name BackupProfile.uc.js
// @namespace BackupProfile.github.com
// @description Schaltfläche zum Sichern des Firefoxprofils
// @charset UTF-8
// @author ywzhaiqi、defpt
// @version v2018.01.10
// @note Vorlage Script von ywzhaiqi (+ Mischung aus diversen Varianten aus dem Fuchsforum 1.11.21)
// @note Sicherungsdatei enthaelt auch Profilname
// @reviewURL http://bbs.kafan.cn/thread-1758785-1-1.html
// Source https://www.camp-firefox.de/forum/thema/133557/?postID=1232903#post1232903
/* ----------------------------------------------------------------------------------- */
/* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */
/* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */
/* ----------------------------------------------------------------------------------- */
(function () {
CustomizableUI.createWidget({
id : "backupProfile-button",
defaultArea : CustomizableUI.AREA_NAVBAR,
label : "Profilsicherung",
tooltiptext : "Sichern der aktuellen Konfiguration",
onClick: function(){
// Speicherort - Ordner festlegen - Sichern funktioniert nur wenn Speicherort- bzw. Ordner vorhanden ist!!
var path = "E:\\Firefox-Sicherung\\";
// var path = "";
// Ausschlussliste
var excludes = 'bookmarkbackups *cache* crashes fftmp *healthreport* minidumps safebrowsing *webapps* saved-telemetry-pings *thumbnails* *session* *Telemetry* *hotfix* *.sqlite-shm *.sqlite-wal *.bak parent.lock blocklist.xml content-prefs.sqlite directoryLinks.json mimeTypes.rdf compatibility.ini parent.lock formhistory.sqlite';
if (!path) {
var nsIFilePicker = Ci.nsIFilePicker;
var FP = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
FP.init(window, 'Sicherungspfad wählen', nsIFilePicker.modeGetFolder);
if (FP.show() == nsIFilePicker.returnOK) {
path = FP.file.path;
} else {
return false;
}
}
excludes = excludes.replace(/\./g, '\\.').replace(/\*/g, '.*').replace(/\s+/g, '|');
excludes = new RegExp(excludes, 'i');
var zw = Cc['@mozilla.org/zipwriter;1'].createInstance(Ci.nsIZipWriter);
var pr = {PR_RDONLY: 0x01, PR_WRONLY: 0x02, PR_RDWR: 0x04, PR_CREATE_FILE: 0x08, PR_APPEND: 0x10, PR_TRUNCATE: 0x20, PR_SYNC: 0x40, PR_EXCL: 0x80};
var fu = ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs').FileUtils;
var dir = new FileUtils.File(PathUtils.join(PathUtils.profileDir,[]));
let d = new Date();
d = d.getDate().toString().padStart(2, '0') + '.' + (d.getMonth() + 1).toString().padStart(2, '0') + '.' + d.getFullYear() + ' - ' + d.getHours().toString().padStart(2, '0') + '\u2236' + d.getMinutes().toString().padStart(2, '0');
// Die folgende Zeile formt den Archivnamen
var archiveName = 'Profil Andreas ' + AppConstants.MOZ_APP_VERSION_DISPLAY + ' - ' + d + '.zip'; /* 'd' ersetzt 'localnow' */
var xpi = fu.File(path + '\\' + archiveName);
zw.open(xpi, pr.PR_RDWR | pr.PR_CREATE_FILE | pr.PR_TRUNCATE);
var dirArr = [dir];
for (var i=0; i<dirArr.length; i++) {
var dirEntries = dirArr[i].directoryEntries;
while (dirEntries.hasMoreElements()) {
var entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
if (entry.path == xpi.path) {
continue;
}
if (entry.isDirectory()) {
dirArr.push(entry);
}
var relPath = entry.path.replace(dirArr[0].path, '');
if (relPath.match(excludes)) {
continue;
}
var saveInZipAs = relPath.substr(1);
saveInZipAs = saveInZipAs.replace(/\\/g,'/');
// Konfigurationsdateien können gesperrt werden
try {
zw.addEntryFile(saveInZipAs, Ci.nsIZipWriter.COMPRESSION_FASTEST, entry, false);
} catch (e) {}
}
}
zw.close();
alert('Die aktuelle Konfiguration wurde als:\n'+ archiveName +'\ngesichert in:\n' + path);
function alert(aString, aTitle) {
// Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle, aString, false, "", null);
// ^ Ersetzt duch :
const AlertNotification = Components.Constructor(
'@mozilla.org/alert-notification;1',
'nsIAlertNotification',
'initWithObject'
);
Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlert(
new AlertNotification({ title: aTitle, text: aString })
);
// ^
}
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
let ButtonIcon = "backup.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
let sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
let uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
#backupProfile-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
#backupProfile-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
width: 32px !important;
height: 32px !important;
fill: #faea00 !important;
fill-opacity: 1 !important;
}
`), null, null);
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
// #ffe10f // #fdeb4c
})();
Alles anzeigen
Auch mir fehlt irgendwie eine Meldung, dass die Sicherung erfolgreich beendet ist.
Ich habe mir notdürftig ein Promt gebastelt! Gefällt mir aber nicht wirklich![]()
function alert(aString, aTitle) {
let prompts = Services.prompt;
prompts.alert(
window,
aTitle || "BackUp des Profils abgeschlossen",
aString
);
}
Mir würde ein Popup oder ähnliches besser gefallen und wenn ich das aussehen dann auch noch per CSS beeinflussen könnte,
das wäre Mega!
Kann mir da jemand helfen?
Auch mir fehlt irgendwie eine Meldung, dass die Sicherung erfolgreich beendet ist.
Suchst du nun ganz was spezielles, oder ist bei dir überhaupt keine Benachrichtigung zu sehen? Hier schon.![]()