I do something like that all the time. I just wrote a small VBScript to return the ProductCode in an InputBox. It's easy enough to do.
I added the script to the context menu for .MSI files. Now I just right-click an .MSI and click "Get ProductCode..." Done.
It's very unlikely you're going to find any such tool as you describe. It seems specific to your situation only, so you're probably going to have to write your own tool to traverse your directory tree and gather the specifics you need.
Traversing the directory tree is trivial - I once made a general mechanism for that, and use it all the time (for listing files not accessed for x days, for listing dependencies of Python pakcages, for counting lines of code, for creating warnings about paths that are getting close to the old 260 char limit,...). To this directory travesal function, I supply one or more search roots, filters (such as Extension = "msi"), and a callback function that receives each file that passes the filter. An optional callback handles directory hits, or directories with file hits.
So that part of it is in place. My problem is how do I make that callback function with "a small VBScript to return the ProductCode"? Which mechanism did you use to obtain that value? Is that script available?
The only way I am aware of to read out the ProductCode (or any other .msi value) is to use the GUI application "Orca". At least as a GUI application, it is poorly suited for callback function. It seems to be callable from a script, but the help information gives no help on how to extract a given attribute from a given table. How did your VB script read out the values from the .msi file?
I am programming in C#, but I guess that I could adopt the same mechanism. If I cannot rewrite it to C#, I can run it as a separate process and analyze the console output (I do that all the time, for my other tree traversal functions).
Set msi = CreateObject("WindowsInstaller.Installer")
Set database = msi.OpenDatabase(WScript.Arguments(0), 1)
Set view1 = database.OpenView("SELECT `Value` FROM `Property` WHERE `Property` = 'ProductCode'")
Set record = view1.Fetch
If record IsNothingThen
MsgBox "Unable to find a ProductCode in the MSI database!"
productCode = record.StringData(1)
Set record = Nothing
Set view1 = NothingSet database = NothingSet msi = Nothing
InputBox "The ProductCode is:", WScript.Arguments(0), productCode
My WiFi drivers have not been functioning well lately. They stop working and don't display any error indication until I try to disconnect/connect, and the network I'm on is alone in the network taskbar thing. Sometimes the driver even vanishes without a trace, and I need to reinstall it/restart my laptop to get it working again.
-My laptop is a Lenovo X220
-I run Windows 7 (Professional, I believe)
-My WiFi drivers (I have tried multiple) are Intel
-I know that it's a software issue, as I changed the hard drive between laptops (the same model) and there was no difference.
Any help at all is much appreciated, and this problem is very annoying when I'm trying to play online with .
Hey there, I run a computer repair shop and I'm looking to make basic diagnostics easier for me. I have a list of tasks I do to a computer but I would like to automate with a program. I was wondering what language would best to code the following criteria:
Pull System info such as Version of Windows, processor information, GPU information, Ram, Hard drive and just those basic information. I would then like to export this information to my website or to a text file.
Task Two: Run certain programs I use to clean up the computers. I run them in a certain order so I'd like to be able to somehow run them in a certain order and then when each program finishes, to create a report of the results.
Do you think this would be possible in one program/language? Or would it be best to separate the task based on which programming language would be most efficient? I want to be able to just put it on a flash drive or run a program and just have it autorun while I do other things and then come back to it later.
Imagine a user-mode process is communicating with a driver using IOCTL (DeviceIoControl).
1.) I'd like to learn if there is a way to find if a process is communicating with a driver.
2.) In which cases would it be impossible to find it? For example there are multiple ways that a process can communicate with a driver: IOCTL, shared memory, netlink, system calls, netlink Sockets etc.
"As far as I can see, the future of native applications on Windows has very little to do with the Microsoft Store. However, I do not expect the store to disappear. But I expect that UWP will disappear, especially on the Windows desktop. And that the Microsoft Store remains irrelevant to most users and most developers."
This sums up my opinion of UWP pretty much since its introduction. Thoughts? Any fans of UWP over "legacy" WPF desktop app development?
The thing you have to remember about Thurrott is that he's aiming to make money from clicks so titles like this are massive clickbait. UWP will not disappear - for some reason, he completely failed to understand what all the announcements at Build were wrt UWP.
I have a Windows 7 program that works fine in Windows 7 (32 or 64), and has been working since Windows XP.
When it is installed on a Windows 10 64-bit system (or VM) the Windows 10 system is substantially corrupted. For example, the "start menu" won't open with left mouse click, but with right mouse click a simplified, text only menu appears, and most of the menu entries fail to do anything (visible).
The program, itself, seems to operate correctly!!!
Since the installer is quite old I suspected that was the culprit. I tried setting up a VM with Windows 7 64-bit and installed the program. Then I used the "standard" Microsoft upgrade to Windows 10. To my surprise, the symptoms were the same!
(I was sure to check the start menu immediately after the upgrade, before the program was run and could cause the errors itself.)
For ongoing legacy software support, my primary development system at work is still Windows 7 64-bit. There's now a lot of pressure to upgrade the system to Windows 10, but I don't want to do that if it'll end up corrupted. And I'd rather not have the system re-imaged to Windows 10 and need to reinstall all my applications.
I'm afraid that's where this will end up, but there may be some customers who try to upgrade (because their IT department says they must), so I think it's important to know what's going on, and why.
Does anyone have any thoughts on the root cause, how to diagnose this, the appropriate "Google foo" to use, etc?
"Fairy tales do not tell children the dragons exist. Children already know that dragons exist. Fairy tales tell children the dragons can be killed."
- G.K. Chesterton