ActiveX et ouverture d'un fichier word [Résolu]

Kirostaz 29 Messages postés mercredi 14 novembre 2007Date d'inscription 10 juin 2008 Dernière intervention - 14 nov. 2007 à 10:36 - Dernière réponse : barny80 1 Messages postés vendredi 25 novembre 2005Date d'inscription 10 juin 2010 Dernière intervention
- 10 juin 2010 à 16:44
Bonjour,

Je travaille sur in intranet.
Mon but est de pouvoir ouvrir un fichier Word présent sur le serveur depuis une page php via ce lien :

<td background="img/ouvrir0.gif" style="cursor:hand;" width="198" height="24" onclick="ouvriractivex();">
Ouvrir le document
</td>

qui appelle donc cette fonction JS :

{
try {
wsh = new ActiveXObject("WScript.Shell");
wsh.run ('cmd /c "<?php echo $monchemin;?><?php echo $nomfic;?>.rtf"');
}
catch(err)
{
txt="Erreur lors de la création de l'objet ActiveX.\n\n"
txt+="Informations : " + err.description + "\n\n"
txt+="Veuillez contacter votre administrateur réseau.\n\n"
alert(txt)
}
}



Et j'ai le droit à cette erreur : Un composant ActiveX ne peut pas créer un objet.

J'ai essayé pas mal de solutions :
- Ajouter le serveur en site de confiance
- Modifier les registres
- Ajouter les DLL via regserv
etc etc

On a meme essayé un script de modification au lancement de la session :

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]
@=""
"1201"=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\atlas]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\compta]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\tera]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\atlas]
@=""
"http"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\compta]
@=""
"http"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\tera]
@=""
"http"=dword:00000001



Ca a fonctionné un temps mais ça met une m**** pas possible .


Le but est qu'en fait chaque personne qui ouvre le docuement, ouvre celui présent sur le serveur ( d'où la ligne de commande ) afin que les modifications apporté au document Word soit directement appliqué sur le fichier serveur et non sur une copie locale du fichier, et ce afin que si qqn vient consulter le fichier par la suite, il voit les modifications.


Auriez vous une solution pour régler mon problème ou une solution alternative ( sans upload/download de l'utilisateur ).

Merci :)
Afficher la suite 

12 réponses

Répondre au sujet
Kirostaz 29 Messages postés mercredi 14 novembre 2007Date d'inscription 10 juin 2008 Dernière intervention - 15 nov. 2007 à 13:37
+3
Utile
J'avais éssayé cela aussi, malheureusement sans succès en local non plus, avec la même erreur.

J'ai donc tenté un coup de bluff : réinitialiser IE.

Options Internet > Avancés > Réinitiliser . Cette option où il est précisé qu'il faut utiliser ça qu'en cas d'extrême recours ...

Bon j'ai re-réglé ce qui devait l'être sans toucher à aucune option concernant l'ActiveX, sans même rajouter le serveur aux sites de confiances, et là Bingo, il l'a éxécuté en me demandant si je voulais bien le faire tourner parcequ'il étais pas signé, mais après validation mon word c'est bien ouvert avec le bon fichier.
J'ai donc modifié le paramètre de sécurité concernant les scripts non signés, et non voilà repartis comme en l'an 40.

Sincèrement, je sais pas du tout d'où venais le soucis, tout ce que je peux dire c'est que maintenant ça fonctionne.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Kirostaz
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 15 nov. 2007 à 13:54
+3
Utile
>>tout ce que je peux dire c'est que maintenant ça fonctionne.
    nickel... c'est l'essentiel
>>je sais pas du tout d'où venait le soucis
>>Options Internet > Avancés > Réinitiliser
    tu avais du modifier je ne sais quoi  je ne sais où qui  interdisait les ActiveX


