Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre Expert Avatar de dmganges
    Homme Profil pro Michel DUFOUR
    Administrateur Unix / Oracle retraité
    Inscrit en
    septembre 2011
    Messages
    993
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel DUFOUR
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur Unix / Oracle retraité
    Secteur : Service public

    Informations forums :
    Inscription : septembre 2011
    Messages : 993
    Points : 1 435
    Points
    1 435

    Par défaut Ouverture fenêtre Taskeng.exe normale mais indésirable

    Bonjour,

    Étape 1 SANS problème :
    J'avais un programme en perl Mail_imap.pl qui contrôlait différentes BAL.
    Ce programme pouvait être lancé de différentes façons ligne de commande, raccourci, fichier.bat.
    Le fichier.bat me servait à lancer l'application par l'intermédiaire du planificateur de tâches de Window7 :
    Code :
    "C:\Perl\bin\perl.exe" C:\Mail\Mail_imap.pl
    Le lancement par intermédiaire du planificateur se déroulait parfaitement toutes les 30mn.
    En paramètre j'avais opté pour :
    - Exécuter même si l'utilisateur n'est pas connecté


    Étape 2 AVEC petit problème :
    Dans le programme Mail_imap.pl j'ai ajouté un appel à un programme de synthèse vocale : balabolka.exe (Gratuit et SUPER) :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    ...
    if ( $SyntVocal || $Mail_Ini{GLOBAL}{SyntVocal} eq 'OUI' ) {		
    	my ( $Executable, $Parametres, $Balabolka, $ComBalabolka ) = ();
    	$Executable		= 'C:/Program Files (x86)/Balabolka/balabolka.exe';
    	$Parametres		= '-rmnq';
    	$Balabolka		= $From;
    				
    	$Balabolka    = '"'. $Balabolka .'"';
    	$ComBalabolka	= $Executable . $Parametres . $Balabolka;
    	my @Cde = ( $Executable , $Parametres , $Balabolka );
    	Ano( "\nSYNTHESE= ". $ComBalabolka ."\n" );
    	#run3 \@Cde;
    	system @Cde;
    }
    ...    		
    ######################
    # Gestion des messages
    sub Ano {
    	my ( $Message ) = @_;
    	print ANO $Message;
    	print "$Message";
    }
    Lorsque je lançais le programme en ligne de commande tout se passait correctement, j'avais l'origine du message ($From) en synthèse vocale.

    Lancé depuis le planificateur, balabolka.exe se chargeait en mémoire mais ne s'exécutait pas ! obligé de le tuer à chaque appel dans le programme !
    J'ai fait des traces, j'ai galéré pendant 2 jours... essayé IPC::RUN, IPC::RUN3:Simple... persuadé que la mise en forme de la commande my @Cde était en cause...
    Vous remarquerez au passage que la mise en forme (qui fonctionne) ne comporte aucun espace :
    Code :
    SYNTHESE= C:/Program Files (x86)/Balabolka/balabolka.exe-rmnq"De Spinoza Baruch <spinoza.baruch@hotmail.fr>"
    Pour que ça fonctionne j'ai dû modifier un paramètre du planificateur :
    - N'exécuter que si l'utilisateur est connecté


    Et c'est impeccable !

    Sauf que j'ai toutes les 30mn une fenêtre Taskeng.exe qui s'ouvre avec à l'intérieur la ligne du fichier.bat de commande ainsi que tous les "print"...

    J'ai coché [Masqué] dans le menu du planificateur, ne sachant pas à quoi pouvait correspondre cette option, mais pourtant explicite...

    J'ai toujours la fenêtre Taskeng.exe qui s'ouvre !

    J'ai fait des recherches sur le net, tous les messages sur lesquels je suis tombé traitent de fenêtres intempestives, la mienne ne l'est pas, c'est bien moi qui la déclenche !
    J'ai bien sûr essayé toutes les options avec ou sans mot de passe, droits maximums...

    Enfin ma question :
    Est-il possible d'empêcher cette fenêtre d'apparaître ?

    Pardon d'avoir expliciter si longuement le problème, mais je pense qu'il peut servir à d'autres...
    MERCI d'avance pour vos suggestions.

    PS : Un SUPER GRAND MERCI à Cabos son commentaire m'a mis sur la voie :
    http://www.developpez.net/forums/d12...s/#post6883814

  2. #2
    Expert Confirmé Sénior Avatar de JML19
    Homme Profil pro Jean Michel
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    décembre 2010
    Messages
    7 172
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean Michel
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : décembre 2010
    Messages : 7 172
    Points : 11 490
    Points
    11 490
    Billets dans le blog
    1

    Par défaut

    Bonjour

    C'est le bat qui ouvre ta fênêtre ?

    Si c'est le cas essais ==> start /min

  3. #3
    Membre Expert Avatar de dmganges
    Homme Profil pro Michel DUFOUR
    Administrateur Unix / Oracle retraité
    Inscrit en
    septembre 2011
    Messages
    993
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel DUFOUR
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur Unix / Oracle retraité
    Secteur : Service public

    Informations forums :
    Inscription : septembre 2011
    Messages : 993
    Points : 1 435
    Points
    1 435

    Par défaut

    SUPER JML19 ça fonctionne !

    Je n'avais pas envisagé cette possibilité car j'avais fait un essai en mettant directement les infos de démarrage dans le planificateur (planif_1.jpg), comportement identique : génération de la fenêtre Taskeng.exe, qui affiche les "print". J'en avais conclu à tord que Taskeng.exe était sollicité par les "print"...

    Donc un GRAND MERCI !

    Je connais peu Windows, et seulement si tu as un peu de temps pour éclairer ma lanterne :
    Pourquoi ai-je dû passer de
    - Exécuter même si l'utilisateur n'est pas connecté, à
    - N'exécuter que si l'utilisateur est connecté
    par le seul fait que j'ajoute un appel à un exécutable (balabloka.exe)

    Je conçois que si il n'y a pas de session d'ouverte, il n'est pas utile d'avoir une synthèse vocale qui "parle" dans le vide...

    Mais dans ce cas comment Windows "décide t-il ? ", y aurait-il au niveau de l'exécutable balabloka.exe une info, une permission d'exécution spécifique...

    En tout cas MERCI

  4. #4
    Expert Confirmé Sénior Avatar de JML19
    Homme Profil pro Jean Michel
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    décembre 2010
    Messages
    7 172
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean Michel
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : décembre 2010
    Messages : 7 172
    Points : 11 490
    Points
    11 490
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par dmganges Voir le message
    SUPER Je connais peu Windows, et seulement si tu as un peu de temps pour éclairer ma lanterne :
    Pourquoi ai-je dû passer de
    - Exécuter même si l'utilisateur n'est pas connecté, à
    - N'exécuter que si l'utilisateur est connecté
    par le seul fait que j'ajoute un appel à un exécutable (balabloka.exe)
    Je pense qu'il s'agit de la permission de l'utilisateur dans le cas où il n'y a pas d'utilisateur désigné sur le disque C:.

    Je pense que sous XP tu n'aurais pas eu besoin de faire cette manipulation, il s'agit du fameux UAC il me semble

    Regarde (ICI) ce que dit Wikipédia sur l'UAC.

  5. #5
    Membre Expert Avatar de dmganges
    Homme Profil pro Michel DUFOUR
    Administrateur Unix / Oracle retraité
    Inscrit en
    septembre 2011
    Messages
    993
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel DUFOUR
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur Unix / Oracle retraité
    Secteur : Service public

    Informations forums :
    Inscription : septembre 2011
    Messages : 993
    Points : 1 435
    Points
    1 435

    Par défaut

    OK, je regarde, @+
    Encore MERCI

  6. #6
    Membre Expert Avatar de dmganges
    Homme Profil pro Michel DUFOUR
    Administrateur Unix / Oracle retraité
    Inscrit en
    septembre 2011
    Messages
    993
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel DUFOUR
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur Unix / Oracle retraité
    Secteur : Service public

    Informations forums :
    Inscription : septembre 2011
    Messages : 993
    Points : 1 435
    Points
    1 435

    Par défaut

    L'explication de UAC sur Wikipedia est claire et laisse penser, effectivement, que l'UAC a été la cause de mon souci.

    Donc vite fait, j'ai passé l'UAC au minimum, rebooté pour la prise en compte, ben non même comportement dès que je suis en :
    - Exécuter même si l'utilisateur n'est pas connecté (alors qu'en réalité je suis connecté !).
    Balabolka.exe se charge en mémoire, autant de fois qu'il est appelé par le pgm perl, mais reste bloqué à une taille d'environ 13Mo alors qu'il pèse 95Mo lorsqu'il tourne réellement. Je dois tuer chaque instance lancée...
    Pourtant j'ai également mis les droits maximum dans le planificateur (planif_2.jp)

    Bon ça ne m'empêchera pas de dormir, c'était juste pour le retour d'info.
    MERCI !

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •