Installierte Programme mit Filewrite ausgeben?

09/12/2010 10:18 Mr. Pancake-Trader#1
Hey Leute,
Ich würde gerne wissen wie ich mit Hilfe von AutoIt eine Liste erstellen kann wo mir alle installierten Programme zeigt, wie so ne Art Backup.
Das Programm soll mir die Liste in ein Textdokument schreiben via Filewrite.
Hat vllt. jemand ne Ahnung wie man sowas machen kann? Vllt. via Registry (Da dürfts doch auch Einträge über die installierten Programme haben?)
Hoffe mir hilft jemand^^

Greetz .Pancake

€: Danke für eure Hilfe.
@lolkop Ich glaub ich kann noch ne Menge in AutoIt lernen^^
Greetz
09/12/2010 10:52 staRRFreak#2
hast du schon mal selber versucht das das machen b.z.w. Google andere Foren durchsucht
wen man eine Idee hat sollte man erst versuchen es umzusetzen/probieren bevor man jemanden fragt wie man sowas macht

also ich weis es nicht wie man es macht. ich werde mich mal dransetzen und mal herum suchen

#Edit
mit der Registry wird schwieriger als ich dachte die installierten Programme werden unter verschiedene Registry schlüsseln eingetragen ich habe unter
HKEY_CLASSES_ROOT\Installer\Products
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURR ENTVERSION\UNINSTALL\

nachgeguckt und das sind nicht wirklich alle Programme aufgelistet die ich installiert habe da fehlt noch die hälfte

die post von "Mysthik Ftw" ist Gut benutze die
09/12/2010 10:57 iDunnoi#3
so hätt ichs gelöst
PHP Code:

#include <File.au3>

$Path = @ProgramFilesDir
$FilesFolders 
_FileListToArray($Path,"*")
For 
$i 1 to $FilesFolders[0step +1
    
If StringRight(StringTrimRight($FilesFolders[$i],3),1) == "." then $FilesFolders[$i] = StringTrimRight($FilesFolders[$i],4)
Next
$programs 
""
For $x 1 to $FilesFolders[0step +1
    $size 
Round(DirGetSize(@ProgramFilesDir&"/"&$FilesFolders[$x])/1024/1024,2)&"MB"
    
$programs $programs&@crlf&$FilesFolders[$x]&"    "&$size
Next
Msgbox
(0,"",$programs
oder eben anstatt "msgbox" - "filewrite" benutzen
09/12/2010 12:39 lolkop#4
und richtig wärs so:
Code:
$file = FileOpen("temp.txt", 2)
For $i= 1 to 999
	$var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL", $i)
	$var2 = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\"&$var, "DisplayName")
	ConsoleWrite($var2&@CRLF)
	If @error then ExitLoop
	If $var2<>"" Then FileWrite($file, $var2 & @CRLF)
Next
fileclose($file)