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

API, COM et SDKs Delphi Discussion :

Espion en herbe!


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut Espion en herbe!
    Bonjour,

    Je veux programmer une application cachée (j'ai trouvé comment faire) en Delphi 2009 qui vérifie à toutes les 5 minutes si une ou l'autre des touches du clavier. Évidemment, cette application devra travailler alors qu'elle n'a pas le focus.

    Formulé autrement c'est : Est-ce mon ado joue à "League of legend" ou tout autre jeu plus que les 2 heures par jour autorisés?

    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    pas besoin d'espion, la réponse est oui

    il me parait plus simple de scanner les programmes actifs et de voir si LOL est en cours
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    Bonjour monsieur Toth,

    Bien sûr que je connais la réponse...

    Je voulais avoir en main le temps réel qu'il avait passé devant l'ordi. J'avais réussi à utiliser ta technique. Toutefois, je voyais deux limitations. La première était de trouver pour chaque jeu un fichier témoin, ce qui en soi n'est pas trop compliqué. Mais la deuxième était qu'il pourrait quitter le jeu sans fermer l’application. J'aurais alors une durée non crédible.

    C'est pourquoi, l'idée de monitorer les touches ou les clics (et dieu sait le notre de clics qu'il fait lorsqu'il joue) me paraissait un bon indicateur de sa présence devant l'écran.

    Merci pour ta réponse

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Par défaut
    windows family safety, et tu en seras plus que la NSA sur ton gamin

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 090
    Par défaut
    Comme le souligne fredoche, il y a un tas d'outil de contrôle parental pour surveiller l'activité sur un PC

    Mais, si tu veux absolument le programmer toi-même
    En reprenant, l'idée de Paul TOTH

    Tu peux lister les processus (les .exe), il te suffit d'avoir la liste des Exe concernés pas les différents jeux !
    Il faut juste les identifier, en gros voir ce qu'il y a derrière le raccourci

    Pas besoin de fichier, suffit que l'exe du jeu soit lancé !

    Cette phrase est très étrange : "quitter le jeu sans fermer l’application"
    Quelle application ?
    application = la tienne ? donc ton controle n'a aucune valeur si c'est ton fils qui dit qu'il arrête de joueur
    application = le jeu ? si tu ferme le jeu, l'EXE du jeu s'arrête aussi même si le jeu plante

    D'ailleurs, tu as pensé à stocker les temps de chaque programme par jour
    Si le PC plante et ton fils reboot, il faut reprendre le compte
    Et qui dit stockage dit donc un fichier ou la base de registre
    Un fichier, ton fils n'aura qu'a chercher les fichiers modifiés le même jour et le modifier pour tricher son temps
    la BDR, des outils existent pour trouver aussi les clés qui changent !

    Quand tu vois le niveau de certains collégiens en Delphi, cracker le contrôle parental c'est l'enfance de l'art

    Comment lister les processus actifs ?
    Comment savoir si une application est en cours d'exécution ?
    Tu pourras voir ce qui apparait et disparait dans un TTimer

    Voire être méchant : Comment tuer un processus à partir de son nom ?

    Idem, si tu peux identifier les fenêtres
    Comme WindowSpy ne va pas être évident à utiliser sur un jeu plein écran

    Comment récupérer les handles des fenêtres d'un processus ?
    Si tu ne connais pas le processus, retire le filtre sur ProcessID, tu pourras ainsi avoir toutes les fenêtres actives (facilement un petit millier bien caché, Delphi lui même sera dedans)

    Voir aussi GetWindow \ FindWindowEx qui te fourniras même les boutons à l'intérieur (bon un jeu en 3D aucune chance puisque c'est juste du dessin)

    Ton programme idéalement, tu le mets en service, il y aura moins de risque que ton fils, tue le programme !
    Il n'y a rien de plus que de killer un programme de contrôle parental fait maison

    je suppose que tu as cumulé ceci

    Comment désactiver la combinaison de touches CTRL-ALT-SUPPR ?
    Est-ce encore valable en Seven ?

    Comment ne pas afficher l'icône d'une fiche dans la barre des tâches ?
    Valable surtout en D7 avant l'apparition de TApplication.MainFormOnTaskBar

    Dommage que ce vieux truc ne fonctionne plus : Comment faire pour CACHER L'APPLICATION lors d'un ALT CTRL SUP


    Enfin, le Hook Souris est un grand classique via SetWindowsHookEx : Hook souris : intercepter les messages destinés aux autres appli.

    Comment surcharger (hook) n'importe quelle API windows ?
    Remplacer une API par son propre code dans un processus (injection de code)
    Si tu connais les DLL utilisés par les jeux, tu aussi en surveillé l'activité mais ton fils risque de ne pas aimer la perte de performance
    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

  6. #6
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    Merci Fredoche et ShaiLetroll,

    Effectivement je voulais le programmer moi-même.

    Entre temps, j'ai redirigé ma recherche sur la souris et j'ai trouvé ce FAQ :
    http://delphi.developpez.com/faq/?pa...s#testertouche.

    La fonction GetAsyncKeyState permet de connaitre l'état de n'importe lequel des boutons de la souris ou touches du clavier.

    Je vais donc cacher l'application avec :

    Application.ShowMainForm:=False et le tour est joué.

    Avec un timer, je teste l'état du bouton gauche de la souris à toutes les secondes et j'emmagasine l'heure dans un fichier txt.

    Oui, c'est vrai, mon ados pourrait modifier ce fichier txt. Mais c'est un peu ça le problème. Il ne connait rien à l'ordinateur. Pour lui, c'est une boîte noir et il ne fait que jouer... Ah! S'il pouvait être un peu hacker!

    Bon,... ça m'a fait du bien d'en parler.

    Blague à part, merci beaucoup pour votre aide.

  7. #7
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Salut, Shai
    Citation Envoyé par ShaiLeTroll Voir le message
    (...) Cette phrase est très étrange : "quitter le jeu sans fermer l’application"
    Quelle application ?
    application = la tienne ? donc ton contrôle n'a aucune valeur si c'est ton fils qui dit qu'il arrête de joueur
    application = le jeu ? si tu fermes le jeu, l'EXE du jeu s'arrête aussi même si le jeu plante
    Cette phrase est très étrange

    Sans déc ?
    Ben c'est simplement que le gamin, en plein jeu, a pu avoir une envie pressante et est parti la satisfaire sans rien arrêter, pensant reprendre son jeu plus tard.
    Nan ?
    Si ensuite il est allé se laver les mains, boire un coup, discuter avec quelqu'un qui passait par là, etc., tout ça n'est pas du temps actif sur le jeu, qui continue à tourner dans son coin

    Sinon, sympa les liens sur les hooks, dommage que ça ne m'aide pas pour mon problème...

    Tchô,

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

Discussions similaires

  1. [logiciel] Espion ports séries (test)
    Par Caine dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 30/01/2006, 08h54
  2. [Mail] affichage d'une image espion
    Par Arkane dans le forum Langage
    Réponses: 6
    Dernier message: 12/10/2005, 09h20
  3. [MFC] Espion USB
    Par Kevgeii dans le forum MFC
    Réponses: 5
    Dernier message: 10/05/2005, 14h34

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