<hr />                Cordialement            Bul         [mon Site]     [M'écrire]


l'essentiel c'est le principal ( et lycée de Versailles d'ailleurs )
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 14 nov. 2007 à 11:34
0
Utile
bonjour,




    d'abord, IE doit être autorisé à traiter les ActiveX

       / Outils / Options Internet / Sécurité
            choisir la zone ( ici, à priori, Intranet Local )
             cliquer sur personaliser la niveau
             et cocher les "choses voulues" dans "Contrôles ActiveX et Plug-ins"

       rien d'autre n'est à faire ( et surtout pas au niveau du registre )

    ensuite, et surtout ! JavaScript, gère les données
        sur le micro du Client,  pas ceux sur le serveur.
          
    soit, Word ( multi-utilisateurs ) à installer sur le serveur
    soit, développer l'accès aux données du serveur dans un ActiveX
    soit, fichier serveur => fichier client, MAJ, fichier client ==> serveur
    soit...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 14 nov. 2007 à 11:40
0
Utile
soit langage serveur qui envoit ce fichier ( ajax ou pas )
    dans une page vers le client qui renvoie les données mise à jour.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
Kirostaz 29 Messages postés mercredi 14 novembre 2007Date d'inscription 10 juin 2008 Dernière intervention - 14 nov. 2007 à 13:05
0
Utile
J'ai déjà fait tout ça, IE accepte les controles ActiveX que se soit en zone intranet ou internet.

Je sais aussi que JS est coté client, mais comme chaque user à les droits sur le répertoire ou sont stocké les documents, on peux donc les lancés via \\serveur\doc\doc.rtf dans l'éxécuteur de commande. Je veux donc lancer ceci dans l'éxécuteur du client , ce qui va donc ouvrir le bon fichier ( stocké sur le serveur ) dans le Word du client, qui va pouvoir le modifier directement sans passé par une copie locale.

Le soucis vient du fait que l'objet ActiveX ne se créer pas, mais IE semble correctement configuré, accepte les ActiveX, et donc je ne vois pas du tout d'ou peut venir le soucis.
Commenter la réponse de Kirostaz
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 14 nov. 2007 à 13:44
0
Utile
>>Le soucis vient du fait que l'objet ActiveX ne se crée pas,
    pas tout à fait : les autorisations ne permettent pas de le créer
>>IE semble correctement configuré
    probablement pas ?
    si on lançait directement Word, ça voudrait dire que Word n'est pas
       installé sur ce poste, mais sur new ActiveXObject("WScript.Shell");
       la question ne se pose pas, à part autoriser les ActiveX en local...


<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 14 nov. 2007 à 13:47
0
Utile
et attention d'ailleurs au fait de lancer ça part shell,
ça ne va pas ouvrir le fichier dans Word, mais dans
le programme chargé de gérer les fichiers .rtf
( et chez moi, par exemple, ce n'est pas Word
    qui est limité aux fichiers .doc )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
Kirostaz 29 Messages postés mercredi 14 novembre 2007Date d'inscription 10 juin 2008 Dernière intervention - 14 nov. 2007 à 14:08
0
Utile
Par défaut, ici Word est configuré pour ouvrir le rtf, mais encore, là n'est pas vraiment le soucis, du moment que l'utilisateur puisse l'editer correctement et le sauvegarder sur le serveur et non en local, ça m'irais déjà bien !

Voici la configuration IE de l'Intranet Local :
Commenter la réponse de Kirostaz
Kirostaz 29 Messages postés mercredi 14 novembre 2007Date d'inscription 10 juin 2008 Dernière intervention - 14 nov. 2007 à 14:09
0
Utile
La 1 c'est l'ajout du serveur en site de confiance, et les 3 autres la configuration de ce qui touche a l'activeX dans IE
Commenter la réponse de Kirostaz
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 14 nov. 2007 à 18:04
0
Utile
essayer ce qui quit
d'abord     1° avec un fichier en local
puis           2° avec un ficher sur le serveur

<hr size= "2" width="100%" />

<html>
<head>
<script type="Text/JavaScript">
function ouvre()
{    var app_word = new ActiveXObject("Word.Application");
     app_word.Application.Visible = true;
     app_word.documents.open("

nom du fichier.doc

");
}
</script>
</head>

</html>


<hr size ="2" width="100%" />
et dis nous....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
Kirostaz 29 Messages postés mercredi 14 novembre 2007Date d'inscription 10 juin 2008 Dernière intervention - 15 nov. 2007 à 17:44
0
Utile
C'est bien ça le truc, c'est que j'avais rien touché avant , et que , encore plus bizarre ( mais venant d'Ie .... ), ma requete de création d'objet ne marchait pas sur mon poste ... on dit donc que ça viens de mon poste, et que IE est mal configuré, soit, mais ça ne marchais pas chez les autres non pls, alors comment expliquer qu'une fois que j'ai réinitialiser mon IE, et que le miens , ça marche chez moi et chez tout le monde.....

A l'informatique quand tu nous tiens :)

Merci quand même de votre aide rapide !
Commenter la réponse de Kirostaz
barny80 1 Messages postés vendredi 25 novembre 2005Date d'inscription 10 juin 2010 Dernière intervention - 10 juin 2010 à 16:44
0
Utile
Bonjour,

par rapport au message de Bultez (du mercredi 14 novembre 2007 à 18:04)
Pour moi ça fonctionne avec un fichier local mais pas avec un distant.
Je ne sais pas quoi mettre dans nom de fichier : http://10.99.99.99:8080/Web/fichiers/fic1.doc ou fichiers/fic1.doc ou ...
Le problème indiqué par le debuggeur est que le nom de fichier est invalide.

merci

Barny
Commenter la réponse de barny80

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.