DllImport RtlSetProcessIsCritical

Signaler
Messages postés
26
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2010
-
Messages postés
26
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2010
-
Bonjour,

Je suis en train de faire un logiciel de contrôle parental et pour eviter que quelqu'un termine le processus j'ai fais quelques recherches sur google est je suis tomber sur RtlSetProcessIsCritical. (http://www.codeproject.com/KB/winsdk/RtlSetProcessIsCritical.aspx)
Malheureusement, la source est en C++ et je travaille en CSharp.
J'ai donc essaye de faire "DllImport" mais mon programme ne semble par marcher (Aucune erreur mais le processus peut être terminer sans problème en mode administrateur.)

Voila une partie de mon code :

[DllImport("NTDLL.DLL",EntryPoint = "RtlSetProcessIsCritical")]
        static unsafe extern IntPtr RtlSetProcessIsCritical(Boolean bNew, Boolean *pbOld, Boolean bNeedScb);


Et dans unsafe Form1_Load :

RtlSetProcessIsCritical(true, null, false);


Mais rien ne fonctionne.

Quelqu'un peut-il m'aider ? Merci.
A voir également:

8 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
34
Salut, l'article sur codeproject parle de privilèges "SE_DEBUG_NAME".
Messages postés
26
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2010

Oui mais c'est uniquement pour les privileges. Or mon application sera deja lancee en Administrateur avec les droits UAC.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
34
Ils font combien d'octets les Boolean de la version C++ ? Dllimport par défaut c'est 4 octets.
Messages postés
26
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2010

Les boolean de C++ font 1 octet
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
34
tsss merci je sais, mais c'est pas ma question, je te demande pas combien font les "bool" du C++ mais combien font les "BOOLEAN" de la version C++ telle qu'elle est definie sur codeproject !

je me répète mais là avec DllImport tu as marshallé des bools de 4 octets.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
34
Si c'est le type Windows 'typedef BYTE BOOLEAN' ok pour 1 octet mais c'est peut être un autre alias.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
34
Si tu marshalle en unsafe coté C# tu peux également utiliser le type "byte" sinon utilise l 'attribut [ MarshalAs( UnmanagedType.I1 ) ]
Messages postés
26
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2010

Okay merci je vais voir ça ;)