» »

[c#]preverba inštaliranih programov

[c#]preverba inštaliranih programov

Draycot ::

Zanima me na kaki način lahk preveris katere programe imaš na računalniko inštalirane?

Način je po moje,da se po registru sprehodiš,sam na kak način se sprehodit,pa vun imena programov dobit?


Lp.Mitja
Ni ga čez hladen laški pir!

Microsoft ::

Ce tole shranis kot VBScript in pozenes, ti bo shranlo v fajl, katerga lahko potem odpres v Excelu, pa je vse lepo popredalckano:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile("C:\softvare.tsv", true)
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colSoftware = objWMIService.ExecQuery ("SELECT * FROM Win32_Product")
objTextFile.WriteLine "Description" & vbTab & _
"Vendor" & vbTab _
& "Version"
For each objSoftware in colSoftware
objTextFile.WriteLine objSoftware.Description & vbTab & _
objSoftware.Vendor & vbTab & _
objSoftware.Version
Next
objTextFile.Close


Pooleg tega se lahko preberes objSoftware.IdentifyingNumber, InstallLocaiton, InstallState, Name, PackageCache, SKUNumber.
Vse skupaj se da tudi zapakirati v C#. Vkljucit mores using System.Diagnostics, ce hoces uporabit StreamWriter pa se using System.IO potem naprej sem pa jst za preizkus spacal tole:
string vbs = @"WScript.Echo now";
string script = Path.GetTempFileName();
FileInfo fi = new FileInfo(script);
fi.Attributes = FileAttributes.Temporary;
StreamWriter sw = fi.CreateText();
sw.Write(vbs);
sw.Flush();
sw.Close();

ProcessStartInfo psi = new ProcessStartInfo(@"cscript.exe");
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
psi.Arguments = "//Nologo ";
psi.Arguments += "//E:vbscript " + script;
psi.CreateNoWindow = true;

Process listFiles;
listFiles = Process.Start(psi);
StreamReader myOutput = listFiles.StandardOutput;
StreamReader myError = listFiles.StandardError;
listFiles.WaitForExit(2000);

label1.Text = myOutput.ReadToEnd();
StreamReader st = fi.OpenText();

label2.Text = st.ReadToEnd();
st.Close();
sw = fi.CreateText();
sw.Write("");
sw.Flush();
sw.Close();

label3.Text = myError.ReadToEnd();

File.Delete(script);


To sem naredil tako, da string vbs shranim lokalno v fajl ko text, kasneje pa pozenem cscript in vsebino, ki je v tistem fajlu. Sem za mal pozabil, kaj sem tocno hotel. Sem delal pred tednom ali dvema, pa nevem vec...:P


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] shrani text, tabele, slike

Oddelek: Programiranje
251482 (1088) klemen93
»

C# Branje iz datoteke

Oddelek: Programiranje
5959 (768) boogie_xlr
»

c# tiho tiskanje slik.

Oddelek: Programiranje
101909 (1580) OmegaM
»

ASP.NET pisanje datoteke

Oddelek: Programiranje
91098 (976) King80
»

kaj zna c#

Oddelek: Programiranje
151740 (1552) snow

Več podobnih tem