Skip to content

Commit a1073b4

Browse files
committed
Use QueryFullProcessImageName() to get process exe name.
This removed dependency on psapi.dll which is missing on some system, see git-for-windows/git#4052
1 parent ea2f3b6 commit a1073b4

File tree

4 files changed

+25
-24
lines changed

4 files changed

+25
-24
lines changed

build/VS2017/metapath.vcxproj

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@
454454
<MultiProcessorCompilation>true</MultiProcessorCompilation>
455455
</ClCompile>
456456
<Link>
457-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
457+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
458458
<GenerateDebugInformation>true</GenerateDebugInformation>
459459
<SubSystem>Windows</SubSystem>
460460
<MinimumRequiredVersion>6.00</MinimumRequiredVersion>
@@ -478,7 +478,7 @@
478478
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
479479
</ClCompile>
480480
<Link>
481-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
481+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
482482
<GenerateDebugInformation>true</GenerateDebugInformation>
483483
<SubSystem>Windows</SubSystem>
484484
<MinimumRequiredVersion>6.01</MinimumRequiredVersion>
@@ -501,7 +501,7 @@
501501
<MultiProcessorCompilation>true</MultiProcessorCompilation>
502502
</ClCompile>
503503
<Link>
504-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
504+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
505505
<GenerateDebugInformation>true</GenerateDebugInformation>
506506
<SubSystem>Windows</SubSystem>
507507
<MinimumRequiredVersion>10.00</MinimumRequiredVersion>
@@ -524,7 +524,7 @@
524524
<MultiProcessorCompilation>true</MultiProcessorCompilation>
525525
</ClCompile>
526526
<Link>
527-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
527+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
528528
<GenerateDebugInformation>true</GenerateDebugInformation>
529529
<SubSystem>Windows</SubSystem>
530530
<MinimumRequiredVersion>6.02</MinimumRequiredVersion>
@@ -546,7 +546,7 @@
546546
<DiagnosticsFormat>Caret</DiagnosticsFormat>
547547
</ClCompile>
548548
<Link>
549-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
549+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
550550
<GenerateDebugInformation>true</GenerateDebugInformation>
551551
<SubSystem>Windows</SubSystem>
552552
<MinimumRequiredVersion>6.00</MinimumRequiredVersion>
@@ -568,7 +568,7 @@
568568
<DiagnosticsFormat>Caret</DiagnosticsFormat>
569569
</ClCompile>
570570
<Link>
571-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
571+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
572572
<GenerateDebugInformation>true</GenerateDebugInformation>
573573
<SubSystem>Windows</SubSystem>
574574
<MinimumRequiredVersion>6.01</MinimumRequiredVersion>
@@ -590,7 +590,7 @@
590590
<DiagnosticsFormat>Caret</DiagnosticsFormat>
591591
</ClCompile>
592592
<Link>
593-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
593+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
594594
<GenerateDebugInformation>true</GenerateDebugInformation>
595595
<SubSystem>Windows</SubSystem>
596596
<MinimumRequiredVersion>10.00</MinimumRequiredVersion>
@@ -613,7 +613,7 @@
613613
<DebugInformationFormat>None</DebugInformationFormat>
614614
</ClCompile>
615615
<Link>
616-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
616+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
617617
<GenerateDebugInformation>true</GenerateDebugInformation>
618618
<SubSystem>Windows</SubSystem>
619619
<MinimumRequiredVersion>6.02</MinimumRequiredVersion>
@@ -716,7 +716,7 @@
716716
<CallingConvention>VectorCall</CallingConvention>
717717
</ClCompile>
718718
<Link>
719-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
719+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
720720
<SubSystem>Windows</SubSystem>
721721
<SetChecksum>true</SetChecksum>
722722
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -754,7 +754,7 @@
754754
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
755755
</ClCompile>
756756
<Link>
757-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
757+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
758758
<SubSystem>Windows</SubSystem>
759759
<SetChecksum>true</SetChecksum>
760760
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -790,7 +790,7 @@
790790
<MultiProcessorCompilation>true</MultiProcessorCompilation>
791791
</ClCompile>
792792
<Link>
793-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
793+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
794794
<SubSystem>Windows</SubSystem>
795795
<SetChecksum>true</SetChecksum>
796796
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -826,7 +826,7 @@
826826
<MultiProcessorCompilation>true</MultiProcessorCompilation>
827827
</ClCompile>
828828
<Link>
829-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
829+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
830830
<SubSystem>Windows</SubSystem>
831831
<SetChecksum>true</SetChecksum>
832832
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -859,7 +859,7 @@
859859
<DiagnosticsFormat>Caret</DiagnosticsFormat>
860860
</ClCompile>
861861
<Link>
862-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
862+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
863863
<SubSystem>Windows</SubSystem>
864864
<SetChecksum>true</SetChecksum>
865865
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -892,7 +892,7 @@
892892
<DiagnosticsFormat>Caret</DiagnosticsFormat>
893893
</ClCompile>
894894
<Link>
895-
<AdditionalDependencies>comctl32.lib;shlwapi.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
895+
<AdditionalDependencies>comctl32.lib;shlwapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
896896
<SubSystem>Windows</SubSystem>
897897
<SetChecksum>true</SetChecksum>
898898
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -925,7 +925,7 @@
925925
<DiagnosticsFormat>Caret</DiagnosticsFormat>
926926
</ClCompile>
927927
<Link>
928-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
928+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
929929
<SubSystem>Windows</SubSystem>
930930
<SetChecksum>true</SetChecksum>
931931
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -959,7 +959,7 @@
959959
<DebugInformationFormat>None</DebugInformationFormat>
960960
</ClCompile>
961961
<Link>
962-
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;psapi.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
962+
<AdditionalDependencies>gdi32.lib;comctl32.lib;comdlg32.lib;advapi32.lib;shell32.lib;shlwapi.lib;ole32.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
963963
<SubSystem>Windows</SubSystem>
964964
<SetChecksum>true</SetChecksum>
965965
<GenerateDebugInformation>true</GenerateDebugInformation>

