IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi .NET Discussion :

Dectecter l'absence d'activité


Sujet :

Delphi .NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 69
    Points : 46
    Points
    46
    Par défaut Dectecter l'absence d'activité
    Pour detecter l'absence d'activité d'un utilisateur sur une machine, j'utlise la fonction suivante pour delphi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function GetIdleTime:Cardinal;
    var
      LI:TLastInputInfo;
    begin
      LI.cbSize:=SizeOf(LI);
      GetLastInputInfo(LI);
      Result:=GetTickCount-LI.dwTime;
    end;
    le probleme c'est que je souhaite l'equivalent en delphi prism car il ne reconnait pas le type TlastInputInfo et les fonctions GetLastInputInfo et GetTickCount.

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Déclare le type toi même (reprend celui dans Delphi Win32, windows.pas) et utilise P/Invoke pour appeler l'API

    GetTickCount dans 'kernel32'
    GetLastInputInfo dans 'user32'
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    Ok, c'est bon cela fonctionne.
    C'est un peu galère par rapport à delphi où il suffit juste d'appeller une fonction !!!

    Merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Pourrais-tu faire partager les fonctions (ou même la classe) que tu as déclarées en .NET, cela pourrait en interesser d'autres !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    namespace MonAppli;
     
    interface
     
    uses
      System.Collections.Generic,
      System.Linq,
      System.Text,
      System.Runtime.InteropServices; // utilisation de dllImport
     
    type
     
      TLastInputInfo = record
        cbSize: Integer;
        dwTime: Integer;
      end;   
     
      ClassFunction = class
      private
        [DllImport("user32.dll")]
        class function GetLastInputInfo(var LInfo: TLastInputInfo) : Boolean ; external;
        [DllImport("kernel32.dll")]
        class function GetTickCount() : Integer; external;
     
      protected
      public 
        function GetIdleTime : Cardinal;
     
      end;
     
    implementation
     
    function ClassFunction.GetIdleTime: UInt32;
    var
      LInfo : TLastInputInfo;
    begin
      LInfo := new TLastInputInfo();
      LInfo.cbSize := sizeOf(TLastInputInfo);
      GetLastInputInfo(var LInfo);  
      Result := (GetTickCount - LInfo.dwTime); 
    end;
     
    end.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment détecter l'absence d'activité sur une application ?
    Par ffrancky dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/11/2008, 11h33
  2. Réponses: 4
    Dernier message: 11/10/2005, 20h12
  3. contrôler l'absence d'un élément dans une liste donnée
    Par gendalf37 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/09/2005, 10h02
  4. Activité d'un routeur
    Par knecmotet dans le forum Réseau
    Réponses: 2
    Dernier message: 03/01/2005, 23h58
  5. [CR10] Pquoi absence du message d'erreur sur les Nulls ?
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 30/11/2004, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo