2010-02-08 5 views
2

est-il possible d'installer un hook ShellExecute à l'échelle du système en utilisant C++ sans avoir à injecter un module d'accrochage dans chaque processus actif. J'utilise Windows 7. Mon but en est parce que, je veux être en mesure de choisir le navigateur un lien est ouvert quand un lien est ouvert avec le navigateur par défaut en utilisant ShellExecute, comme ceci:Crochets ShellExecute à l'échelle du système?

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

système large _means_ dans tous les processus. ?? –

+0

Oui, tous les processus. –

Répondre

2

Le dernier paramètre de SetWindowsHookEx prend un identifiant de thread - si cela est NULL la procédure sera associée à tous les threads dans le même bureau que le thread appelant ou avec un thread particulier sinon.

En savoir plus: Using Hooks

+0

Ceci est une réponse acceptée, mais je ne vois toujours pas comment 'SetWindowsHookEx' peut accrocher' ShellExecute'. La chose la plus proche de ceci est probablement 'WH_SHELL' et cela aussi n'est pas censé dire si' ShellExecute' a été appelé. – SMUsamaShah