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

Langage Delphi Discussion :

Comment faire une capture de mon écran ? (avec vidéo et souris)


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut Comment faire une capture de mon écran ? (avec vidéo et souris)
    En faite je veux faire une capture en temps reel de mon ecran.
    La fonction getDesktopWindow affiche du noir lorskil ya une sequence video.
    Et je veu afficher le curseur de la souris si possible.
    bref une vrai mirroir .

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Solution 1 (vite fait - mal fait)

    desactive l'acceleration materielle de ta carte video (Click droit sur le bureau -> proprietes -> parametres -> parametres avances -> resolution de problemes -> acceleration materielle. je dis ca de tete car je bosse sur un windows XP en japonais, je me souviens plus bien de la version francaise)

    Ca va marche mais ca risque d'etre tres lent.

    Solution 2-3 (bien fait, mais long a faire)
    fais ca avec DirectX, ou WindowsMedia Encoder. perso j7ai fait ca avec WME en fullscreen (800*600). Pas de probleme pour capturer a 25 images/sec, et compresser le tout en temps reel.
    Desole pour les accents, y'a pas sur mon clavier.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Solution 2-3 (bien fait, mais long a faire)
    fais ca avec DirectX, ou WindowsMedia Encoder. perso j7ai fait ca avec WME en fullscreen (800*600). Pas de probleme pour capturer a 25 images/sec, et compresser le tout en temps reel.
    Tu peux expliker avec de code car franchement J'ai pas d'idee sur le directx et merci.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    ben si tu fais avec DirectX, tu peux utiliser DSPack, mais je le connais pas exactement et donc je sais pas si une capture d'ecran est possible ou pas.

    J'ai utilise WME d'une maniere pas propre dans le passe (WME n'a pas ete porte sous delphi). En gros:
    - Telecharge WME
    - Utilise WME pour faire ta capture (regle les parametres et aussure toi que tout marche bien).
    - Sauve les parametres (Encoder session files, fichier .wme)
    - Ouvre le repertoire ou tu as enregistre le fichier wme
    - Execute WinSight32 et monitore les messages (uniquement ceux envoyes par les applications nouvellement ouvertes)
    - Dans l'explorateur, execute le fichier wme, et lance la capture dans WindowsMedia Encoder
    - Arrete de monitorer les messages dans WinSight32.
    - Quitte WME
    - Dans le log de WinSight tu va trouver les messages necessaires au demarrage de la capture dans WME (c'est long mais ca se fait, crois moi. En gros tu as besoin du message qui correspond a l'appui sur le bouton "demarrer la capture")
    - Maintenant tu lances Delphi
    - Dans ton prog tu fais un ShellExecute de ton fichier wme
    - Ensuite tu attends que WME s'ouvre, puis tu lui envoie le(s) message(s) necessaires avec SendMessage, ou PostMessage. le mieux est de faire tout ca dans un thread.

    Bon je suis conscient que c'est long (surtout pour trouver quels sont les messages a envoyer). mais ca marche.
    Je te conseille, dans WME, de desactiver toutes les boites de dialogues (car ca fait des messages en plus et donc il sera plus long de trouver les messages utiles avant de sauver le fichier wme)

    A noter que la methode decrite ici marche avec n'importe quel logiciel, a partir du moment ou ce qu'on veut faire est en gros "d'appuyer sur un bouton automatiquement". J'utilise cette methode souvent et jusqu'ici j'ai jamais eu aucun probleme...Bon maintenant je pense que c'est a la limite de la legalite.
    Desole pour les accents, y'a pas sur mon clavier.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Bon allez...t'as de la chance que je me fasse royalement chier au taf aujourd'hui.

    Mets ca dans un thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TStartWME.Execute;
    var
      H: HWND;
    begin
      FreeOnTerminate:=true;
      ShellExecute(GetDesktopWindow(),'open','MaCapture.wme','','',SW_HIDE);
      H:=0;
      while H=0 do
        H:=FindWindow(nil,'MaCapture - Windows Media Encoder');
      //Start Encoding
      PostMessage(H,WM_COMMAND,$00019DD0,0);
    end;
    Verifie bien que:
    1-ton fichier wme est accessible
    2-tu as desactive toutes les popups dans WME
    3-la fenetre de WME ait bien pour titre "MaCapture - Windows Media Encoder"
    Desole pour les accents, y'a pas sur mon clavier.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/03/2009, 00h34
  2. Comment faire une capture d'écran pour envoyer sur le forum ?
    Par jlb59 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 07/07/2007, 17h28
  3. [SOLARIS] Comment faire une capture d'écran?
    Par droussa dans le forum Solaris
    Réponses: 1
    Dernier message: 07/06/2007, 18h05
  4. [FAQ] [OpenGL] "Comment faire une capture d'écran ?"
    Par damienlann dans le forum Contribuez
    Réponses: 1
    Dernier message: 07/06/2006, 17h22
  5. Réponses: 10
    Dernier message: 10/10/2003, 14h25

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