GWin32AppInfo: Support rundll32-using applications

1) When parsing the executable name out of the command line,
see if the executable is rundll32.exe. If that is the case,
use the DLL name from its first argument as the "executable"
(this is used only for matching, and Windows Registry matches
these programs by their DLLs, so this is correct; for running
the application GLib would still use the command line, with
rundll32).

2) If an app runs with rundll32, ensure that rundll32 arguments
can be safely quoted. Otherwise GLib will break them with its
protective quotation.
This commit is contained in:
Руслан Ижбулатов
2019-11-29 16:48:32 +00:00
committed by Philip Withnall
parent 93784fb4c2
commit 9f070db4c5
4 changed files with 1105 additions and 241 deletions

View File

@@ -79,6 +79,7 @@ gio_tests = {
'tls-interaction' : {'extra_sources' : ['gtesttlsbackend.c']},
'tls-database' : {'extra_sources' : ['gtesttlsbackend.c']},
'gdbus-address-get-session' : {},
'win32-appinfo' : {},
}
test_extra_programs = {