<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[forum.technik-hobby.de - Hilfe und Unterstützung]]></title>
		<link>https://forum.technik-hobby.de/</link>
		<description><![CDATA[forum.technik-hobby.de - https://forum.technik-hobby.de]]></description>
		<pubDate>Fri, 03 Apr 2026 21:56:31 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Suche nach Registryeinträgen einer bestimmten Software in HKLM]]></title>
			<link>https://forum.technik-hobby.de/thread-23.html</link>
			<pubDate>Wed, 26 Jul 2017 22:33:29 +0200</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.technik-hobby.de/member.php?action=profile&uid=3">Bazii</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.technik-hobby.de/thread-23.html</guid>
			<description><![CDATA[Hallo,<br />
<br />
ich habe ein keines Tool geschrieben, mit dem ich rekursiv alle Einträge einer bestimmten Software aus der Registry auslesen kann. Wie kann ich es nun schaffen, wie es der Export aus der Registry es kann, die gefundenen Einträge mit allen Schlüsseln wie es die Registry auch tut, zu exportieren? Der Export soll mit allen gefundenen Einträgen in eine einzige .txt und .reg Datei geschrieben werden. Allerdings eben so wie es die Registry exportiert und nicht wie in meinem Beispielcode zu sehen ist. <br />
<br />
Anbei mein Code. Es wäre klasse wenn  mir weitergeholfen werden könnte.<br />
<br />
<div class="spoiler">
		<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName('div')[1].style.display == 'block'){ parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'none'; this.innerHTML='Show Content'; } else { parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'block'; this.innerHTML='Hide Content'; }">Show Content</span>RegSearch:</div>
		<div class="spoiler_content" style="display: none;">
<br />
<br />
<br />
<pre class="line-numbers"><code class="language-autoit">; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
#NoTrayIcon<br />
#RequireAdmin<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
#include &lt;EditConstants.au3&gt;<br />
#include &lt;GUIConstantsEx.au3&gt;<br />
#include &lt;EditConstants.au3&gt;<br />
#include &lt;Misc.au3&gt;<br />
<br />
Opt('MustDeclareVars', 1) ; Variablen müssen deklariert werden.<br />
Opt('GUIOnEventMode', 1) ; Eventmode aktivieren.<br />
AutoItSetOption ("GUICloseOnESC", 1) ; Wenn ESC gedrückt wird, Gui beenden.<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
Global &#36;sInput1, &#36;sstart, &#36;nMsg, &#36;sString<br />
Global &#36;sTitle = 'RegSearch'<br />
Global &#36;sVersion = '1.0.0.0'<br />
Global &#36;sAuthor = 'Bazii'<br />
Global &#36;sDate = '26.07.2017'<br />
Global &#36;sFound = ''<br />
Global &#36;hDLL = DllOpen("user32.dll")<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
If _Singleton (&#36;sTitle, 1) = 0 Then    ; Wenn eine Instanz dieses Programms läuft, dann Meldung ausgeben ...<br />
    MsgBox(64, "Achtung", " -RegSearch- wurde bereits gestartet und kann nicht ein zweites Mal gestartet werden!", 10) ; Meldung ausgeben (Teil 1)<br />
    Exit ; Programm beenden<br />
EndIf; Ende der If-Abfrage: Läuft bereits eine weitere Instanz?<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
GUICreate(&#36;sTitle &amp; ' ' &amp; &#36;sVersion, 300, 90, -1, -1)<br />
GUISetIcon("..\..\ICON\logo_FTP.ico", -1)<br />
GUICtrlSetFont(-1, 9, 500, "Arial")<br />
GUISetBkColor(0xD7E4F2)<br />
GUISetOnEvent(&#36;GUI_EVENT_CLOSE, "__GUI_EVENT_CLOSE_")<br />
&#36;sInput1 = GUICtrlCreateInput("", 8, 8, 280, 21)<br />
GUICtrlSendMsg(-1, 0x1501, 0, "HKLM Suchwort-Eingabe")<br />
&#36;sstart = GUICtrlCreateButton("Start!", 8, 56, 280, 25)<br />
GUICtrlSetState(&#36;sstart, 768) ; Focus + Defbutton<br />
GUICtrlSetOnEvent(&#36;sstart, _RegSearch_Start)<br />
GUISetState(@SW_SHOW)<br />
<br />
While Sleep(100)<br />
    &#36;nMsg = GUIGetMsg()<br />
    Switch &#36;nMsg<br />
        Case &#36;GUI_EVENT_CLOSE<br />
        Exit<br />
    EndSwitch<br />
WEnd<br />
<br />
Func _RegSearch_Start()<br />
    Local &#36;sString = GUICtrlRead(&#36;sInput1)<br />
    Local &#36;sfile = @ScriptDir &amp; '\txt\' &amp; &#36;sString &amp; '.txt'<br />
    Local &#36;sfile2 = @ScriptDir &amp; '\reg\' &amp; &#36;sString &amp; '.reg'<br />
    If &#36;sString = '' Then<br />
        MsgBox(16,"Fehler","Bitte Suchwort eingeben")<br />
        GUICtrlSetData(&#36;sString, "HKLM Suchwort-Eingabe")<br />
        Return 0<br />
    EndIf<br />
    ToolTip('bitte warten...', @DesktopWidth / 1.8, @DesktopHeight / 2, 'Suche nach ' &amp; &#36;sString &amp; ' ...', 1, 5)<br />
    _RegSearch(&#36;sFound, 'HKEY_LOCAL_MACHINE', &#36;sString)<br />
    If _IsPressed("1B", &#36;hDLL) Then<br />
        MsgBox(64, "Achtung", "Abbruch durch Benutzer", 10)<br />
        DllClose(&#36;hDLL)<br />
        Exit<br />
    EndIf<br />
    FileOpen(&#36;sfile, 2)<br />
    FileWrite(&#36;sfile, &#36;sFound)<br />
    FileClose (&#36;sfile)<br />
    FileOpen(&#36;sfile2, 2)<br />
    FileWrite(&#36;sfile2, &#36;sFound)<br />
    FileClose (&#36;sfile2)<br />
;~     MsgBox(64, 'Hinweis', 'Registry erfolgreich ausgelesen', 10, &#36;sfile)<br />
    ShellExecute(&#36;sfile, @SW_MAXIMIZE)<br />
    Exit<br />
EndFunc ;==&gt;_RegSearch1<br />
<br />
Func _RegSearch(ByRef &#36;sFound, &#36;sRegPath, &#36;sSearch) ; Funktion von Oscar<br />
<br />
    Local &#36;sKey, &#36;sVal, &#36;sVar, &#36;i = 0, &#36;j = 0<br />
    While True<br />
        &#36;i += 1<br />
        &#36;sKey = RegEnumKey(&#36;sRegPath, &#36;i)<br />
        If @error Then ExitLoop<br />
        _RegSearch(&#36;sFound, &#36;sRegPath &amp; '\' &amp; &#36;sKey, &#36;sSearch)<br />
        &#36;j = 0<br />
        While True<br />
            &#36;j += 1<br />
            &#36;sVal = RegEnumVal(&#36;sRegPath &amp; '\' &amp; &#36;sKey, &#36;j)<br />
            If @error Then ExitLoop<br />
            &#36;sVar = RegRead(&#36;sRegPath &amp; '\' &amp; &#36;sKey, &#36;sVal)<br />
            If StringInStr(&#36;sVar, &#36;sSearch, 2) Then &#36;sFound &amp;= &#36;sRegPath &amp; '\' &amp; &#36;sKey &amp; '\' &amp; &#36;sVal &amp; @CRLF<br />
        WEnd<br />
    WEnd<br />
    Return<br />
EndFunc ;==&gt;_RegSearch<br />
<br />
Func __GUI_EVENT_CLOSE_()<br />
    Exit<br />
EndFunc ;==&gt;__GUI_EVENT_CLOSE_</code></pre>
<br />
<br />
<br />
</div>
	</div>
<br />
Ferner möchte ich jetzt mal der erste sein, der hier eine Frage stellt <img src="https://forum.technik-hobby.de/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> . Die Forensoftware und das Erscheinungsbild dieses Forums finde ich klasse.]]></description>
			<content:encoded><![CDATA[Hallo,<br />
<br />
ich habe ein keines Tool geschrieben, mit dem ich rekursiv alle Einträge einer bestimmten Software aus der Registry auslesen kann. Wie kann ich es nun schaffen, wie es der Export aus der Registry es kann, die gefundenen Einträge mit allen Schlüsseln wie es die Registry auch tut, zu exportieren? Der Export soll mit allen gefundenen Einträgen in eine einzige .txt und .reg Datei geschrieben werden. Allerdings eben so wie es die Registry exportiert und nicht wie in meinem Beispielcode zu sehen ist. <br />
<br />
Anbei mein Code. Es wäre klasse wenn  mir weitergeholfen werden könnte.<br />
<br />
<div class="spoiler">
		<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName('div')[1].style.display == 'block'){ parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'none'; this.innerHTML='Show Content'; } else { parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'block'; this.innerHTML='Hide Content'; }">Show Content</span>RegSearch:</div>
		<div class="spoiler_content" style="display: none;">
<br />
<br />
<br />
<pre class="line-numbers"><code class="language-autoit">; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
#NoTrayIcon<br />
#RequireAdmin<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
#include &lt;EditConstants.au3&gt;<br />
#include &lt;GUIConstantsEx.au3&gt;<br />
#include &lt;EditConstants.au3&gt;<br />
#include &lt;Misc.au3&gt;<br />
<br />
Opt('MustDeclareVars', 1) ; Variablen müssen deklariert werden.<br />
Opt('GUIOnEventMode', 1) ; Eventmode aktivieren.<br />
AutoItSetOption ("GUICloseOnESC", 1) ; Wenn ESC gedrückt wird, Gui beenden.<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
Global &#36;sInput1, &#36;sstart, &#36;nMsg, &#36;sString<br />
Global &#36;sTitle = 'RegSearch'<br />
Global &#36;sVersion = '1.0.0.0'<br />
Global &#36;sAuthor = 'Bazii'<br />
Global &#36;sDate = '26.07.2017'<br />
Global &#36;sFound = ''<br />
Global &#36;hDLL = DllOpen("user32.dll")<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
If _Singleton (&#36;sTitle, 1) = 0 Then    ; Wenn eine Instanz dieses Programms läuft, dann Meldung ausgeben ...<br />
    MsgBox(64, "Achtung", " -RegSearch- wurde bereits gestartet und kann nicht ein zweites Mal gestartet werden!", 10) ; Meldung ausgeben (Teil 1)<br />
    Exit ; Programm beenden<br />
EndIf; Ende der If-Abfrage: Läuft bereits eine weitere Instanz?<br />
<br />
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +<br />
<br />
GUICreate(&#36;sTitle &amp; ' ' &amp; &#36;sVersion, 300, 90, -1, -1)<br />
GUISetIcon("..\..\ICON\logo_FTP.ico", -1)<br />
GUICtrlSetFont(-1, 9, 500, "Arial")<br />
GUISetBkColor(0xD7E4F2)<br />
GUISetOnEvent(&#36;GUI_EVENT_CLOSE, "__GUI_EVENT_CLOSE_")<br />
&#36;sInput1 = GUICtrlCreateInput("", 8, 8, 280, 21)<br />
GUICtrlSendMsg(-1, 0x1501, 0, "HKLM Suchwort-Eingabe")<br />
&#36;sstart = GUICtrlCreateButton("Start!", 8, 56, 280, 25)<br />
GUICtrlSetState(&#36;sstart, 768) ; Focus + Defbutton<br />
GUICtrlSetOnEvent(&#36;sstart, _RegSearch_Start)<br />
GUISetState(@SW_SHOW)<br />
<br />
While Sleep(100)<br />
    &#36;nMsg = GUIGetMsg()<br />
    Switch &#36;nMsg<br />
        Case &#36;GUI_EVENT_CLOSE<br />
        Exit<br />
    EndSwitch<br />
WEnd<br />
<br />
Func _RegSearch_Start()<br />
    Local &#36;sString = GUICtrlRead(&#36;sInput1)<br />
    Local &#36;sfile = @ScriptDir &amp; '\txt\' &amp; &#36;sString &amp; '.txt'<br />
    Local &#36;sfile2 = @ScriptDir &amp; '\reg\' &amp; &#36;sString &amp; '.reg'<br />
    If &#36;sString = '' Then<br />
        MsgBox(16,"Fehler","Bitte Suchwort eingeben")<br />
        GUICtrlSetData(&#36;sString, "HKLM Suchwort-Eingabe")<br />
        Return 0<br />
    EndIf<br />
    ToolTip('bitte warten...', @DesktopWidth / 1.8, @DesktopHeight / 2, 'Suche nach ' &amp; &#36;sString &amp; ' ...', 1, 5)<br />
    _RegSearch(&#36;sFound, 'HKEY_LOCAL_MACHINE', &#36;sString)<br />
    If _IsPressed("1B", &#36;hDLL) Then<br />
        MsgBox(64, "Achtung", "Abbruch durch Benutzer", 10)<br />
        DllClose(&#36;hDLL)<br />
        Exit<br />
    EndIf<br />
    FileOpen(&#36;sfile, 2)<br />
    FileWrite(&#36;sfile, &#36;sFound)<br />
    FileClose (&#36;sfile)<br />
    FileOpen(&#36;sfile2, 2)<br />
    FileWrite(&#36;sfile2, &#36;sFound)<br />
    FileClose (&#36;sfile2)<br />
;~     MsgBox(64, 'Hinweis', 'Registry erfolgreich ausgelesen', 10, &#36;sfile)<br />
    ShellExecute(&#36;sfile, @SW_MAXIMIZE)<br />
    Exit<br />
EndFunc ;==&gt;_RegSearch1<br />
<br />
Func _RegSearch(ByRef &#36;sFound, &#36;sRegPath, &#36;sSearch) ; Funktion von Oscar<br />
<br />
    Local &#36;sKey, &#36;sVal, &#36;sVar, &#36;i = 0, &#36;j = 0<br />
    While True<br />
        &#36;i += 1<br />
        &#36;sKey = RegEnumKey(&#36;sRegPath, &#36;i)<br />
        If @error Then ExitLoop<br />
        _RegSearch(&#36;sFound, &#36;sRegPath &amp; '\' &amp; &#36;sKey, &#36;sSearch)<br />
        &#36;j = 0<br />
        While True<br />
            &#36;j += 1<br />
            &#36;sVal = RegEnumVal(&#36;sRegPath &amp; '\' &amp; &#36;sKey, &#36;j)<br />
            If @error Then ExitLoop<br />
            &#36;sVar = RegRead(&#36;sRegPath &amp; '\' &amp; &#36;sKey, &#36;sVal)<br />
            If StringInStr(&#36;sVar, &#36;sSearch, 2) Then &#36;sFound &amp;= &#36;sRegPath &amp; '\' &amp; &#36;sKey &amp; '\' &amp; &#36;sVal &amp; @CRLF<br />
        WEnd<br />
    WEnd<br />
    Return<br />
EndFunc ;==&gt;_RegSearch<br />
<br />
Func __GUI_EVENT_CLOSE_()<br />
    Exit<br />
EndFunc ;==&gt;__GUI_EVENT_CLOSE_</code></pre>
<br />
<br />
<br />
</div>
	</div>
<br />
Ferner möchte ich jetzt mal der erste sein, der hier eine Frage stellt <img src="https://forum.technik-hobby.de/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> . Die Forensoftware und das Erscheinungsbild dieses Forums finde ich klasse.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[AutoIt Syntax-Highlighting]]></title>
			<link>https://forum.technik-hobby.de/thread-7.html</link>
			<pubDate>Fri, 28 Apr 2017 13:53:41 +0200</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.technik-hobby.de/member.php?action=profile&uid=2">Gorathan</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.technik-hobby.de/thread-7.html</guid>
			<description><![CDATA[Um hier im Forum AutoIt-Scripte mit Syntax-Highlighting anzuzeigen, muss der "Einfügen"-Button angeklickt werden.<br />
Dort dann "Programmcode" auswählen und als Beschreibung "autoit" eingeben.<br />
<br />
Das Ganze sieht dann so aus:<br />
<pre class="line-numbers"><code class="language-autoit"><br />
#include &lt;GUIConstantsEx.au3&gt;<br />
<br />
Example()<br />
<br />
Func Example()<br />
    ; Create a GUI with various controls.<br />
    Local &#36;hGUI = GUICreate("Example")<br />
    Local &#36;idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)<br />
<br />
    ; Display the GUI.<br />
    GUISetState(@SW_SHOW, &#36;hGUI)<br />
<br />
    ; Loop until the user exits.<br />
    While 1<br />
        Switch GUIGetMsg()<br />
            Case &#36;GUI_EVENT_CLOSE, &#36;idOK<br />
                ExitLoop<br />
<br />
        EndSwitch<br />
    WEnd<br />
<br />
    ; Delete the previous GUI and all controls.<br />
    GUIDelete(&#36;hGUI)<br />
EndFunc   ;==&gt;Example<br />
</code></pre>
<br />
Bei längeren Quelltexten bitte zusätzlich noch den "Spoiler tag" benutzen. Der findet sich ebenfalls beim "Einfügen"-Button.<br />
Hier ist die Beschreibung optional. <span style="font-weight: bold;" class="mycode_b">In der Quelltext-Ansicht kann man die TAGs sehen!</span><br />
<br />
Das sieht dann so aus:<br />
<div class="spoiler">
		<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName('div')[1].style.display == 'block'){ parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'none'; this.innerHTML='Show Content'; } else { parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'block'; this.innerHTML='Hide Content'; }">Show Content</span>AutoIt-Programm:</div>
		<div class="spoiler_content" style="display: none;">
<br />
<pre class="line-numbers"><code class="language-autoit"><br />
#include &lt;GUIConstantsEx.au3&gt;<br />
<br />
Example()<br />
<br />
Func Example()<br />
    ; Create a GUI with various controls.<br />
    Local &#36;hGUI = GUICreate("Example")<br />
    Local &#36;idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)<br />
<br />
    ; Display the GUI.<br />
    GUISetState(@SW_SHOW, &#36;hGUI)<br />
<br />
    ; Loop until the user exits.<br />
    While 1<br />
        Switch GUIGetMsg()<br />
            Case &#36;GUI_EVENT_CLOSE, &#36;idOK<br />
                ExitLoop<br />
<br />
        EndSwitch<br />
    WEnd<br />
<br />
    ; Delete the previous GUI and all controls.<br />
    GUIDelete(&#36;hGUI)<br />
EndFunc   ;==&gt;Example<br />
</code></pre>
<br />
</div>
	</div>]]></description>
			<content:encoded><![CDATA[Um hier im Forum AutoIt-Scripte mit Syntax-Highlighting anzuzeigen, muss der "Einfügen"-Button angeklickt werden.<br />
Dort dann "Programmcode" auswählen und als Beschreibung "autoit" eingeben.<br />
<br />
Das Ganze sieht dann so aus:<br />
<pre class="line-numbers"><code class="language-autoit"><br />
#include &lt;GUIConstantsEx.au3&gt;<br />
<br />
Example()<br />
<br />
Func Example()<br />
    ; Create a GUI with various controls.<br />
    Local &#36;hGUI = GUICreate("Example")<br />
    Local &#36;idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)<br />
<br />
    ; Display the GUI.<br />
    GUISetState(@SW_SHOW, &#36;hGUI)<br />
<br />
    ; Loop until the user exits.<br />
    While 1<br />
        Switch GUIGetMsg()<br />
            Case &#36;GUI_EVENT_CLOSE, &#36;idOK<br />
                ExitLoop<br />
<br />
        EndSwitch<br />
    WEnd<br />
<br />
    ; Delete the previous GUI and all controls.<br />
    GUIDelete(&#36;hGUI)<br />
EndFunc   ;==&gt;Example<br />
</code></pre>
<br />
Bei längeren Quelltexten bitte zusätzlich noch den "Spoiler tag" benutzen. Der findet sich ebenfalls beim "Einfügen"-Button.<br />
Hier ist die Beschreibung optional. <span style="font-weight: bold;" class="mycode_b">In der Quelltext-Ansicht kann man die TAGs sehen!</span><br />
<br />
Das sieht dann so aus:<br />
<div class="spoiler">
		<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName('div')[1].style.display == 'block'){ parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'none'; this.innerHTML='Show Content'; } else { parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'block'; this.innerHTML='Hide Content'; }">Show Content</span>AutoIt-Programm:</div>
		<div class="spoiler_content" style="display: none;">
<br />
<pre class="line-numbers"><code class="language-autoit"><br />
#include &lt;GUIConstantsEx.au3&gt;<br />
<br />
Example()<br />
<br />
Func Example()<br />
    ; Create a GUI with various controls.<br />
    Local &#36;hGUI = GUICreate("Example")<br />
    Local &#36;idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)<br />
<br />
    ; Display the GUI.<br />
    GUISetState(@SW_SHOW, &#36;hGUI)<br />
<br />
    ; Loop until the user exits.<br />
    While 1<br />
        Switch GUIGetMsg()<br />
            Case &#36;GUI_EVENT_CLOSE, &#36;idOK<br />
                ExitLoop<br />
<br />
        EndSwitch<br />
    WEnd<br />
<br />
    ; Delete the previous GUI and all controls.<br />
    GUIDelete(&#36;hGUI)<br />
EndFunc   ;==&gt;Example<br />
</code></pre>
<br />
</div>
	</div>]]></content:encoded>
		</item>
	</channel>
</rss>