Hook sans dll, c'est possible , mais comment ?

Résolu
jace1975 Messages postés 81 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 12 octobre 2007 - 3 nov. 2005 à 20:34
jace1975 Messages postés 81 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 12 octobre 2007 - 5 nov. 2005 à 15:34
salut à tous

je travaille actuellement sur une application, pour me permettre notamment de killer immédiatement le processus en cours via un raccourci clavier (genre shift F4 et le jeu auquel vous jouez se ferme immédiatement juste quand le boss rentre dans le bureau )

Je m'inspire en fait d'une application qu'un collègue m'as passé et qui se revèle indispensable très rapidement(Si vous souhaitez l'avoir demander moi par mail) , auquel je voudrais rajouter quelques fonctionnalités (que j'ai dejà dvlpé mais il me manque le principal )
Deux problèmes pour le développement :

- J'aimerais, à l'instar de l'appli que je cite briévement, me passer de toutes dll (après de longues recherche sur internet je n'ai pas réussi à trouver le début d'une piste pour m'en passer). si quelqu'un a une idée je suis preneur

- je n'arrive pas à récupérer le processus de l'application en cours, la procédure que j'utilise me renvoie systématiquement mon programme à cause je pense du hook et de son implémentation dans mon pgm. Si quelqu'un c'est faire ça, qu'il n'hésites pas à répondre , je galère depuis un bout de temps.

Thxs par avance
A voir également:

5 réponses

Abadianet Messages postés 40 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 19 juin 2006 1
4 nov. 2005 à 00:18
Tu as 2 liens utiles sur les Hook

http://phidels.com/php/index.php3?page=../php/hook/hooks.htm&id=181

http://tcharles.developpez.com/simul/?delphi=1

Peut-être tu y trouveras une solution

Pour la récupération du processus, voici une fonction que j'utilise pour vérifier si un processus tourne, tu devrais en tirer quelque chose

function ProcessEnCours(ProgName: String): Boolean;
{ Cette fonction vérifie qu'un process fournit en paramétre (ex : outlook.exe) est en cours }
var Snaph: thandle;
Proc : tprocessentry32;
PId : cardinal;
begin
PId := 0;
Proc.dwSize := sizeof(Proc);
Snaph := createtoolhelp32snapshot(TH32CS_SNAPALL, 0); // récupere une capture de process
process32first(Snaph, Proc); // premier process de la list
if AnsiUpperCase(extractfilename(Proc.szExeFile)) = AnsiUpperCase(ProgName) then // test pour savoir si le process correspond
PId := Proc.th32ProcessID // récupere l'id du process
else
begin
while process32next(Snaph,Proc) do //dans le cas contraire on continue à cherche le process en question
begin
if AnsiUpperCase(extractfilename(Proc.szExeFile)) = AnsiUpperCase(ProgName) then
PId := Proc.th32ProcessID;
end;
end;
Closehandle(Snaph);
result := (PId <> 0);
end;

Bon courage
Abadiane
3
Rejoignez-nous