Reputation: 85
I am trying to understand what happens when I run start chrome
in Powershell.
I built PowerShell from this commit (modify global to ur dotnet version), traced start chrome
till plain Process.Start
call (Start-Process
is documented about this behaviour, but still I double-checked). Then I've traced in runtime till kernel call, filename still not resolved.
Nor my PATH
, nor any of my ENVIRONMENTAL_VARIABLES
does not have anything about chrome. I run this article to find out, that there is HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome
registry entry, and yeap, it does contain the path to chrome, but how does the kernel understand, that exactly
chrome
Process.FileName is Google Chrome
application in the registry? I can omit extension in dotnet
because it's in the PATH
, but why does start chrome
even work?
I don't understand how do Windows locate google chrome. Please help, I am very curious.
Upvotes: 1
Views: 69
Reputation: 26
They are stored in the registry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
.
Check the article on Application Registration.
Upvotes: 1