Problème avec l'API : WaitForSingleObject

SBIM_Raphael Messages postés 6 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 23 février 2005 - 17 févr. 2005 à 17:02
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 septembre 2007 - 6 juil. 2007 à 11:25
Ola The Crew,

Bonjour à tous, je me présente Raphaël. Travaillant à la SBIM en Belgique, je voudrais pouvoir apporter à mon application un petit plus.

En faite, je désirais pouvoir mettre une sorte d' "ecouteurs d'événements" dans mon EXE ActiveX. Le but de ce petit module (Serveur - Out Of Process), serait de vérifier la taille d'un répertoire, si il y trouve des fichiers, j'aimerais les déplacer.

Ayant commencé à l'aide d'un Timer, celà me parraissait une très grande charge pour le CPU devant s'exécuter toute les secondes :-).

J'ai pu lire et trouver sur internet, qu'il existait différentes API permettant de gérer les Threads (CreateProcess & WaitForSingleObject). J'aimerais pouvoir placer un écouteur sur l'exe, qui ferait un traitement de déplacements de fichier vers un répertoire dès qu'il se passerait quelque chose dans le répertoire, à savoir ajout d'un fichier log dans le répertoire par exemple.

Malheureusement, n'ayant pas assez d'expérience dans les threads, je rencontre quelques problèmes. Si quelqu'un pouvait m'éclairer là dessus, ce serait bien cool.

Vlà j'espère ne pas avoir été trop compliqué ds mes explications !

9 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
17 févr. 2005 à 20:05
Salut,


Un exemple de code ici :


http://www.mentalis.org/apilist/WaitForSingleObject.shtml

Loup Gris
0
SBIM_Raphael Messages postés 6 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 23 février 2005
17 févr. 2005 à 21:56
Ola !

Oui, merci. Malheureusement celà un exemple que j'avais déjà vu, mais je ne vois pas bien comment faire dans le contexte de ma question, par rapport à la vérification de fichier(s) dans un répertoire. Comme ca dès qu'il capte un événement sur le dossier (style ajout de fichiers LOG), il les transfert directement ailleurs.

Est ce aisé ?

Merci d'avance
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2005 à 22:01
L'API propose tout ce qu'il faut pour surveiller les changements survenus dans les dossiers, regarde FindFirstChangeNotification() dans MSDN, un exemple complet y est fourni, il n'y aura "plus" qu'à traduire en VB.

ciao...
BruNews, MVP VC++
0
SBIM_Raphael Messages postés 6 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 23 février 2005
17 févr. 2005 à 22:11
Ola !!

Ca c'est vraiment trop la classe !!! Trop bon...... Je te remercie beaucoup pour cette aide précieuse. Décidement celà regorge de bonnes choses ces API....;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
17 févr. 2005 à 22:29
Une adresse pour un exemple FindFirstChangeNotification en vb :

http://www.mentalis.org/apilist/FindFirstChangeNotification.shtml

Loup Gris
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2005 à 22:34
Ah ben ce coup là, c'est servi sur un plateau.
Merci à CanisLupus.

ciao...
BruNews, MVP VC++
0
SBIM_Raphael Messages postés 6 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 23 février 2005
17 févr. 2005 à 22:58
KLER
0
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 septembre 2007
5 juil. 2007 à 11:12
Bonjour, je déterre un peu un vieux sujet...
Mais dès que j'essaie d'utiliser le code fourni sur mentalis, j'ai une magnifique erreur :

PInvokeStackImbalance was detected
Message: Un appel à la fonction PInvoke 'WindowsApplication1!WindowsApplication1.Form1::FindFirstChangeNotification' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.

Le prototype ne serait-il plus correct ? Aurait-il changé ? Je suis en VB.NET avec le
framework 3.0.... Est-ce la cause de mon désarroi ? Merci de vos lumières...

Cyberax
0
cyberax51 Messages postés 9 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 26 septembre 2007
6 juil. 2007 à 11:25
Arf, le proto a changé. Ce ne sont plus des long mais des integer....

http://www.webtropy.com/articles/art9-1.asp?f=FindFirstChangeNotification

Problème résolu. Merci quand même.

Cyberax
0
Rejoignez-nous