<?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=JumpingProfiles%3AJPProfileRefresh</id>
	<title>JumpingProfiles:JPProfileRefresh - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=JumpingProfiles%3AJPProfileRefresh"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=JumpingProfiles:JPProfileRefresh&amp;action=history"/>
	<updated>2026-04-20T08:40:15Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=JumpingProfiles:JPProfileRefresh&amp;diff=9196&amp;oldid=prev</id>
		<title>BLinz: Textersetzung - „&lt;comments&gt;“ durch „&lt;comments /&gt;“</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=JumpingProfiles:JPProfileRefresh&amp;diff=9196&amp;oldid=prev"/>
		<updated>2017-08-06T18:50:46Z</updated>

		<summary type="html">&lt;p&gt;Textersetzung - „&amp;lt;comments&amp;gt;“ durch „&amp;lt;comments /&amp;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:JumpingProfiles]]&lt;br /&gt;
[[Kategorie:ZnilTools]]&lt;br /&gt;
Ein Kunde löscht bei Problemen von Mitarbeitern immer die &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Da wir über die &amp;lt;code&amp;gt;GroupLogin.dat&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;GroupInit.dat&amp;lt;/code&amp;gt; Vorseinstellungen für die Programme verteilen merken die Benutzer davon auch nicht viel, alles startet wie gewohnt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun gabe es aber leider 2 Benutzergruppen die häufiger Probleme hatten - und der Admin dort dementsprechend häufiger deren &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; gelöscht hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider konnte ich den Admin nicht davon überzeugen mal eine Ursachenforschung zu betreiben - früher kam es 10 mal im Monat vor, seit JP nur noch 1 mal, da war er schon glücklich.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Diese beiden Benutzergruppen nutzen leider Programme die unmengen an Einstellungen in der Registry machen - Ansichten, welche Spalten in Tabellen angezeigt werden sollen und so weiter.&amp;lt;br&amp;gt;&lt;br /&gt;
Da darin viel Arbeit steckt hat der Admin bisher immer die Registry-Schlüssel dieser Anwendung per Hand aus der &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; kopiert und im Anschluss wieder zurück in die neue &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; kopiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Er bat mich das ganze mal zu vereinfachen - und deshalb gibt es nun die &amp;lt;code&amp;gt;JP_ProfilRefresher.exe&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Beschreibung==&lt;br /&gt;
* Commandline Programm welchen man eine &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; übergibt&amp;lt;br&amp;gt;&lt;br /&gt;
* Die &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; wird geleert, es bleiben also nur noch der Header der Datei übrig&amp;lt;br&amp;gt;&lt;br /&gt;
* Das Programm liest alle Textdateien auf das Muster &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;JP_ProfilRefresher*.txt&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; passen ein (man beachte den &amp;#039;&amp;#039;&amp;#039;*&amp;#039;&amp;#039;&amp;#039; !)&amp;lt;br&amp;gt;&lt;br /&gt;
* Alle in diesen Textdateien aufgeführten Schlüssel werden wieder in die &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; zurück geschrieben&lt;br /&gt;
* Eine Kopie der Original &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; wird als &amp;lt;code&amp;gt;JPUser.dat.OLD&amp;lt;/code&amp;gt; im gleichen Verzeichnis abgelegt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Download==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Download:&amp;lt;/u&amp;gt; [[Media:JP_ProfileRefresher.zip|JP_ProfileRefresher.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;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Aufruf==&lt;br /&gt;
* Kopiert die &amp;lt;code&amp;gt;JP_ProfilRefresher.exe&amp;lt;/code&amp;gt; und die &amp;lt;code&amp;gt;JP_ProfilRefresher.txt&amp;lt;/code&amp;gt; an eine Ort euer wahl&lt;br /&gt;
* bearbeitet die &amp;lt;code&amp;gt;JP_ProfilRefresh.txt&amp;lt;/code&amp;gt; und fügt dort die Registry-Schlüssel ein die erhalten bleiben sollen, z.B.&lt;br /&gt;
 HKEY_CURRENT_USER\Software\VB and VBA Program Settings\INPLAST\&lt;br /&gt;
:Ein Schlüssel pro Zeile!&amp;lt;br&amp;gt;&lt;br /&gt;
:Es wird ein &amp;quot;Text in Text&amp;quot; Vergleich gemacht. Ihr könntet also auch nur&lt;br /&gt;
 \VB and VBA Program Settings\&lt;br /&gt;
:angeben - Nutzung auf eigene Gefahr!&lt;br /&gt;
:Es werden nur Schlüssel beachtet - keine Werte! Also nur die &amp;quot;Ordner&amp;quot;, nicht die &amp;quot;Dateien&amp;quot;!&lt;br /&gt;
* Öffnet eine Eingabeaufforderung&lt;br /&gt;
* Aufruf ist&lt;br /&gt;
 JP_ProfilRefresher.exe JPUser.dat&lt;br /&gt;
 JP_ProfilRefresher.exe \\server\freigabe\testbenutzer\JumpingProfile\JPUser.dat&lt;br /&gt;
 JP_ProfilRefresher.exe D:\Profile\testbenutzer\JumpingProfile\JPUser.dat&lt;br /&gt;
* Alternativ könnt Ihr auch eine &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; per Drag&amp;amp;Drop auf die &amp;lt;code&amp;gt;JP_ProfilRefresher.exe&amp;lt;/code&amp;gt; ziehen.&amp;lt;r&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Bequemer Einsatz in der Praxis==&lt;br /&gt;
In der Praxis betraf es nur einige wenige Benutzer welche diese Sonderbehandlung brauchten ... wie mache es jetzt für den Admin möglichst einfach?&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Erstellt eine Freigabe / Ordner in welcher Ihr folgende Dateien ableget&lt;br /&gt;
** Die &amp;lt;code&amp;gt;JP_ProfilRefresher.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
** Eine &amp;lt;code&amp;gt;JP_ProfilRefresher-Anwendungsname.txt&amp;lt;/code&amp;gt; für jede Anwendung die eine solche Sonderbehandlung haben soll&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Beispiel:&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 \\server\freigabe\JP$\JP_ProfileRefresh\&lt;br /&gt;
    |- JP_ProfileRefresher.exe&lt;br /&gt;
    |- JP_ProfileRefresher-INPLAST.txt&lt;br /&gt;
    +- JP_ProfileRefresher-XAP.txt&lt;br /&gt;
Die beiden &amp;lt;code&amp;gt;JP_ProfileRefresher-*.txt&amp;lt;/code&amp;gt;&amp;gt; enthalten die jeweiligen Registry-Schlüssel die erhalten bleiben sollen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In JumpingProfiles haben nun 2 JP-Gruppen:&amp;lt;br&amp;gt;&lt;br /&gt;
 JP_INPLAST&lt;br /&gt;
 JP_XAP&lt;br /&gt;
beide Gruppen bekommen nun eine &amp;lt;code&amp;gt;FileOperation.dat&amp;lt;/code&amp;gt; mit folgendem Inhalt (Pfade und Dateiname anpassen!):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
============================================================&lt;br /&gt;
; File:    FileOperation.dat&lt;br /&gt;
;============================================================&lt;br /&gt;
;&lt;br /&gt;
; Comment:  File system operation&lt;br /&gt;
;&lt;br /&gt;
; Format:   [&amp;lt;Profile version&amp;gt;:&amp;lt;Environment&amp;gt;]&lt;br /&gt;
;           #&amp;lt;Element&amp;gt;&lt;br /&gt;
;           Operation   = COPY | CREATE | DELETE&lt;br /&gt;
;           Event       = FIRST | LOGIN | LOGOUT | LAST&lt;br /&gt;
;           EventScope  = GLOBAL | MACHINE | ENVIRONMENT | VERSION&lt;br /&gt;
;           Replace     = NEVER | ALWAYS | LATEST | DATE&lt;br /&gt;
;           Date        = &amp;lt;Date&amp;gt; (YYYY-MM-DD {HH:MM:SS})&lt;br /&gt;
;           Recursion   = ON | OFF&lt;br /&gt;
;           Source      = &amp;lt;Source&amp;gt;&lt;br /&gt;
;           Destination = &amp;lt;Destination&amp;gt;&lt;br /&gt;
;           Filter      = &amp;lt;Filter&amp;gt;&lt;br /&gt;
;&lt;br /&gt;
;============================================================&lt;br /&gt;
&lt;br /&gt;
[Header]&lt;br /&gt;
JP version = 4.6.0.0&lt;br /&gt;
JPManagerCore version = 4.6.0.0&lt;br /&gt;
JPManager module version = 4.6.0.0&lt;br /&gt;
&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
&lt;br /&gt;
#Copy JP_ProfileRefresh.exe for Inplast&lt;br /&gt;
Operation = COPY&lt;br /&gt;
Event = LOGIN&lt;br /&gt;
Replace = LATEST&lt;br /&gt;
Source = \\server\JP$\JP_ProfileRefresh\JP_ProfileRefresher.exe&lt;br /&gt;
Destination = \\server\Profiles$\%USERNAME%\JumpingProfile\&lt;br /&gt;
&lt;br /&gt;
#Copy JP_ProfileRefresh.txt for Inplast&lt;br /&gt;
Operation = COPY&lt;br /&gt;
Event = LOGIN&lt;br /&gt;
Replace = LATEST&lt;br /&gt;
Source = \\server\JP$\JP_ProfileRefresh\JP_ProfileRefresher-INPLAST.txt&lt;br /&gt;
Destination = \\server\Profiles$\%USERNAME%\JumpingProfile\&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die &amp;lt;code&amp;gt;FileOperation.dat&amp;lt;/code&amp;gt; könnt Ihr natürlich auch einfach im JP-Manager erstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:JPProfileRefresher-001.png]] - [[Datei:JPProfileRefresher-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;
Was wird nun passieren?&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn sich Benutzer dieser beiden Gruppen anmelden wird diesen die &amp;lt;code&amp;gt;JP_ProfileRefresher.exe&amp;lt;/code&amp;gt; sowie die notwendigen Textdateien mit den Schlüsseln in ihr persönliches &amp;#039;&amp;#039;&amp;#039;JumpingProfile&amp;#039;&amp;#039;&amp;#039; Verzeichnis kopiert - also dorthin wo auch schon die &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach eine Anmeldung sieht es in dem Verzeichnis also z.B. so aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:JPProfileRefresher-003.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn der Admin nun die &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; löschen will, sieht er die vorhandene &amp;lt;code&amp;gt;JP_ProfileRefresher.exe&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann zieht er die Datei &amp;lt;code&amp;gt;JPUser.dat&amp;lt;/code&amp;gt; einfach per &amp;#039;&amp;#039;&amp;#039;Drag&amp;amp;Drop&amp;#039;&amp;#039;&amp;#039; auf die &amp;lt;code&amp;gt;JP_ProfileRefresher.exe&amp;lt;/code&amp;gt; -&amp;gt; Fertig!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Ergebnis:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:JPProfileRefresher-004.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das ganze kann man auch hier einbauen: [[JumpingProfiles:JPProfileReset|JPProfileReset - Benutzer kann selbst sein Profil zurück setzen]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Skript was wir dort verwenden hat den eventuellen Aufruf der &amp;lt;code&amp;gt;JP_ProfileRefresher.exe&amp;lt;/code&amp;gt; bereits eingbaut.&amp;lt;br&amp;gt; &lt;br /&gt;
Da eine Sicherheitskopie mit der Endung &amp;#039;&amp;#039;&amp;#039;.OLD&amp;#039;&amp;#039;&amp;#039; angelegt wird kann JPProfileReset sogar den Ursprungszustand wieder herstellen.&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;
==Quellcode JP_ProfileRefresher==&lt;br /&gt;
Wieder einmal in AutoIt geschrieben:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;AutoIt&amp;quot;&amp;gt;&lt;br /&gt;
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
#AutoIt3Wrapper_Icon=Icon256-32.ico&lt;br /&gt;
#AutoIt3Wrapper_UseUpx=n&lt;br /&gt;
#AutoIt3Wrapper_Change2CUI=y&lt;br /&gt;
#AutoIt3Wrapper_Res_Description=Oktober 2014 Bernhard Linz&lt;br /&gt;
#AutoIt3Wrapper_Res_Fileversion=1.0.2.25&lt;br /&gt;
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y&lt;br /&gt;
#AutoIt3Wrapper_Res_Language=1031&lt;br /&gt;
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
#Include &amp;lt;string.au3&amp;gt;&lt;br /&gt;
Opt(&amp;#039;MustDeclareVars&amp;#039;, 1)&lt;br /&gt;
&lt;br /&gt;
Dim $sFilename					 	; Dateiname inklusive Pfad zur JPUser.dat&lt;br /&gt;
Dim $aJPProfileRefresherLines[1] 	; Hier stehen die Zeilen aus den JP_ProfileRefresher*.txt drin&lt;br /&gt;
Dim $hJPProfileRefresherTXT			; Zeiger auf die JP_ProfileRefresher*.txt&lt;br /&gt;
Dim $hJPProfileRefresherTXTSearch	; Suchzeiger auf alle JP_ProfileRefresher*.txt Dateien im aktuellen Verzeichnis&lt;br /&gt;
Dim $sJPProfileRefresherFile        ; Konkrete Dateinamen der gefundenen JP_ProfileRefresher*.txt Dateien&lt;br /&gt;
Dim $sTempLine						; die eingelesenen Zeilen werden hier temporär gespeichert&lt;br /&gt;
Dim $bReadTheLines = False  		; Boolean - wird zum Leerzeilen überspringen genutzt&lt;br /&gt;
Dim $hSourceFile					; Zeiger auf die JPUser.dat&lt;br /&gt;
Dim $hTargetFile					; Zeiger auf die neue Version der JPUser.dat&lt;br /&gt;
Dim $bWriteToTarget					; Boolean - wenn False werden die eingelesenden Zeilen nicht geschrieben&lt;br /&gt;
Dim $iTimerstart					; Startzeit der Filterung&lt;br /&gt;
Dim $iTimerend						; Endzeit der Filterung&lt;br /&gt;
Dim $iLineCounter = 0				; Zeilenzählen - als Status geben wir alle 100 Zeilen einen Punkt aus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;                             10        20        30        40        50        60        70        80&lt;br /&gt;
;                 	 12345678901234567890123456789012345678901234567890123456789012345678901234567890&lt;br /&gt;
Dim $sHelp = 		&amp;#039;+------------------------------------------------------------------------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;| JP_ProfileRefresher.exe - Version &amp;#039; &amp;amp; FileGetVersion(@ScriptName) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;+------------------------------------------------------------------------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;| 2014 von Bernhard Linz für http://znil.net - Kontakt: Bernhard@znil.net&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;+------------------------------------------------------------------------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Vorgeschichte:&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;--------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Dient dazu eine JPUser.dat in einen &amp;quot;Fast wie gelöscht&amp;quot; Zustand zu bringen&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Hntergund ist das die 99% Universallösung bei Problemen das Löschen oder&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Umbenennen der JPUser.dat ist - wenn der Benutzer sich etwas verkonfiguriert&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;hat oder ähnliches (Die Admins löschen eigentlich viel zu schnell, aber macht&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;die Sache schön einfach).&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Schlecht ist wenn eine Anwendung mehrere hundert bis tausend Schlüssel für die&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;vom Benutzer gemachten Einstellungen speichert wie Sortierfolge, Spaltenbreiten&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;oder auch Ansichten etc. - diese muss er dann nämlich alle wieder neu machen&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;sofern die Einstellungen nicht einfach per GroupInit.dat vorgegeben werden&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;können (was die bessere Lösung wäre aber beim Kunden nicht in Frage kam&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;-------------------------------------------------------------------------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Funktionsweise:&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;---------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Statt die ganze JPUser.dat einfach zu löschen, filtern wir nur alle Schlüssel&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;aus - bis auf diejenigen die erhalten bleiben sollen - Ähnlich der Funktion der&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;FadeOut.dat, nur umgekehrt - wir geben an welche Schlüssel noch übrig bleiben&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;statt der Schlüssel die gelöscht werden sollen. Quelle ist eine&amp;#039;&amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;  JP_ProfileRefresher.txt&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;im gleichen Verzeichnis wie dieses Script. In dieser Textdatei steht pro Zeile&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;ein Registry-Schlüssel der erhalten werden soll. (Schlüssel, nicht Werte =&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;&amp;quot;Verzeichnisse, nicht Dateien!&amp;quot;)&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Alternativ sind auch mehrere Quellen möglich, deren Name muss aber jeweils mit&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;&amp;quot;JP_ProfileRefresher&amp;quot; beginnen und mit &amp;quot;.txt&amp;quot; enden, z.B.&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;JP_ProfileRefresher-XAP.txt und JP_ProfileRefresher-INPLAST.txt -&amp;gt; beide Dateien&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;werden eingelesen und berücktsichtigt! Die Anzahl ist nicht begrenzt.&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;-------------------------------------------------------------------------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Aufruf:&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;-------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@ScriptName &amp;amp; &amp;#039; [Pfad][Dateinname]&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Beispiel:&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@ScriptName &amp;amp; &amp;#039; D:\Profiles\Benutzer\JumpingProfile\JPUser.dat&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Beispiel für eine Batchverarbeitung: (Forfiles ist in jedem Windows enthalten)&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;Forfiles /P &amp;quot;D:\PF&amp;quot; /S /M JPUser.dat /C &amp;quot;cmd /c D:\JP_ProfileRefresher.exe @path&amp;quot;&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039; &amp;quot;D:\PF&amp;quot; steht für den Pfad zu den Benutzerprofilen, Forfiles kann nicht mit&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;         UNC Pfaden umgehen (ggf. als Netzlaufwerk mounten)&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039; Das Beispiel verarbeitet alle JPUser.dat in allen Verzeichnissen&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039; unterhalb von &amp;quot;D:\PF&amp;quot;&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					@CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;+------------------------------------------------------------------------------&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;| JP_ProfileRefresher.exe ist FREEWARE! Kopieren, weitergeben ausdrücklich erlaubt!&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;| Die jeweils aktuelleste Version und Anleitungen findet Ihr unter:&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;| http://znil.net/index.php?title=ZnilTools:JP_ProfileRefresher.exe&amp;#039; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
					&amp;#039;+------------------------------------------------------------------------------&amp;#039; &amp;amp; @CRLF&lt;br /&gt;
&lt;br /&gt;
; Prüfen  ob ein Parameter angegeben wurde - sonst beenden&lt;br /&gt;
If $CmdLine[0] = 0 Then&lt;br /&gt;
	ConsoleWrite(_ANSI2OEM(&amp;quot;FEHLER - Keine Datei angegeben, /? für Hilfe&amp;quot; &amp;amp; @CRLF))&lt;br /&gt;
	Exit 0&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
;Prüfen ob wir die Hilfe ausgeben sollen&lt;br /&gt;
If $CmdLine[1] = &amp;quot;/?&amp;quot; Then&lt;br /&gt;
	ConsoleWrite(_ANSI2OEM($sHelp))&lt;br /&gt;
	Exit 0&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
; Holen wir uns den Dateinamen - oder was auch immer da steht&lt;br /&gt;
$sFilename = $CmdLine[1]&lt;br /&gt;
ConsoleWrite(&amp;quot;STATUS - Verarbeite Datei &amp;quot; &amp;amp; $sFilename)&lt;br /&gt;
ConsoleWrite(@CRLF &amp;amp; &amp;quot;=&amp;gt; JP_ProfileRefresher =&amp;gt; 2014 znil.net &amp;lt;=&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
; Holen wir uns die Schlüssel die ausgefiltert werden sollen&lt;br /&gt;
ConsoleWrite(&amp;quot;STATUS - Lese JP_ProfileRefresher.txt Dateien ein .....&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;$hJPProfileRefresherTXTSearch = FileFindFirstFile(@ScriptDir &amp;amp; &amp;quot;\JP_ProfileRefresher*.txt&amp;quot;)&lt;br /&gt;
;while 1&lt;br /&gt;
;	$hJPProfileRefresherTXT = FileFindNextFile($hJPProfileRefresherTXTSearch)&lt;br /&gt;
;	If @error Then ExitLoop&lt;br /&gt;
;	MsgBox(0,&amp;quot;&amp;quot;,$hJPProfileRefresherTXT)&lt;br /&gt;
;WEnd&lt;br /&gt;
;Exit&lt;br /&gt;
&lt;br /&gt;
$aJPProfileRefresherLines[0] = 0&lt;br /&gt;
$hJPProfileRefresherTXTSearch = FileFindFirstFile(@ScriptDir &amp;amp; &amp;quot;\JP_ProfileRefresher*.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	$sJPProfileRefresherFile = FileFindNextFile($hJPProfileRefresherTXTSearch)&lt;br /&gt;
	If @error Then ExitLoop&lt;br /&gt;
	ConsoleWrite(_ANSI2OEM(&amp;quot;Lese Datei ein: &amp;quot; &amp;amp; $sJPProfileRefresherFile) &amp;amp; @CRLF)&lt;br /&gt;
	$hJPProfileRefresherTXT = FileOpen(@ScriptDir &amp;amp; &amp;quot;\&amp;quot; &amp;amp; $sJPProfileRefresherFile,0)&lt;br /&gt;
	If $hJPProfileRefresherTXT = -1 Then&lt;br /&gt;
		ConsoleWrite(_ANSI2OEM(&amp;quot;FEHLER - Konnte &amp;quot; &amp;amp; $sJPProfileRefresherFile &amp;amp; &amp;quot; nicht öffnen&amp;quot;) &amp;amp; @CRLF)&lt;br /&gt;
		Exit 1&lt;br /&gt;
	EndIf&lt;br /&gt;
	While 1&lt;br /&gt;
		$sTempLine = FileReadLine($hJPProfileRefresherTXT)&lt;br /&gt;
		If @error &amp;lt;&amp;gt; -1 Then&lt;br /&gt;
			If $sTempLine &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$aJPProfileRefresherLines[0] = $aJPProfileRefresherLines[0] + 1&lt;br /&gt;
				_ArrayAdd($aJPProfileRefresherLines,$sTempLine)&lt;br /&gt;
			EndIf&lt;br /&gt;
		Else&lt;br /&gt;
			ExitLoop&lt;br /&gt;
		EndIf&lt;br /&gt;
	WEnd&lt;br /&gt;
	FileClose($hJPProfileRefresherTXT)&lt;br /&gt;
	ConsoleWrite(_ANSI2OEM(&amp;quot;fertig (Es snd nun &amp;quot; &amp;amp; $aJPProfileRefresherLines[0] &amp;amp; &amp;quot; Einträge insgesamt)&amp;quot; &amp;amp; @CRLF))&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
; Filtern!&lt;br /&gt;
ConsoleWrite(&amp;quot;STATUS - Filtere Datei &amp;quot;)&lt;br /&gt;
$iTimerstart = TimerInit()&lt;br /&gt;
$hSourceFile = FileOpen($sFilename,0)&lt;br /&gt;
If $hSourceFile = -1 Then&lt;br /&gt;
	ConsoleWrite(_ANSI2OEM(@CRLF &amp;amp; &amp;quot;FEHLER - Konnte &amp;quot; &amp;amp; $sFilename &amp;amp; &amp;quot;nicht öffnen&amp;quot; &amp;amp; @CRLF))&lt;br /&gt;
	Exit 1&lt;br /&gt;
EndIf&lt;br /&gt;
$hTargetFile = FileOpen($sFilename &amp;amp; &amp;quot;.temp.txt&amp;quot;,2)&lt;br /&gt;
&lt;br /&gt;
$bWriteToTarget = True&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	$sTempLine  = FileReadLine($hSourceFile)&lt;br /&gt;
	If @error &amp;lt;&amp;gt; -1 Then               ;123456789012345678&lt;br /&gt;
		If StringLeft($sTempLine,18) = &amp;quot;HKEY_CURRENT_USER\&amp;quot; Then&lt;br /&gt;
			$bWriteToTarget = False&lt;br /&gt;
		EndIf&lt;br /&gt;
&lt;br /&gt;
		If $bWriteToTarget = False Then&lt;br /&gt;
			For $i = 1 To $aJPProfileRefresherLines[0]&lt;br /&gt;
				If StringInStr($sTempLine,$aJPProfileRefresherLines[$i]) &amp;gt; 0 Then&lt;br /&gt;
					$bWriteToTarget = True&lt;br /&gt;
				EndIf&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
&lt;br /&gt;
		If $bWriteToTarget = True Then&lt;br /&gt;
			FileWriteLine($hTargetFile,$sTempLine)&lt;br /&gt;
		EndIf&lt;br /&gt;
		$iLineCounter = $iLineCounter + 1&lt;br /&gt;
		If $iLineCounter &amp;gt; 99 Then&lt;br /&gt;
			ConsoleWrite(&amp;quot;.&amp;quot;)&lt;br /&gt;
			$iLineCounter = 0&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		ExitLoop&lt;br /&gt;
	EndIf&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
FileClose($hSourceFile)&lt;br /&gt;
FileClose($hTargetFile)&lt;br /&gt;
&lt;br /&gt;
$iTimerend = TimerDiff($iTimerstart) / 1000&lt;br /&gt;
&lt;br /&gt;
ConsoleWrite(&amp;quot; fertig, Laufzeit &amp;quot; &amp;amp; StringRegExpReplace($iTimerend,&amp;quot;(\d*)\.(\d{2})(\d*)&amp;quot;,&amp;quot;$1,$2&amp;quot;) &amp;amp; &amp;quot; sec&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
ConsoleWrite(_ANSI2OEM(&amp;quot;Lösche eventuell vorhandene JPUser.dat.OLD&amp;quot;) &amp;amp; @CRLF)&lt;br /&gt;
FileDelete($sFilename &amp;amp; &amp;quot;.OLD&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ConsoleWrite(&amp;quot;Tausche JPUser.dat aus ....&amp;quot;)&lt;br /&gt;
FileMove($sFilename, $sFilename &amp;amp; &amp;quot;.OLD&amp;quot;,1)&lt;br /&gt;
FileMove($sFilename &amp;amp; &amp;quot;.temp.txt&amp;quot;,$sFilename,1)&lt;br /&gt;
ConsoleWrite(&amp;quot;fertig&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF)&lt;br /&gt;
Exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; ###################################################################################&lt;br /&gt;
; _ANSI2OEM löst das Problem mit dem Umlauten und anderen Sonderzeichen. Es wandelt Text so um das er korrekt in der DOS-Box dargestellt wird&lt;br /&gt;
; So können hier im Quellcode auch Umlaute verwendet werden (in den Textausgaben) und diese werden dann korrekt dargestellt&lt;br /&gt;
; Dank an Xenobiologist von AutoIt.de für diese Lösung: http://www.autoit.de/index.php?page=Thread&amp;amp;threadID=9461&amp;amp;highlight=ANSI2OEM&lt;br /&gt;
Func _ANSI2OEM($text)&lt;br /&gt;
	$text = DllCall(&amp;#039;user32.dll&amp;#039;, &amp;#039;Int&amp;#039;, &amp;#039;CharToOem&amp;#039;, &amp;#039;str&amp;#039;, $text, &amp;#039;str&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	Return $text[2]&lt;br /&gt;
EndFunc   ;==&amp;gt;_ANSI2OEM&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;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>