Mais ce script devrait répondre à ton besoin :
Je l'ai lancé ton code modifé, mais le problème reste identique: "Script
Bonjour !
J'ai la flemme de chercher, en VBS. Mais ce script devrait répondre à ton
besoin :
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<script language=JavaScript>
function visu(nom, txt) {
var tt = document.getElementById(nom);
tt.innerHTML = txt;
}
</script>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("Sans titre")
visu "D1",A
Wend
visu "D1",B
</SCRIPT>
@-salutations
--
Michel Claveau
Mais ce script devrait répondre à ton besoin :
Je l'ai lancé ton code modifé, mais le problème reste identique: "Script
Bonjour !
J'ai la flemme de chercher, en VBS. Mais ce script devrait répondre à ton
besoin :
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<script language=JavaScript>
function visu(nom, txt) {
var tt = document.getElementById(nom);
tt.innerHTML = txt;
}
</script>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("Sans titre")
visu "D1",A
Wend
visu "D1",B
</SCRIPT>
@-salutations
--
Michel Claveau
Mais ce script devrait répondre à ton besoin :
Je l'ai lancé ton code modifé, mais le problème reste identique: "Script
Bonjour !
J'ai la flemme de chercher, en VBS. Mais ce script devrait répondre à ton
besoin :
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<script language=JavaScript>
function visu(nom, txt) {
var tt = document.getElementById(nom);
tt.innerHTML = txt;
}
</script>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("Sans titre")
visu "D1",A
Wend
visu "D1",B
</SCRIPT>
@-salutations
--
Michel Claveau
Et avec ça :
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<script language=JavaScript>
function visu(nom, txt) {
var tt = document.getElementById(nom);
tt.innerHTML = txt;
}
function attente() {
if (oShell.appactivate("Sans titre")){
visu("D1","NotePad chargé");
}
else{
visu("D1","Script lancé");
setTimeout('attente()',50);
}
}
var oShell = new ActiveXObject("WScript.Shell");
attente();
</script>
</HTML>
Et avec ça :
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<script language=JavaScript>
function visu(nom, txt) {
var tt = document.getElementById(nom);
tt.innerHTML = txt;
}
function attente() {
if (oShell.appactivate("Sans titre")){
visu("D1","NotePad chargé");
}
else{
visu("D1","Script lancé");
setTimeout('attente()',50);
}
}
var oShell = new ActiveXObject("WScript.Shell");
attente();
</script>
</HTML>
Et avec ça :
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<script language=JavaScript>
function visu(nom, txt) {
var tt = document.getElementById(nom);
tt.innerHTML = txt;
}
function attente() {
if (oShell.appactivate("Sans titre")){
visu("D1","NotePad chargé");
}
else{
visu("D1","Script lancé");
setTimeout('attente()',50);
}
}
var oShell = new ActiveXObject("WScript.Shell");
attente();
</script>
</HTML>
Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad (par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad (par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad (par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour,
vous pouvez faire quelque chose comme ce qui suit (... et la charge CPU
sera *fortement* réduite comparée au 100% actuel ;-) ) :
http://automation.eu.tf/Temporisation_VBS.HTA (VBScript * voir code
ci-dessous)
http://automation.eu.tf/Temporisation_JS.HTA (JScript * voir code
ci-dessous)
La récursive de Michel est bonne aussi.
Au lieu de passer par une récursive j'utilise les méthodes setInterval et
clearInterval du DOM.
Cette dernière peut aussi s'avérer utile pour interompre la temporisation
à tout instant (via un bouton par ex.).
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer language='vbs'>
Executer_Notepad_Apres_10_sec 'Simulation
titre="Sans titre"
c=""
Debut
Sub Debut
'....Code....
D1.InnerText="Prêt"
'Suite
SetTimeout "Suite",1000 'Simulation
End Sub
Sub Suite
D1.InnerText="En cours "
c=SetInterval("Temporisation",150)
End Sub
Sub Temporisation
If Not CreateObject("WScript.Shell")_
.AppActivate(titre) Then
D1.InnerTextÑ.InnerText&"... "
Else
Fin
End If
End Sub
Sub Fin
ClearInterval(c)
'....Code....
D1.InnerText="Terminé"
End Sub
Sub Executer_Notepad_Apres_10_sec
SetTimeout _
"CreateObject(""WScript.Shell"")"&_
".Run ""notepad.exe""",10000
End Sub
</script>
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer>
executer_notepad_apres_10_sec() //Simulation
titre='Sans titre'
debut()
function debut(){
//....Code....
D1.innerText='Prêt'
//suite()
setTimeout('suite()',1000) //Simulation
}
function suite(){
D1.innerText='En cours '
c=setInterval('temporisation()',150)
}
function temporisation(){
if(!new ActiveXObject('WScript.Shell').
appActivate(titre)){
D1.innerText+='... '
}else{
fin()
}
}
function fin(){
clearInterval(c)
//....Code....
D1.innerText='Terminé'
}
function executer_notepad_apres_10_sec(){
setTimeout
(
'new ActiveXObject("WScript.Shell")'+
'.run("notepad.exe")'
,10000
)
}
</script>
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
Amicalement,
Jean - JMST
Belgium
"sympatix" a écrit dans le message de news:Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad
(par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour,
vous pouvez faire quelque chose comme ce qui suit (... et la charge CPU
sera *fortement* réduite comparée au 100% actuel ;-) ) :
http://automation.eu.tf/Temporisation_VBS.HTA (VBScript * voir code
ci-dessous)
http://automation.eu.tf/Temporisation_JS.HTA (JScript * voir code
ci-dessous)
La récursive de Michel est bonne aussi.
Au lieu de passer par une récursive j'utilise les méthodes setInterval et
clearInterval du DOM.
Cette dernière peut aussi s'avérer utile pour interompre la temporisation
à tout instant (via un bouton par ex.).
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer language='vbs'>
Executer_Notepad_Apres_10_sec 'Simulation
titre="Sans titre"
c=""
Debut
Sub Debut
'....Code....
D1.InnerText="Prêt"
'Suite
SetTimeout "Suite",1000 'Simulation
End Sub
Sub Suite
D1.InnerText="En cours "
c=SetInterval("Temporisation",150)
End Sub
Sub Temporisation
If Not CreateObject("WScript.Shell")_
.AppActivate(titre) Then
D1.InnerTextÑ.InnerText&"... "
Else
Fin
End If
End Sub
Sub Fin
ClearInterval(c)
'....Code....
D1.InnerText="Terminé"
End Sub
Sub Executer_Notepad_Apres_10_sec
SetTimeout _
"CreateObject(""WScript.Shell"")"&_
".Run ""notepad.exe""",10000
End Sub
</script>
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer>
executer_notepad_apres_10_sec() //Simulation
titre='Sans titre'
debut()
function debut(){
//....Code....
D1.innerText='Prêt'
//suite()
setTimeout('suite()',1000) //Simulation
}
function suite(){
D1.innerText='En cours '
c=setInterval('temporisation()',150)
}
function temporisation(){
if(!new ActiveXObject('WScript.Shell').
appActivate(titre)){
D1.innerText+='... '
}else{
fin()
}
}
function fin(){
clearInterval(c)
//....Code....
D1.innerText='Terminé'
}
function executer_notepad_apres_10_sec(){
setTimeout
(
'new ActiveXObject("WScript.Shell")'+
'.run("notepad.exe")'
,10000
)
}
</script>
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
Amicalement,
Jean - JMST
Belgium
"sympatix" <totosympatix@tototele2.fr> a écrit dans le message de news:
ONZtdBWKFHA.4092@tk2msftngp13.phx.gbl...
Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad
(par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour,
vous pouvez faire quelque chose comme ce qui suit (... et la charge CPU
sera *fortement* réduite comparée au 100% actuel ;-) ) :
http://automation.eu.tf/Temporisation_VBS.HTA (VBScript * voir code
ci-dessous)
http://automation.eu.tf/Temporisation_JS.HTA (JScript * voir code
ci-dessous)
La récursive de Michel est bonne aussi.
Au lieu de passer par une récursive j'utilise les méthodes setInterval et
clearInterval du DOM.
Cette dernière peut aussi s'avérer utile pour interompre la temporisation
à tout instant (via un bouton par ex.).
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer language='vbs'>
Executer_Notepad_Apres_10_sec 'Simulation
titre="Sans titre"
c=""
Debut
Sub Debut
'....Code....
D1.InnerText="Prêt"
'Suite
SetTimeout "Suite",1000 'Simulation
End Sub
Sub Suite
D1.InnerText="En cours "
c=SetInterval("Temporisation",150)
End Sub
Sub Temporisation
If Not CreateObject("WScript.Shell")_
.AppActivate(titre) Then
D1.InnerTextÑ.InnerText&"... "
Else
Fin
End If
End Sub
Sub Fin
ClearInterval(c)
'....Code....
D1.InnerText="Terminé"
End Sub
Sub Executer_Notepad_Apres_10_sec
SetTimeout _
"CreateObject(""WScript.Shell"")"&_
".Run ""notepad.exe""",10000
End Sub
</script>
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer>
executer_notepad_apres_10_sec() //Simulation
titre='Sans titre'
debut()
function debut(){
//....Code....
D1.innerText='Prêt'
//suite()
setTimeout('suite()',1000) //Simulation
}
function suite(){
D1.innerText='En cours '
c=setInterval('temporisation()',150)
}
function temporisation(){
if(!new ActiveXObject('WScript.Shell').
appActivate(titre)){
D1.innerText+='... '
}else{
fin()
}
}
function fin(){
clearInterval(c)
//....Code....
D1.innerText='Terminé'
}
function executer_notepad_apres_10_sec(){
setTimeout
(
'new ActiveXObject("WScript.Shell")'+
'.run("notepad.exe")'
,10000
)
}
</script>
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
Amicalement,
Jean - JMST
Belgium
"sympatix" a écrit dans le message de news:Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad
(par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour !
Dans votre exemple, effectivement, tout fonctionne au poil, car la démo se
sert d'une tempo en guise de code.
Mais, si je veux appliquer ça dans une boucle récursive (une collection de
5000 fichiers par exemple), soit:
1: Je place un affichage de progression avec tempo à chaque passage de
boucle (pas possible avec une tempo)
2: Je cherche à placer l'affichage de progression à une fréquence moins
rapide (solution envisagée)...mais reste à trouver où ?
Je vais chercher, merci !
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
"Jean" <http:// a écrit dans le message de news:
unxf%23%Bonjour,
vous pouvez faire quelque chose comme ce qui suit (... et la charge CPU
sera *fortement* réduite comparée au 100% actuel ;-) ) :
http://automation.eu.tf/Temporisation_VBS.HTA (VBScript * voir code
ci-dessous)
http://automation.eu.tf/Temporisation_JS.HTA (JScript * voir code
ci-dessous)
La récursive de Michel est bonne aussi.
Au lieu de passer par une récursive j'utilise les méthodes setInterval et
clearInterval du DOM.
Cette dernière peut aussi s'avérer utile pour interompre la temporisation
à tout instant (via un bouton par ex.).
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer language='vbs'>
Executer_Notepad_Apres_10_sec 'Simulation
titre="Sans titre"
c=""
Debut
Sub Debut
'....Code....
D1.InnerText="Prêt"
'Suite
SetTimeout "Suite",1000 'Simulation
End Sub
Sub Suite
D1.InnerText="En cours "
c=SetInterval("Temporisation",150)
End Sub
Sub Temporisation
If Not CreateObject("WScript.Shell")_
.AppActivate(titre) Then
D1.InnerTextÑ.InnerText&"... "
Else
Fin
End If
End Sub
Sub Fin
ClearInterval(c)
'....Code....
D1.InnerText="Terminé"
End Sub
Sub Executer_Notepad_Apres_10_sec
SetTimeout _
"CreateObject(""WScript.Shell"")"&_
".Run ""notepad.exe""",10000
End Sub
</script>
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer>
executer_notepad_apres_10_sec() //Simulation
titre='Sans titre'
debut()
function debut(){
//....Code....
D1.innerText='Prêt'
//suite()
setTimeout('suite()',1000) //Simulation
}
function suite(){
D1.innerText='En cours '
c=setInterval('temporisation()',150)
}
function temporisation(){
if(!new ActiveXObject('WScript.Shell').
appActivate(titre)){
D1.innerText+='... '
}else{
fin()
}
}
function fin(){
clearInterval(c)
//....Code....
D1.innerText='Terminé'
}
function executer_notepad_apres_10_sec(){
setTimeout
(
'new ActiveXObject("WScript.Shell")'+
'.run("notepad.exe")'
,10000
)
}
</script>
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
Amicalement,
Jean - JMST
Belgium
"sympatix" a écrit dans le message de news:Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad
(par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour !
Dans votre exemple, effectivement, tout fonctionne au poil, car la démo se
sert d'une tempo en guise de code.
Mais, si je veux appliquer ça dans une boucle récursive (une collection de
5000 fichiers par exemple), soit:
1: Je place un affichage de progression avec tempo à chaque passage de
boucle (pas possible avec une tempo)
2: Je cherche à placer l'affichage de progression à une fréquence moins
rapide (solution envisagée)...mais reste à trouver où ?
Je vais chercher, merci !
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
"Jean" <http://courrier@jmst.be.tf> a écrit dans le message de news:
unxf%23%23fKFHA.732@TK2MSFTNGP12.phx.gbl...
Bonjour,
vous pouvez faire quelque chose comme ce qui suit (... et la charge CPU
sera *fortement* réduite comparée au 100% actuel ;-) ) :
http://automation.eu.tf/Temporisation_VBS.HTA (VBScript * voir code
ci-dessous)
http://automation.eu.tf/Temporisation_JS.HTA (JScript * voir code
ci-dessous)
La récursive de Michel est bonne aussi.
Au lieu de passer par une récursive j'utilise les méthodes setInterval et
clearInterval du DOM.
Cette dernière peut aussi s'avérer utile pour interompre la temporisation
à tout instant (via un bouton par ex.).
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer language='vbs'>
Executer_Notepad_Apres_10_sec 'Simulation
titre="Sans titre"
c=""
Debut
Sub Debut
'....Code....
D1.InnerText="Prêt"
'Suite
SetTimeout "Suite",1000 'Simulation
End Sub
Sub Suite
D1.InnerText="En cours "
c=SetInterval("Temporisation",150)
End Sub
Sub Temporisation
If Not CreateObject("WScript.Shell")_
.AppActivate(titre) Then
D1.InnerTextÑ.InnerText&"... "
Else
Fin
End If
End Sub
Sub Fin
ClearInterval(c)
'....Code....
D1.InnerText="Terminé"
End Sub
Sub Executer_Notepad_Apres_10_sec
SetTimeout _
"CreateObject(""WScript.Shell"")"&_
".Run ""notepad.exe""",10000
End Sub
</script>
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer>
executer_notepad_apres_10_sec() //Simulation
titre='Sans titre'
debut()
function debut(){
//....Code....
D1.innerText='Prêt'
//suite()
setTimeout('suite()',1000) //Simulation
}
function suite(){
D1.innerText='En cours '
c=setInterval('temporisation()',150)
}
function temporisation(){
if(!new ActiveXObject('WScript.Shell').
appActivate(titre)){
D1.innerText+='... '
}else{
fin()
}
}
function fin(){
clearInterval(c)
//....Code....
D1.innerText='Terminé'
}
function executer_notepad_apres_10_sec(){
setTimeout
(
'new ActiveXObject("WScript.Shell")'+
'.run("notepad.exe")'
,10000
)
}
</script>
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
Amicalement,
Jean - JMST
Belgium
"sympatix" <totosympatix@tototele2.fr> a écrit dans le message de news:
ONZtdBWKFHA.4092@tk2msftngp13.phx.gbl...
Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad
(par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Bonjour !
Dans votre exemple, effectivement, tout fonctionne au poil, car la démo se
sert d'une tempo en guise de code.
Mais, si je veux appliquer ça dans une boucle récursive (une collection de
5000 fichiers par exemple), soit:
1: Je place un affichage de progression avec tempo à chaque passage de
boucle (pas possible avec une tempo)
2: Je cherche à placer l'affichage de progression à une fréquence moins
rapide (solution envisagée)...mais reste à trouver où ?
Je vais chercher, merci !
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
"Jean" <http:// a écrit dans le message de news:
unxf%23%Bonjour,
vous pouvez faire quelque chose comme ce qui suit (... et la charge CPU
sera *fortement* réduite comparée au 100% actuel ;-) ) :
http://automation.eu.tf/Temporisation_VBS.HTA (VBScript * voir code
ci-dessous)
http://automation.eu.tf/Temporisation_JS.HTA (JScript * voir code
ci-dessous)
La récursive de Michel est bonne aussi.
Au lieu de passer par une récursive j'utilise les méthodes setInterval et
clearInterval du DOM.
Cette dernière peut aussi s'avérer utile pour interompre la temporisation
à tout instant (via un bouton par ex.).
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer language='vbs'>
Executer_Notepad_Apres_10_sec 'Simulation
titre="Sans titre"
c=""
Debut
Sub Debut
'....Code....
D1.InnerText="Prêt"
'Suite
SetTimeout "Suite",1000 'Simulation
End Sub
Sub Suite
D1.InnerText="En cours "
c=SetInterval("Temporisation",150)
End Sub
Sub Temporisation
If Not CreateObject("WScript.Shell")_
.AppActivate(titre) Then
D1.InnerTextÑ.InnerText&"... "
Else
Fin
End If
End Sub
Sub Fin
ClearInterval(c)
'....Code....
D1.InnerText="Terminé"
End Sub
Sub Executer_Notepad_Apres_10_sec
SetTimeout _
"CreateObject(""WScript.Shell"")"&_
".Run ""notepad.exe""",10000
End Sub
</script>
<!---8<---Temporisation_VBS.HTA---Jean-JMST-Belgium--->
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
<div idÑ></div>
<script defer>
executer_notepad_apres_10_sec() //Simulation
titre='Sans titre'
debut()
function debut(){
//....Code....
D1.innerText='Prêt'
//suite()
setTimeout('suite()',1000) //Simulation
}
function suite(){
D1.innerText='En cours '
c=setInterval('temporisation()',150)
}
function temporisation(){
if(!new ActiveXObject('WScript.Shell').
appActivate(titre)){
D1.innerText+='... '
}else{
fin()
}
}
function fin(){
clearInterval(c)
//....Code....
D1.innerText='Terminé'
}
function executer_notepad_apres_10_sec(){
setTimeout
(
'new ActiveXObject("WScript.Shell")'+
'.run("notepad.exe")'
,10000
)
}
</script>
<!---8<---Temporisation_JS.HTA---Jean-JMST-Belgium--->
Amicalement,
Jean - JMST
Belgium
"sympatix" a écrit dans le message de news:Bonjour !
J'ai une page HTA, dans laquelle un script s'éxécute à l'ouverture.
Je voudrais afficher un message dynamique à l'aide d'innertext, durant
l'éxécution du script, mais je n'y arrive pas.
Dans l'exemple ci-dessous, le script tourne en boucle, tant que notepad
(par
exemple) n'est pas lancé.
Normalement, il devrait s'afficher:
1: Prêt (pendant un temps très court, même trop court pour être vu...mais
c'est pas le problème)
2: Script lancé (tant que notepad n'est pas lancé)
3: Fin du script (dès l'ouverture de notepad)
Or, il n'en est rien, je n'ai que "prêt" pendant l'exécution du script,
puis, "Fin du script".
(je précise que j'ai essayé avec la balise "defer", bien qu'à priori, ça
n'ai aucun rapport dans mon cas ?)
Ou est l'erreur ?
merci d'avance !
------Couper ici-------
<HTML>
<div idÑ> Prêt </div> <BR>
<HTA:APPLICATION></HTA:APPLICATION>
<SCRIPT Language = VBSCRIPT>
Set oShell = CreateObject("WScript.Shell")
A = "Script lancé"
B = "Fin du script"
While not oShell.appactivate ("sans titre")
D1.innertext = A
Wend
D1.innertext = B
</SCRIPT>
</HTML>
------Couper ici-------
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Rien n'empêche de mettre l'attente à 2 ms, ce qui amène à 10 secondes.
J'ai même poussé le vice plus loin: j'ai mis 0, et ça marche !
Re
Rien n'empêche de mettre l'attente à 2 ms, ce qui amène à 10 secondes.
Mais, le calcul ne s'applique pas comme ça. Si la fenêtre est ouverte, il
n'y aura pas d'attente. Dans le meilleur des cas, il n'y a que le temps
d'exécution du code.
MCI
Rien n'empêche de mettre l'attente à 2 ms, ce qui amène à 10 secondes.
J'ai même poussé le vice plus loin: j'ai mis 0, et ça marche !
Re
Rien n'empêche de mettre l'attente à 2 ms, ce qui amène à 10 secondes.
Mais, le calcul ne s'applique pas comme ça. Si la fenêtre est ouverte, il
n'y aura pas d'attente. Dans le meilleur des cas, il n'y a que le temps
d'exécution du code.
MCI
Rien n'empêche de mettre l'attente à 2 ms, ce qui amène à 10 secondes.
J'ai même poussé le vice plus loin: j'ai mis 0, et ça marche !
Re
Rien n'empêche de mettre l'attente à 2 ms, ce qui amène à 10 secondes.
Mais, le calcul ne s'applique pas comme ça. Si la fenêtre est ouverte, il
n'y aura pas d'attente. Dans le meilleur des cas, il n'y a que le temps
d'exécution du code.
MCI