Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1797 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Problème de P/Invoke avec Callback

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de P/Invoke avec Callback

n°1103342
x1800+
Posté le 31-05-2005 à 19:11:22  profilanswer
 

Bonsoir à tous ^^
 
Je me suis lancé cet aprem dans la réalisation d'un petit programme pour changer le PowerScheme utilisé par windows suivant l'application démarrée. [:canaille]  
 

  • A titre d'information, le PowerScheme représente le mode d'alimentation du pc (Toujours allumé, consomation minimale...) et est utile pour l'utilisation du Cool'n'Quiet d'AMD.


 
Donc , pour pouvoir lister tous les PwrScheme et leur assigner une liste d'executables, j'ai cherché un peu partout et j'en suis venu à la conclusion suivante : utiliser la dll w32 Powrprof.dll  :cry: .
 
J'ai donc trouvé ceci sur msdn :
http://msdn.microsoft.com/library/ [...] ctions.asp
 
Et je me suis "amusé" a tout transformer en C# (via des structs,enum,et un delegate pour le Callback)
 
Mais le problème est que cette fonction ne me permet (apparament), que d'obtenir un bool, qui retourne True une fois l'énumération finie (si j'ai bien compris  [:pingouino] ).
 
Mais comme a chaque Callback, il prend les données du PwrScheme qu'il traite, je pense que y a moyen de recuperer ses infos (c'est ce qui m'interesse en fait)....Mais je vois pas comment faire...Je bloque...
 
Donc voila le code  [:canaille]  
 

Code :
  1. public enum SystemPowerState
  2.  {
  3.   PowerSystemUnspecified = 0,
  4.   PowerSystemWorking =1,
  5.   PowerSystemSleeping1 = 2,
  6.   PowerSystemSleeping2 = 3,
  7.   PowerSystemSleeping3 = 4,
  8.   PowerSystemHibernate = 5,
  9.   PowerSystemShutdown = 6,
  10.   PowerSystemMaximum = 7
  11.  }
  12.  public enum PowerAction
  13.  {
  14.   PowerActionNone = 0,
  15.   PowerActionReserved,
  16.   PowerActionSleep,
  17.   PowerActionHibernate,
  18.   PowerActionShutdown,
  19.   PowerActionShutdownReset,
  20.      PowerActionShutdownOff,
  21.   PowerActionWarmEject,
  22.  }
  23.  public struct PowerActionPolicy
  24.  {
  25.   public PowerAction Action;
  26.   public long Flags;
  27.   public long EventCode;
  28.  }
  29.  [StructLayout(LayoutKind.Sequential , CharSet = CharSet.Unicode)]
  30.  public struct UserPowerPolicy
  31.  {
  32.   public long Revision;
  33.   public PowerActionPolicy IdleAc;
  34.   public PowerActionPolicy IdleDc;
  35.   public long IdleTimeoutAc;
  36.   public long IdleTimeoutDc;
  37.   public char IdleSensitivityAc;
  38.   public char IdleSensitivityDc;
  39.   public char ThrottlePolicyAc;
  40.   public char ThrottlePolicyDc;
  41.   public SystemPowerState MaxSleepAc;
  42.   public SystemPowerState MaxSleepDc;
  43.   [MarshalAs(UnmanagedType.ByValTStr , SizeConst = 2)]
  44.   public string Reserved;
  45.   public long VideoTimeoutAc;
  46.   public long VideoTimeoutDc;
  47.   public long SpindownTimeoutAc;
  48.   public long SpindownTimeoutDc;
  49.   public bool OptimizeForPowerAc;
  50.   public bool OptimizeForPowerDc;
  51.   public char FanThrottleToleranceAc;
  52.   public char FanThrottleToleranceDc;
  53.   public char ForcedThrottleAc;
  54.   public char ForcedThrottleDc;
  55.  }
  56.  [StructLayout(LayoutKind.Sequential , CharSet = CharSet.Unicode)]
  57.  public struct MachinePowerPolicy
  58.  {
  59.   public long Revision;
  60.   public SystemPowerState MinSleepAc;
  61.   public SystemPowerState MinSleepDc;
  62.   public SystemPowerState ReducedLatencySleepAc;
  63.   public SystemPowerState ReducedLatencySleepDc;
  64.   public long DozeTimeoutAc;
  65.   public long DozeTimeoutDc;
  66.   public long DozeS4TimeoutAc;
  67.   public long DozeS4TimeoutDc;
  68.   public char MinThrottleAc;
  69.   public char MinThrottleDc;
  70.   [MarshalAs(UnmanagedType.ByValTStr , SizeConst = 2)]
  71.   public string pad1;
  72.   public PowerActionPolicy OverThrottledAc;
  73.   public PowerActionPolicy OverThrottledDc;
  74.  }
  75.  public struct PowerPolicy
  76.  {
  77.   public UserPowerPolicy user;
  78.   public MachinePowerPolicy mach;
  79.  }
  80.  public delegate bool PowerSchemeEnumProc
  81.  (
  82.   int uiIndex ,
  83.   int dwName ,
  84.   [MarshalAs(UnmanagedType.LPWStr)]
  85.   string sName ,
  86.   int dwDesc ,
  87.   [MarshalAs(UnmanagedType.LPWStr)]
  88.   string sDesc ,
  89.   PowerPolicy pp ,
  90.   int lParam
  91.  );
  92.  [DllImport("Powrprof.dll" )]
  93.  static extern bool EnumPwrSchemes(PowerSchemeEnumProc CallBack , int Params);


 
Voilà pour le petit paté de code...Ce qui me pose probleme c'est donc la suite pour pouvoir récupérer les infos de chaque PwrScheme...
 
Marchi à ceux qui m'aideront :) Et meme a ceux qui s'interesseront au probleme  :o  
 
Et pis bonne soirée  [:canaille]

mood
Publicité
Posté le 31-05-2005 à 19:11:22  profilanswer
 

n°1103439
x1800+
Posté le 31-05-2005 à 21:37:01  profilanswer
 

Petit up du début de soirée [:canaille]

n°1103519
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 31-05-2005 à 22:53:15  profilanswer
 

attention ! les char du C ne sont pas les char du C#, qui sont des caractères unicode !
l'équivalent en C# sont les byte !


---------------
J'ai un string dans l'array (Paris Hilton)
n°1103529
x1800+
Posté le 31-05-2005 à 23:02:13  profilanswer
 

Oki merci Harko pour l'info je vais corriger ca  :hello:  
Sinon pas d'idée pour pouvoir récuperer les infos de chaque PowerScheme? :)

n°1103540
x1800+
Posté le 31-05-2005 à 23:12:56  profilanswer
 

Bon je viens de voir que je peux passer par le registre windows pour faire la même chose...Donc je vais oublier cette dll... (avec au passage leur fonction enumPwrScheme...Qui retourne un bool...Ce qui ne sers a rien  [:canaille] ... Ou alors j'ai mal compris)
 
 :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Problème de P/Invoke avec Callback

 

Sujets relatifs
Problème de relation entre mes tablesProblème de variables
[resolu]probleme des saut d'image sous excelprobleme compilation
probleme de parent à mon avis ... ?Encore un probleme de requete SQL
Probleme d'applet[ASP] Problème de declaration de tableau [Résolu]
problème de fps openGlProblème avec ma webcam
Plus de sujets relatifs à : Problème de P/Invoke avec Callback


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)