build/mingw/metapath.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ PROJ = metapath
44
NAME = $(PROJ).exe
55
OBJDIR = $(BINFOLDER)/obj/$(PROJ)
66
SRCDIR = ../../$(PROJ)/src
7-
7+
# for Win32 XP build
88
LDLIBS += -lpsapi
99

1010
c_src = $(wildcard $(SRCDIR)/*.c)

metapath/src/Helpers.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -417,15 +417,16 @@ bool IsElevated(void) {
417417
//
418418
// ExeNameFromWnd()
419419
//
420-
bool ExeNameFromWnd(HWND hwnd, LPWSTR szExeName, int cchExeName) {
420+
bool ExeNameFromWnd(HWND hwnd, LPWSTR szExeName, DWORD cchExeName) {
421421
DWORD dwProcessId;
422422
GetWindowThreadProcessId(hwnd, &dwProcessId);
423+
#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
424+
HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, dwProcessId);
425+
QueryFullProcessImageName(hProcess, 0, szExeName, &cchExeName);
426+
#else
423427
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcessId);
424-
425-
HMODULE hModule;
426-
DWORD cbNeeded = 0;
427-
EnumProcessModules(hProcess, &hModule, sizeof(HMODULE), &cbNeeded);
428-
GetModuleFileNameEx(hProcess, hModule, szExeName, cchExeName);
428+
GetModuleFileNameEx(hProcess, NULL, szExeName, cchExeName);
429+
#endif
429430
CloseHandle(hProcess);
430431
return true;
431432
}

metapath/src/Helpers.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ void BackgroundWorker_Destroy(BackgroundWorker *worker);
353353

354354
HRESULT PrivateSetCurrentProcessExplicitAppUserModelID(PCWSTR AppID);
355355
bool IsElevated(void);
356-
bool ExeNameFromWnd(HWND hwnd, LPWSTR szExeName, int cchExeName);
356+
bool ExeNameFromWnd(HWND hwnd, LPWSTR szExeName, DWORD cchExeName);
357357
//bool Is32bitExe(LPCWSTR lpszExeName);
358358

359359
#define SetExplorerTheme(hwnd) SetWindowTheme((hwnd), L"Explorer", NULL)

0 commit comments

Comments
 (0)