Script wsh, Focus sur application avec session vérouillée (mi-résolu)

Script wsh, Focus sur application avec session vérouillée (mi-résolu) - VB/VBA/VBS - Programmation

Marsh Posté le 12-07-2007 à 10:39:01    

Bonjour
Sur un serveur 2003, je dois lancer une mise à jour de nuit sur un programme dont le LiveUpdate ne peut s'automatiser. Je passe donc par un script en wsh qui envois des touches via les commandes "appactivate" (pour selection fenêtre) et "SendKeys" pour l'envois des touches.  
En manuel, le script fonction bien, mais rien à faire en le planifiant !...
En effet, de nuit la session se verrouille et même si l'application est bien lancée par le script, il se termine sans rien faire car visiblement la fenêtre ouverte n'a pas le focus !
 
Ex: le petit script suivant lancé à la main écrit bien le status dans la fenêtre dans NotePad...  
  Mais si on vérrouille la session dans les 3 secondes d'attente, on n'entend bien le bip du message de fin mais rien n'est écrit dans notePad !!!

Code :
  1. Set WshShell = WScript.CreateObject("WScript.Shell" )
  2. WshShell.run "Notepad"
  3. WScript.Sleep 3000
  4. WshShell.AppActivate "NotePad"
  5. status = WshShell.AppActivate ("Bloc-notes" )
  6. WshShell.SendKeys status
  7. MsgBox status

Mes questions sont donc les suivantes:
-1- existe t-il une façon d'envoyer un CRTL+ALT+Supp avec "SendKeys" ?  (^%{DEL} ne fonctionne pas pour ouvrir la session !)
ou
-2- Comment prendre le focus sur une fenêtre en arrière plan lorsque la session courante est vérouillée ?
 
D'avance merci


Message édité par lucifer90 le 17-07-2007 à 10:51:00
Reply

Marsh Posté le 12-07-2007 à 10:39:01   

Reply

Marsh Posté le 12-07-2007 à 11:10:38    

pour ctrl alt suppr :
 
Sorry. You CANNOT send the CTRL-ALT-DELETE sequence using Sendkeys. Ctrl-Alt-Del causes a hardware interrupt to occur, via direct wiring from the keyboard. It is a hardware interrupt generated by the keyboard. It's not the CTRL-ALT-DEL keystroke that is the problem, but that the keyboard makes a special type of hardware interrupt request to the cpu that SendKey cannot duplicate.


Message édité par jpcheck le 12-07-2007 à 11:10:56
Reply

Marsh Posté le 12-07-2007 à 12:25:47    

Thank's jpcheck... but...
In a program as VNC you can generate a CRTL+ALT+Supp without toutch the keyboard of the remote computer !!!
This command is comming by code ! then why not possible on wsh ...
The problème is to open a session with scheduled script to have the controle on windows... because as the script example i have gave, it  not work in background !!
--------------------------------------------------------------
Un programme comme VNC envoie bien un "code" CRTL+ALT +Supp sur un poste distant ! on doit bien alors pouvoir le faire par script !
Le problème est de sortir session fermée avec un script planifié... car  mon exemple montre bien que les commandes en arrière plan ne sont pas opérationnelles si la session est vérouillée !

Reply

Marsh Posté le 12-07-2007 à 12:43:36    

lol, excuse moi, je suis bien Fr, mais c'était un texte pompé d'un auter site EN... :lol:  
 
Pas d'autres idées pour le moment.
 

Reply

Marsh Posté le 17-07-2007 à 10:50:17    

Bon… je donne les résultats de mes investigations…
Il n'existe "aucune" façon d'ouvrir une session vérrouillée dixt Microsoft… (http://www.microsoft.com/technet/scriptcenter/resources/qanda/nov04/hey1115.mspx) à part l'intervention sur le clavier !!!
Cependant vus que des outils comme VNC arrivent à le faire  :) , j'ai creusé un peu.
J'ai pas trouvé de code miracle mais ai découvert un petit utilitaire logon.exe qui permet l'opération… (http://www.softtreetech.com/24x7/archive/51.htm) il permet d'ouvrir la session si on en connait le mot de passe. J'ai inclu cet utilitaire dans mon script qui s'éxécute maintenant correctement.
A défaut de mieux ça marche !
Diaboliquement


Message édité par lucifer90 le 17-07-2007 à 10:51:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed