Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Delphi .NET
Delphi .NET Forum d'entraide sur l'EDI Delphi pour .NET et Borland Developer Studio
Avant de poster -> F.A.Q. Delphi .NET, F.A.Q. Delphi ASP.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/01/2011, 16h21   #1
beni34
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 69
Points : 14
Points : 14
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 :
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 !
beni34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 17h21   #2
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 196
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 196
Points : 13 247
Points : 13 247
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 12h22   #3
beni34
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 69
Points : 14
Points : 14
Ok, c'est bon cela fonctionne.
C'est un peu galère par rapport à delphi où il suffit juste d'appeller une fonction !!!

Merci
beni34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 14h18   #4
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 196
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 196
Points : 13 247
Points : 13 247
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 11h19   #5
beni34
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 69
Points : 14
Points : 14
Code :
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.
beni34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h47.


 
 
 
 
Partenaires

Hébergement Web