2010-02-08 94 views
2

是否有任何方法可以使用C++安裝系統範圍的ShellExecute掛鉤,而無需在每個活動進程中注入掛鉤模塊。我使用Windows 7 我爲了這個目的,因爲,我希望能夠選擇當一個鏈接打開使用ShellExecute的默認瀏覽器的鏈接打開在瀏覽器中,像這樣:全系統ShellExecute掛鉤?

ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL); 
+1

系統範圍_means_在每個過程中。 ?? – 2010-02-09 00:09:28

+0

是的,每個過程。 – 2010-02-09 16:35:22

回答

2

SetWindowsHookEx的最後一個參數需要一個線程ID - 如果這是NULL,則該過程將與調用線程所在的桌面中的所有線程相關聯,否則與特定線程相關聯。

瞭解更多:Using Hooks

+0

這是被接受的答案,但我仍然沒有看到'SetWindowsHookEx'如何鉤住'ShellExecute'。最接近這個的可能是'WH_SHELL',這也不能說明是否已經調用了ShellExecute。 – SMUsamaShah 2017-05-03 06:05:11