frenchyfred
Messages postés6Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention11 juillet 2007
-
9 juil. 2007 à 15:26
David78390
Messages postés197Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention10 juillet 2011
-
12 déc. 2007 à 19:48
Bonjour,
Je développe actuellement une petite applic qui permette d'intégrer des scripts autohotkey pour automatiser certaines actions. Le but est d'avoir des onglets pour chaque catégorie, chaque onglet contenant des scripts qui se lancent depuis des boutons avec pour certains des paramètres passés selon ce qu'on saisit dans des champs texte.
L'autohotkey ne permettant pas d'avoir une interface graphique à proprement parler, je suis parti sur du hta, j'arrive à lancer mes scripts via du VBS, c'est OK.
Par contre, j'aimerais afficher le contenu d'un fichier hta dans une frame html, comme je le ferai avec une page html.
Le souci c'est que je ne sais pas comment par exemple depuis un clic sur un onglet ouvrir un fichier hta et l'afficher dans une frame définie, quand j'appelle un hta en mettant une frame pour l'ouvrir, j'ai un pop-up à la place...
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 9 juil. 2007 à 15:47
Bonjour,
>>un fichier hta dans une frame html
à priori, il suffit de mettre le paramètre application="yes"
dans la balise <frame> ( avec la page principale en .htm ou .hta )
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 9 juil. 2007 à 15:50
je n'avais pas tout lu...
>>quand j'appelle un hta en mettant une frame pour l'ouvrir
c'est le src="nom.hta" qui fixe la page à charger...
j'espère que que tu "appelles" comme çà... car ouvrir une pop-up.... bizarre.
La frame "tabs.html" contient des onglets sur lesquels je clique pour afficher du contenu dans la frame "content", là où je voudrais afficher un fichier hta différent selon l'onglet sélectionné.
Le lien dans le fichier "tabs.html" est tout bête : .
La frame "content" devrait afficher par défaut le contenu de "content.hta", pour le moment j'obtiens seulement le warning de sécurité Windows... si je choisis "ouvrir", il m'ouvre une 2ème fenêtre, ce n'est pas ce que je veux, j'aimerais que le contenu apparaisse directement dans la frame.
Ensuite ce hta serait remplacé par celui que j'appelle depuis les onglets.
frenchyfred
Messages postés6Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention11 juillet 2007 9 juil. 2007 à 18:21
Désolé j'ai eu le clic un peu rapide... j'ai corrigé ça.
En fait ça fonctionne bien quand j'appelle un fichier htm depuis le lien, mais si j'appelle un fichier hta dans la frame t2, j'ai le warning Windows et une 2ème fenêtre s'ouvre au lieu de s'afficher dans la frame...
Voici le code que j'ai utilisé : [javascript:void(parent.t2.location.href='content.hta'); lien]
Je ne sais pas si ce que je veux faire est vraiment possible?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 10 juil. 2007 à 10:13
alors, par exemple : la page principale : hta les frames : htm
[javascript:void(parent.t2.location.href='content.htm'); lien]
les ActiveX nécessaires dans la page principale.
frenchyfred
Messages postés6Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention11 juillet 2007 10 juil. 2007 à 13:08
J'ai bien saisi comment appeler une page dans une frame grâce à cette fonction.
Mais si je comprends bien, il faut donc un ActiveX pour que j'affiche un hta dans une frame html?
Je n'y connais pas grand chose en ActiveX, comment m'y prendre concrètement au niveau du code?
Petite précision, mon applic sera un hta qui tournera en local sur des postes client, avec donc une page en hta séparée en frames dans lesquelles je voudrais appeler d'autres fichiers hta.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 10 juil. 2007 à 13:45
>>
Mais si je comprends bien, il faut donc un ActiveX pour que j'affiche un hta dans une frame html?
pas du tout.
on utilise un .hta pour éviter les messages d'avertissements
lors de l'utilisation d'un Activex.
si tu n'utilises pas d'ActiveX, reste en .htm
si tu utilises des activeX, mets les dans la page principale,
et appelle la .hta
les frames, appelle les htm et, s'ils doivent
utiliser les ActiveX, ce sera ceux de la page principale.
frenchyfred
Messages postés6Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention11 juillet 2007 10 juil. 2007 à 15:28
Je n'ai jamais parlé d'ActiveX, j'ai le warning sans en utiliser, simplement en essayant d'intégrer un hta dans une frame.
Si j'utilise du hta, c'est pour lancer des scripts (via du VBS), ce que je ne pourrais pas faire en html.
Je dois avoir un fichier hta dans mes frames, pas du html, sinon je ne peux pas utiliser ces scripts...
Je ne sais toujours pas comment simplement afficher le contenu d'un fichier hta tout simple dans une frame html depuis un lien?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 juil. 2007 à 06:06
je n'ai pas tout suivi...
>>Je n'ai jamais parlé d'ActiveX, j'ai le warning sans en utiliser,
si tu as un message d'utilisation d'ActiveX, c'est que tu en utilises...
>>simplement en essayant d'intégrer un hta dans une frame.
ah... si c'est ce message, ( chargement hta ), mets un htm.
>>
c'est pour lancer des scripts (via du VBS),
qu'appelle tu lancer des Scripts VBS ?
comment tu les lances ? pas avec un ActiveX ?
pourquoi du vbs d'ailleurs... presque tout est faisable en JavaScript
>>ce que je ne pourrais pas faire en html.
quelques très très très rares choses sont uniquement faisable en .HTA
je vais réexpliquer :
la page principale, un .hta, qui contient les ActiveX.. si besoin est
( mais sinon, s'il n'y a pas d'ActiveX... des .HTM suffisent !
les frames : des .htm, qui si elles utilisent les ActiveX, appellent la page principale ....
La frame "tabs.html" contient des onglets. Quand je clique sur ces onglets, j'aimerais charger le contenu d'un autre fichier hta (fichier.hta) dans la frame "content".
Fichier.hta
<html>
<head><title>Lancement script ahk depuis hta</title><HTA:APPLICATION VER="1.0" NAVIGABLE = "yes">
<script type="text/Vbscript">
<!--
Sub monBouton_onclick()
Set manipuleFichiers = CreateObject("WScript.shell")
manipuleFichiers.run("script.ahk") 'On lance le script ahk!zzzz
End Sub
-->
</script>
</head>
<!-- Je vais créer un bouton nommé "monBouton" -->
</html>
J'utilise du hta et pas du html car je veux lancer un script ahk (autohotkey) depuis là.
Actuellement, si je charge mon hta depuis un onglet par la commande [javascript:void(parent.content.location.href='fichier.hta'); Onglet1] il m'ouvre mon fichier.hta mais après m'avoir demandé si je veux l'exécuter ou le sauver, ce n'est pas un message d'ActiveX (je n'ai peut-être pas été assez clair, désolé).
David78390
Messages postés197Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention10 juillet 2011 11 déc. 2007 à 22:37
Salut Frenchyfred,
je tombe sur ton probleme, et voila deja comment shunter le message de windows pour ouvrir le hta a partir de ta frame d'onglet.
Reste a placer le hta dans la frame contents.
Je te tiens au courant si j'y arrive
PS: Je prend le post un peu en cour, mais si ca peut t'aider
Dis moi si je fais fausse route
Fichier index.hta: desolé si j'en ai mis des tonnes dans les options mais c'est utile si tu te lances dans le HTA
<html>
<HEAD>
<TITLE>Probleme</TITLE>
<HTA:APPLICATION
ID = "PRB"
APPLICATIONNAME = "PRB" |utile pour le singleinstance
CAPTION = "yes" | barre de titre
BORDER = "thin" | style bordure thick, dialog, none ou thin
ICON = "**.ico"
SHOWINTASKBAR = "yes"| apparait dans la barre des titres
SINGLEINSTANCE = "no"| ouvrir le HTA autant de fois que l'on veut
WINDOWSTATE = "" | état d'initialisation du HTA Normal, Maximize, ou Minimize
SCROLL = "no" | autorise barre de défilement
SCROLLFLAT = "yes" |barre de défilement en relief
VERSION = "2.6"
SELECTION = "yes" |Selection du texte et clic droit autorisés
CONTEXTMENU = "yes" |clic droit autorisé
MAXIMIZEBUTTON = "yes" |Autorise les boutton Agrandir
MINIMIZEBUTTON = "yes" |Retrcir
NAVIGABLE = "yes" |Autorise les lien dans le HTA
>
</head>
Fichier tabs.html:
le fichier ou tu a en réalité tes onglets (si j'ai bien compris)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>tabs</TITLE>
<!--pour ouvrir un hta a partir d'un hta sans message d'erreur-->
<script language ="VBScript" type= "text/Vbscript">
'ASTUCE POUR NE PAS AVOIR DE MESSAGE D ERREUR
Sub EnvoieDocHTA(lien)
Set manipuleFichiers = CreateObject("WScript.shell")
manipuleFichiers.run(lien) 'On lance le HTA !
End Sub
</script>
</HEAD>
[# test]
</HTML>
Fichier PageHTAaCharger.hta: (celui que tu a fourni plus haut)
Si j'ai bien tout suivit, c'est a partir de ce fichier que tu veux lancer le autokey, non????
<html>
<head>
<title>Lancement script ahk depuis hta</title>
<HTA:APPLICATION VER ="1.0" NAVIGABLE = "yes">
<script type="text/Vbscript">
<!--
Sub monBouton_onclick()
Set manipuleFichiers = CreateObject("WScript.shell")
manipuleFichiers.run("script.ahk") 'On lance le script ahk!zzzz
End Sub
-->
</script>
</head>
<!-- Je vais créer un bouton nommé "monBouton" -->
David78390
Messages postés197Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention10 juillet 2011 12 déc. 2007 à 00:15
Progression...
change le fichier tabs.html par ca: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>tabs</TITLE>
<!--pour ouvrir un hta a partir d'un hta sans message d'erreur-->
<script language="VBScript" type="text/Vbscript">
'ASTUCE POUR NE PAS AVOIR DE MESSAGE D ERREUR
Sub EnvoieHTA(lien)
Set manipuleFichiers = CreateObject("WScript.shell")
manipuleFichiers.run(lien) 'On lance le HTA !
End Sub
</script>
<script language="javascript" type="text/javascript">
function Place()
{
parent.frames.document.getElementById('content').src="PageHTAaCharger.hta";
}
function Place2()
{
parent.frames.document.getElementById('content').src="EnvoieHTA('PageHTAaCharger.hta')";
}
</Script>
</HEAD>
[# test1]
[PageHTAaCharger.hta test2]
[# test3]
[# test4]
</HTML>
Fin.
Test 1 ouvre le fichier hta SANS message d'erreur.
Test2 et 3 ouvre le fichier hta AVEC message d'erreur
Test4 change bien la frame du bas, mais avec quoi?? Là je bug.
Mais on ouvre bien un hta dans une frame, sans message=> je tien le bon bout, reste a comprendre ce qui ce passe.