|
From: Frans Bouma on 2 Nov 2006 03:25 rony wrote: > Hi, > I am using the following code : > WindowsInstaller.Installer i = null; > Type oType = Type.GetTypeFromProgID("WindowsInstaller.Installer"); > if (oType != null) > { > i = > (WindowsInstaller.Installer)Activator.CreateInstance(oType); > } > WindowsInstaller.StringList s = i.Products; > foreach (string s1 in s) > { > WindowsInstaller.StringList sc = i.get_ComponentClients(s1); > foreach (string c in sc) > { > Console.WriteLine(i.get_ProductInfo(c, "ProductName")); > } > } > > This code prints all the installed programs on my computer. > The problem is that hi skips some programs and i can't see them. > I check the add\remore program and i do see them there. > > i tried to search for them by components, i couldn't find them. Don't see the relevance for this newsgroup, but here's an answer: Not every program installed is installed through the Microsoft Installer service, which is used by msi installers. For example, innosetup uses its own installer engine and doesn't use windows installer and therefore won't end up in the list of windows installer programs. FB -- ------------------------------------------------------------------------ Lead developer of LLBLGen Pro, the productive O/R mapper for .NET LLBLGen Pro website: http://www.llblgen.com My .NET blog: http://weblogs.asp.net/fbouma Microsoft MVP (C#) ------------------------------------------------------------------------
From: rony on 2 Nov 2006 03:58 But i can see those programs in the add\remove tool. Frans Bouma wrote: > rony wrote: > > > Hi, > > I am using the following code : > > WindowsInstaller.Installer i = null; > > Type oType = Type.GetTypeFromProgID("WindowsInstaller.Installer"); > > if (oType != null) > > { > > i = > > (WindowsInstaller.Installer)Activator.CreateInstance(oType); > > } > > WindowsInstaller.StringList s = i.Products; > > foreach (string s1 in s) > > { > > WindowsInstaller.StringList sc = i.get_ComponentClients(s1); > > foreach (string c in sc) > > { > > Console.WriteLine(i.get_ProductInfo(c, "ProductName")); > > } > > } > > > > This code prints all the installed programs on my computer. > > The problem is that hi skips some programs and i can't see them. > > I check the add\remore program and i do see them there. > > > > i tried to search for them by components, i couldn't find them. > > Don't see the relevance for this newsgroup, but here's an answer: > Not every program installed is installed through the Microsoft > Installer service, which is used by msi installers. For example, > innosetup uses its own installer engine and doesn't use windows > installer and therefore won't end up in the list of windows installer > programs. > > FB > > -- > ------------------------------------------------------------------------ > Lead developer of LLBLGen Pro, the productive O/R mapper for .NET > LLBLGen Pro website: http://www.llblgen.com > My .NET blog: http://weblogs.asp.net/fbouma > Microsoft MVP (C#) > ------------------------------------------------------------------------
From: Nick Malik [Microsoft] on 2 Nov 2006 08:40 The add/remove tool simply uses the registry to keep the list of applications. The installer service writes to the registry, but so does every other installer. That's the common denominator. -- --- Nick Malik [Microsoft] MCSD, CFPS, Certified Scrummaster http://blogs.msdn.com/nickmalik Disclaimer: Opinions expressed in this forum are my own, and not representative of my employer. I do not answer questions on behalf of my employer. I'm just a programmer helping programmers. -- "rony" <rony.vainblat(a)gmail.com> wrote in message news:1162457927.919319.90890(a)h48g2000cwc.googlegroups.com... > But i can see those programs in the add\remove tool. > > > Frans Bouma wrote: >> rony wrote: >> >> > Hi, >> > I am using the following code : >> > WindowsInstaller.Installer i = null; >> > Type oType = Type.GetTypeFromProgID("WindowsInstaller.Installer"); >> > if (oType != null) >> > { >> > i = >> > (WindowsInstaller.Installer)Activator.CreateInstance(oType); >> > } >> > WindowsInstaller.StringList s = i.Products; >> > foreach (string s1 in s) >> > { >> > WindowsInstaller.StringList sc = i.get_ComponentClients(s1); >> > foreach (string c in sc) >> > { >> > Console.WriteLine(i.get_ProductInfo(c, "ProductName")); >> > } >> > } >> > >> > This code prints all the installed programs on my computer. >> > The problem is that hi skips some programs and i can't see them. >> > I check the add\remore program and i do see them there. >> > >> > i tried to search for them by components, i couldn't find them. >> >> Don't see the relevance for this newsgroup, but here's an answer: >> Not every program installed is installed through the Microsoft >> Installer service, which is used by msi installers. For example, >> innosetup uses its own installer engine and doesn't use windows >> installer and therefore won't end up in the list of windows installer >> programs. >> >> FB >> >> -- >> ------------------------------------------------------------------------ >> Lead developer of LLBLGen Pro, the productive O/R mapper for .NET >> LLBLGen Pro website: http://www.llblgen.com >> My .NET blog: http://weblogs.asp.net/fbouma >> Microsoft MVP (C#) >> ------------------------------------------------------------------------ >
|
Pages: 1 Prev: Relational database & OO Next: When not to use interfaces? |