Hey Leute,
ich suche eine Möglichkeit alle installierten Programme auf dem Computer zu finden.
Ich habe schon eine Klasse geschrieben, die durch die Registy Datei durchgeht.
Leider werden dort nur sehr wenige Programme gefunden die wirklich "existieren".
Ich brauche nicht nur den Programmnamen sonder auch den Pfad zur exe.
WMI kommt auch nicht infrage, da diese abfrage sehr lange daut und ein genauso unbefriedigendes Ergebnis liefert.
Code entfernt (Abt)
Einfach seitenweise den Code rein zu werfen nach dem Motto "Wo ist der Fehler?" ist nicht 😃
[Hinweis] Wie poste ich richtig? Punkt 4*
In Zukunft dann bitte auch einen Titel wählen, der das Problem beschreibt statt die Methodik.
1.Keiner will sich durch deinen ganzen Code arbeiten.
2.Hast du schon einmal nach einer Lösung gegooglet?
In der Registry sind zwar alle installierten Programme aber wie sieht es bei dir dann mit Programmen aus, die nicht installiert werden müssen.
Suchst du nach einem speziellen Programm oder brauchst du alle Programme auf dem Rechner?
Es wäre hilfreicher zu wissen was du mit der Suche am Ende erreichen willst.
Ggf. ist dann ein besserer Ansatz möglich als alles auf der Kiste zu suchen.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Ich arbeite für ein Antivieren Hersteller was ich jetzt hier nicht weiter beschreiben möchte.
Ich brauche einfache alle normal installierte Programme (keine stand alone tools).
ich gehe die registry dabei durch mit 3 verschiedenen schlüsseln. (Google, wird hier viele Lösungen zeigen, alles ziemlich sinnlos, da keine richten exe Dateien gefunden werden)
Außerdem den Startmenü Ordner unter Windows.
Wenn Du für einen Antivirenhersteller arbeitest (wäre zwar neu, dass diese C# dafür verwenden; aber was es nicht alles gibt..) dann wissen die doch eigentlich, wie man alle Programme ausliest.... 🤔
Bei Google findet man binnen Sekunden das Resultat inklusive Exe.
Get installed applications in a system
Und ja, das sind alle Programme, die Windows durch einen Installer mitgeteilt wurden.
Wurden die Applikationen über andere Wege (zB Chocolatey) installiert, werden diese hier nicht aufgeführt.
Alternativ kann man auch statt in Uninstall
in App Paths
suchen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
@2Sic
Wenn dies für eine Antiviren Software sein soll, warum werden dann Standalone Programme ignoriert?
Auch diese können Viren oder Schadhaft sein.
Also stellt sich mir nun immer noch die Zweckfrage.
Den nötigen Lösungsansatz hatte ich auch per Google in 2 Sek. gefunden.
Warum dir diese Lösung aber nicht passt, kann ich nicht nachvollziehen.
Das Thema mit der Auflistung der Programme ist auch nicht neu und deshalb gibt es im Netz genug Lösungen, weshalb eine Anfrage hier eher überflüssig ist.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Es sollen keine Programme auf Vieren geprüft werden, sondern es sollen Programme zur Auswahl stehen, die in einem "gesicherten" Desktop (Sand Box) gestartet werden sollen. Standoalone Tools kann man bei uns als Extraverweis (DialogBox file open) hinzufügen.
Es soll lediglich zur einfacheren Bedienung einigen Programm automatisch gefunden werden, die man starten kann.
Ich hoffe jetzt ist alles genau genug erklärt. Bei fragen einfach fragen 😉
Alles klar, dass macht die Situation schon klarer.
Die Lösung dazu hast du von Abt bekommen.
Über die Registry solltest du alles bekommen, was du benötigst.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Nein bekomme ich leider nicht. Es werden nichtmal annähernd alle Programme gefunden. Bzw ja es wird sehr viel gefunden, aber da steht nur der NAME des Programms aber nicht der PFAD. Sonst würde ich hier nicht total verzweifelt in so nen Forum nachfragen. Ich weiß nicht wie ich nahezu alle Programme finde mit Name+Pfad.
Gerne nochmal..
Es gibt bei Windows nicht den einen Ort, an dem sich die Applikationen registrieren.
Es ist nicht mal pflicht, dass man angibt, wo sich die Applikation hin installiert.
Es sind eben die üblichen verdächtigen:
Software\Microsoft\Windows\CurrentVersion\Uninstall Software\Microsoft\Windows\CurrentVersion\App Paths Software\Microsoft\Installer\Assemblies
Das hättest Du aber alles selbst raus finden können. 🙂
Du bist nicht der Erste mit diesem Problem und wirst auch sicher nicht der Letzte sein.
Das ist ne typische Alltagssituation, zu der man dutzende Lösungen findet - die einen funktionieren genauer, die anderen langsamer und manche gar nicht. 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
@Abt
okay, die drei Schlüssel habe ich schon +1 neuen für Win10.
Außerdem suche ich im Start Menü.
Habt ihr sonst noch irgendwelche Vorschläge. irgendwelche Orte an denen ich noch Suche kann? Außer ein Deepsearch in ganz C:/
Edit: @Abt ja, wir verwenden für die Oberfläche c# 6.0/wpf. Und der rest ist c/c++ für die core.
Ein Antivirenprogramm durchsucht typischerweise die gesamte Festplatte bzw. alle lokalen Festplatten nach allen ausführbaren Dateien. Dauert etwas, ist aber das sicherste.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
StartMenu durchsuchen?
Da gibt es das allgemeine und für jeden User ein eigenes, welche, wenn du auch durchsuchen muss, aber du ev. keine Rechte hast.