Ich ging von den ISO´s aus, welche das MCT zur Verfügung stellt und die werden recht unregelmäßig aktualisiert....
Ach so. Missverständnis, sorry.
Ich ging von den ISO´s aus, welche das MCT zur Verfügung stellt und die werden recht unregelmäßig aktualisiert....
Ach so. Missverständnis, sorry.
Was mich mal wieder bestürzt, ist "nach kurzer, schwerer Krankheit", 92 ist ein tolles Alter, aber so abtreten ist wie Arschtritt.
Kann alles bedeuten! Ich tröste mich dann immer mit der Vorstellung, hat nicht leiden müssen
und es ging schnell.
Wenn ich an meinen Papa denke, lag Monate lang im Bett, hatte Schmerzen und der Krebs fraß ihn langsam auf.
Das schlimme, er bekam das, bis auf wenige Tage vor seinem ableben alles mit.
Er bettelte um Erlösung, aber "einschläfern" darf oder durfte man ja in DE nicht.
Dann doch bitte mit Arschtritt, kurz und schmerzlos.
Die Jungs nehmen die originalen ISO´s und integrieren in ihrer Freizeit sämtliche Updates; machen also das, was MS so nie hinbekommt. Ich nutze dieser ISO´s von DM sehr gerne und da Hashes bereitgestellt werden, kann man sicher sein, das diese fehlerfrei übertragen wurden. So soll das sein....
Das stimmt so nicht ganz! Ja, die machen das, aber es ging und geht hier nur um die MVS (MSDN) Versionen,
die moinmoin zur Verfügung stell. Die MSDN-ISOs hinken zwar immer ca. 2 Wochen den Updates hinterher,
sind aber original und nicht von irgendwem zusammen geschustert!
Das könntest Du auch selber, und Du wüsstest, was Du da hast. ![]()
Danke 2002Andreas fürs Abtrennen.
.DeJaVu Ich habe jetzt mehrere Male Deine Kritiken durchgelesen, verstehe es aber immer noch nicht!
Eventuell stehe ich diesbezüglich ja auf dem Schlauch!
Auf den Bereich der Downloads von den ISOs, auf DM, welche ja originale MSN-ISOs sein sollen,
ist doch direkt über den Links der Downloads, ein Link zu Hashes aller vier ISOs.
Auch hast Du ja ebenfalls ein Bookmark, um Hashes zu kontrollieren!
Im Übrigen gibt es auf Redit sowie auf "My Digital Life" ebenfalls Listen mit Hashes.
Deine Kritik, dass DM solche Hashes nicht zur Verfügung stellt, damit Du vor dem Download weißt,
was Du da herunterlädst, kann ich nicht nachvollziehen!
Die könnten, wenn sie die ISOs manipulieren, ihre eigenen Hashes dort posten,
und wenn Du Dich dann nur darauf verlässt, hättest Du eben keine MSN-ISOs.
Runterladen, Hash mit z.B. Nirsoft HashMyFiles erstellen, im I-Net recherchieren und vergleichen!
Wenn die Werte nicht stimmen, noch mal downloaden oder andere Quelle suchen.
Prozedere wiederholen!
Das ist jetzt aber nur rein theoretisch! Ist mir noch nie so ergangen, dass die Hashes nicht gepasst hätten.
Wer mit dem Download mit dem MCT glücklich ist, darf es doch sein.
Ist halt die bequemste Art, an eine ISO zu kommen, mit all deren Nachteilen und Bedenken.
Und ich sehe schon, wie es grummelt!
Nimm zwei Rechner, führe MCT aus. Erstelle von beiden offensichtlich gleichen ISOs Hashes und vergleiche,
und staune. Sollten diese nicht identisch sein?
Deshalb sichere ich mir diese ISOs von DM, oder anderen "Orten", denn da bin ich mir sicher, da hat MS nicht drann
rumgefummelt. Aber DAS, das ist dann wieder ein ganz anderes Thema.
Nachtrag!
massgrave hatte ich mit voller Absicht nicht verlinkt!
Wegen der Skripts! Wie Du ja bemängeltest, illegal. ![]()
Aber ja, das ist auch meine Quelle.
.DeJaVu Noch etwas für Deine Bookmarks.
So wie ich es verstanden habe, funktioniert das Skript jetzt ja bei ihm. Nur die Meldung nach Fertigstellung wird nicht angezeigt.
nierewa , Mira_Belle Was steht bei euch in dem Benachrichtigungs-Fenster an der markierten Stelle?
Ah, endlich ein, nein, der Profi! Da steht "Alles aus". Dann ist ja alles klar.
Und danke für die Erklärungen und Korrekturen.
Sehr interessant!
Dein Nutzerprofil liegt also auf dem LW "Z:\", richtig?
Und Deine Installation anscheinend auf LW "E:\", auch richtig?
Und wo bitte hast Du Dein BS, also Windows installiert?
Aber gut, wenn nun eine Sicherung angelegt wird, sollte es gut sein.
Nimm aber bitte wider das Skript aus #2. Meines war nur zur Fehleranalyse gedacht!
.DeJaVu Die ISOs zu verteilen ist eine Sache, die Installationen illegal zu aktivieren eine andere.
Ach, die von mir verlinkten ISOs sind nicht selbst erstellt! Das sind die offiziellen MVS (MSDN) Versionen.
Und auch wenn es direkt auf DM keine Hashes gibt, es sollte doch jede imstande sein,
welche zu erstellen und per Suchmaschine welche zum Vergleich zu finden.
Natürlich nicht nur die, die man direkt auf der ersten Seite findet, sondern viele Hashes
zum Vergleich heranziehen.
Ach und den Link zu DM hatte ich nur gesetzt, weil auf anderen Seiten gleich auch ein Skript
und die dazugehörende Erklärung zur Aktivierung angeboten wird.
Aber auch hier, wer imstande ist, die genaue Bezeichnung in z.B. Google einzugeben,
findet massig Seiten, die eben genau jene ISO anbietet.
Früher bot MS solche aktualisierten ISOs unentgeltlich an, nun können sie den Hals nicht voll genug bekommen
und "verstecken diese ISOs hinter einer "Bezahlschranke".
So mein Eindruck und meine persönliche Meinung. Aber selbst verständlich kann ich mich auch irren
und diese Maßnahmen dienen nur der Sicherheit.
Zu dem "heißen Stuhl", das ist ja wohl deren Problem!
Zu: "Muss jeder wohl wissen, bei was er sich dort bedient und reinfällt."
Geschwubbel und wieder so eine nicht belegbare Unterstellung!
Auf den Rest Deines Kommentars gehe ich jetzt nicht näher ein, denn nicht belegt,
und dann auch verschiedene Dinge, wie ich oben schon monierte, in einen Topf werfen.
Nun ist aber Gut, Du hast Deine Meinung, und darfst diese auch haben.
Aber Deine Übergriffigkeit, mir etwas vorschreiben zu wollen, geht mir dann doch einfach zu weit.
Ich schätze Deine Hilfsbereitschaft, Dein Wissen, wenn Du es denn erklärst, manchmal machst Du das ja auch,
aber wenn Du ruppig wirst, das mag ich dann gar nicht.
Nutze bitte mal dieses Skript und mache danach einen Screenshot Deiner Konsole.
(function () {
ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
CustomizableUI.createWidget({
id : "Backup-button",
defaultArea : CustomizableUI.AREA_NAVBAR,
label : "Profilsicherung",
tooltiptext : "Sichern der aktuellen Konfiguration",
onClick: function(){
// Speicherort
var path = "D:\\Firefox Profil";
// 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';
let backup = path => {
console.log("Backup-Pfad: ", path);
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() + '.' + (d.getMonth() + 1).toString().padStart(2, '0') + '.' + d.getFullYear().toString().padStart(2, '0') + ' ' + d.getHours().toString().padStart(2, '0') + '\uA789' + d.getMinutes().toString().padStart(2, '0') + '\uA789' + d.getSeconds().toString().padStart(2, '0');
// Die folgende Zeile formt den Archivnamen
var archiveName = 'Profil ' + ' ' + d + '.zip'; /* 'd' ersetzt 'localnow' */
var xpi = fu.File(path + '\\' + archiveName);
console.log("Archivname: ", archiveName);
console.log("xpi path: ", xpi.path);
zw.open(xpi, pr.PR_RDWR | pr.PR_CREATE_FILE | pr.PR_TRUNCATE);
// --- FUCHSFAN --->
let profPath = dir.leafName + "/";
zw.addEntryDirectory(profPath, Date.now() * 1000, false);
// <--- FUCHSFAN ---
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,'/');
// --- FUCHSFAN --->
saveInZipAs = profPath+saveInZipAs;
// <--- FUCHSFAN ---
// Konfigurationsdateien können gesperrt werden
try {
zw.addEntryFile(saveInZipAs, Ci.nsIZipWriter.COMPRESSION_FASTEST, entry, false);
} catch (e) {
console.log("Fehler beim Hinzufügen der Datei: ", entry.path, 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);
}
function bupgetCurrentProfileName(){
function readFile(aFile){
var stream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); stream.init(aFile, 0x01, 0, 0);
var cvstream = Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream);
cvstream.init(stream, "UTF-8", 1024, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
var content = "", data = {};
while (cvstream.readString(4096, data)) {
content += data.value;
}
cvstream.close();
return content.replace(/\r\n?/g, "\n");
}
var PrefD = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("PrefD", Components.interfaces.nsIFile);
var ini = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("AppRegD", Components.interfaces.nsIFile);
ini.append("profiles.ini");
var ini = readFile(ini);
var profiles = ini.match(/Name=.+/g);
var profilesD = ini.match(/Path=.+/g);
for ( var i = 0; i < profiles.length;i++) {
if ((profilesD[i]+"$").indexOf(PrefD.leafName+"$") >= 0) {
profiles[i].match(/Name=(.+)$/);
return RegExp.$1;
}
}
return null;
}
};
if (!path) {
let nsIFilePicker = Ci.nsIFilePicker;
let fp = Cc["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
fp.init(window, 'Sicherungspfad wählen', nsIFilePicker.modeGetFolder);
fp.open( async aResult => {
let promise = new Promise(function(resolve) {
if(aResult == nsIFilePicker.returnOK) {
path = fp.file.path;
resolve(path);
}
else {
console.log("PATH-ERROR: " + path);
return;
}
})
await promise;
backup(path);
});
}
else {
backup(path);
}
},
});
var cssStr = '@-moz-document url("chrome://browser/content/browser.xhtml"){'
+ '#Backup-button .toolbarbutton-icon {'
+ 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1%2B%2FAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNC8xMS8wOGGVBZQAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABxklEQVQ4ja2UMUgbURjHfxeSFBzuBEuCkkAgIA5JDdzWohVnQe3UpRDE2UXpKKXdWro4ixlcdNJAydxiyHZkCIKIOEnLpZQSRFFz%2Bjqk73nvuDtb2j883nv%2F73u%2F%2B%2B69ewf%2FWUZgbgEFYDgiPw18B86An8DtQw%2BYdF1XRLVGoyGEEKJara4Bj0MKIhGYDxuGQVSTqtVqH0ql0uzvNzLigCQSicjmeZ7K63Q6u5VKZRoYigXGVWhZlpbbbrfrwKjfS4ZVGKVCoUCz2aTX65FOp6WdA04igf69CsqyLMrlctAWsRXGAf9EavXyFELEZT4A2TwYsLQKF%2BYXAJhb3VPep4%2BLzK3uqd7vS9Xr%2B2qsAW9u4eyoxcZSFoCVLZfTwxaA6v2xjaUsuYmnWrU60IOr%2FmD8etvl%2Fausikl%2FZcsFULEbD02hwPUdl7cvs1qiBAb9eOCdwdjEM2AABdh88wJA%2BbK%2FX6MDtVPmHyRPOfjRPfc87%2FPfgJLJ5AzwRc0BbNseB8a63e6TuKsXpnw%2BP5nJZAzgq%2BM4x3IPzwFM07woFovv%2Bv3%2BUDTiXqlU6tI0zQs%2FI%2FSe2bYt%2FyCPgJFA%2BAdwDeA4zrfg2l%2BwUqCoC1F3YQAAAABJRU5ErkJggg%3D%3D)'
+ '}}';
var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
sss.loadAndRegisterSheet(ios.newURI("data:text/css;base64," + btoa(cssStr), null, null), sss.USER_SHEET);
})();
Alles anzeigen
Die Konsole findest Du unter Extras/Weitere Werkzeuge/Browser-Werzeuge
In Zeile 81 wird eine Ausgabe angewiesen, funktioniert das bei irgendwem?
Und zu :
Existiert denn der in Zeile 20 angegebene Pfad?
Der wurde bei mir angelegt, also der Ordner! Das LW gab es ja schon.
Bei mir funktioniert das Skript und legt den Ordner "Firefox Profil" im Laufwerk "D:\" an.
Von Hashes habt Ihr aber schon mal gehört, oder?
Aber gut, lassen wir das. Das Problem wurde scheinbar gelöst.
Mal ins Blaue geschossen, Du hast irgendein Tool auf Dein Windows losgelassen
und hast natürlich absolut keine Ahnung, was da geändert wurde.
In einem "deutschen" Windows gibt es keinen "Startup"-Ordner!
Es gibt zwei Möglichkeiten! Du hast ein Backup, neueren Datums, dann solltest Du das zurückspielen.
Oder Du lädst Dir von Deskmodder die "aktuelle" MSDN-ISO herunter und machst ein InplaceUpdate,
in der Hoffnung, dass das Dein kaputtes System wieder i.O. bringt.
Ansonsten hilft dann wohl nur noch eine Neuinstallation.
Edit von 2002Andreas
Beiträge von hier abgetrennt:
oder auch
Gibt Firefox meinen Standort an Websites frei? | Mozilla-Hilfe
Mira_Belle Herzlichen Dank! 🙂👍
Gerne doch, war wieder einmal ein Projekt, das reizvoll und auch lehrreich war.
Die überarbeitete Version dürft ja in etwa so sein, wie Du Dir das vorgestellt hast.
Noch eine Modifizierte Version!
Die Bibliothek sollte gar nicht mehr zusehen sein und schließt sich auch wieder selbstständig!
Falls die Bibliothek "hängt" muss der Wert in Zeile 66 erhöht werden.
// SaveBookmarks.us.js
// Author @Mira Bellenbaum
// https://www.camp-firefox.de/forum/thema/137971/?postID=1250587#post1250587
(function() {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'bookmark-menu-button',
defaultArea: CustomizableUI.AREA_NAVBAR,
label: 'Lesezeichen speichern',
tooltiptext: 'Lesezeichen speichern',
onCommand: onCommand,
});
} catch(e) {
return;
}
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
let ButtonIcon = "default-browser-red.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(`
#bookmark-menu-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
#bookmark-menu-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
width: 28px !important;
height: 28px !important;
fill: #83ee1a !important;
fill-opacity: 1 !important;
}
`), null, null);
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
function onCommand(event) {
let document = event.target.ownerDocument;
// Öffne das Lesezeichen-Menü
let bookmarkButton = document.getElementById('bookmarksShowAll');
if (bookmarkButton) {
bookmarkButton.click();
// Warte eine kurze Zeit, um sicherzustellen, dass das Bibliotheksfenster geladen ist
setTimeout(function() {
let libraryWindow = Services.wm.getMostRecentWindow("Places:Organizer");
if (libraryWindow) {
// Fenster minimieren oder im Hintergrund öffnen
libraryWindow.minimize();
let maintenanceButton = libraryWindow.document.getElementById('backupBookmarks');
if (maintenanceButton) {
maintenanceButton.click();
// Warte eine kurze Zeit, um die Aktion abzuschließen, und schließe dann das Fenster
setTimeout(function() {
libraryWindow.close();
}, 5); // Zeit in Millisekunden anpassen, falls erforderlich
} else {
console.error('Wartungsschaltfläche nicht gefunden');
}
} else {
console.error('Bibliotheksfenster nicht gefunden');
}
}, 20); // Zeit in Millisekunden anpassen, falls erforderlich
} else {
console.error('Lesezeichen-Schaltfläche nicht gefunden');
}
}
})();
Alles anzeigen
Ist doch viel schöner so. ![]()
Meine Güte habe lange daran herumgebastelt!
Hier nun ein Skript, dass zwar erst die Bibliothek öffnet, aber direkt danach die Schaltfläche "Sichern ..." anspricht,
sodass dann der Ordner für die Sicherung ausgewählt werden kann.
// SaveBookmarks.us.js
// Author @Mira Bellenbaum
// https://www.camp-firefox.de/forum/thema/137971/?postID=1250587#post1250587
(function() {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
try {
CustomizableUI.createWidget({
id: 'bookmark-menu-button',
defaultArea: CustomizableUI.AREA_NAVBAR,
label: 'Lesezeichen speichern',
tooltiptext: 'Lesezeichen speichern',
onCommand: onCommand,
});
} catch(e) {
return;
}
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
let ButtonIcon = "default-browser-red.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(`
#bookmark-menu-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
#bookmark-menu-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
width: 28px !important;
height: 28px !important;
fill: #83ee1a !important;
fill-opacity: 1 !important;
}
`), null, null);
sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
function onCommand(event) {
let document = event.target.ownerDocument;
// Öffne das Lesezeichen-Menü
let bookmarkButton = document.getElementById('bookmarksShowAll');
if (bookmarkButton) {
bookmarkButton.click();
// Warte eine kurze Zeit, um sicherzustellen, dass das Bibliotheksfenster geladen ist
setTimeout(function() {
let libraryWindow = Services.wm.getMostRecentWindow("Places:Organizer");
if (libraryWindow) {
let maintenanceButton = libraryWindow.document.getElementById('backupBookmarks');
if (maintenanceButton) {
maintenanceButton.click();
} else {
console.error('Wartungsschaltfläche nicht gefunden');
}
} else {
console.error('Bibliotheksfenster nicht gefunden');
}
}, 500); // Zeit in Millisekunden anpassen, falls erforderlich
} else {
console.error('Lesezeichen-Schaltfläche nicht gefunden');
}
}
})();
Alles anzeigen
OH, NACHTRAG!
Das Skript sollte dann, was das Icon angeht, auch angepasst werden!
1. Das Icon (Symbol) sollte im Ordner "icons" unter "chrome" sein.
2. Wenn es ein ungefärbte "SVG" ist, wird sie im CSS-Teil z.Z. in ein helles Grün gefärbt. Kann und darf man ändern.
Wenn die "Grafik" farbig ist, hat dieser Code in dem CSS-Teil keine Auswirkung und kann gelöscht werden.
Wer vorrübergehend einfach aber das definierte Symbol verwenden möchte: default-browser-red.svg
Nein, da dieser spezielle Code ja ausdrücklich für alle Seiten gelten soll...
Ah, Danke. ![]()
Du hast ihn aber 2x in der userChrome.css stehen.
Ach so.
Mira_Belle war so nett und teilte mir in Beitrag #30 mit, dass sie die Chrome für mich aufgeräumt hat. Jetzt ist der doppelte Eintrag nicht mehr da.
Grüße Andy
Ja und Du musst Dir eine "userContent.css" anlegen, falls Du die noch nicht hast, und
/* Scrollbar farbig about und Webseiten */
:root {
/* Farbe 1: Thumb - Farbe 2: Hintergund*/
scrollbar-color: #CC6699 #666699 !important;
}
dort eintragen!
2002Andreas Muss in die "userContent.css" nicht auch so etwas wie @-moz-document url("XXXX") vor den Code?