IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Erreur 70: permission denied


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Erreur 70: permission denied
    Bonjour à tous,
    J'essaie depuis quelques jours de déboguer une application.

    Cette application est une page en HTML qui fait appel a des fonctions JavaScript et VBScript. Cette page HTML est automatiquement affiché dans IE7 au démarrage de la machine (on ne doit pouvoir que utiliser cette page HTML et rien d'autre).

    Lorsqu'à la fin de ma page HTML je clique sur le bouton imprimer qui fait appel à la fonction JavaScript imprimer() parfois tout se déroule très bien, mais parfois une erreur 70: permission denied se déclenche.

    Cette erreur se produit de temps en temps de façon aléatoire, les conditions sont toujours différentes. Ce qui est étonnant, c'est que nous sommes loger en administrateur sur la machine et qu'on a pratiquement tous les droits, sauf ceux qu'on a retiré (dans les stratégies de groupe) pour "brider" la machine afin de ne pouvoir utiliser que l'application et imprimer le résultat, mais rien faire d'autre sur ce poste.

    Voici la fonction imprimer en JavaScript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function imprimer() {
    	//mon code
    		window.print() ;
    	}
    Tout a la fin de mon code HTML, j'utilise du VBScript afin d'imprimer directement le résultat lorsque j'appuie sur le bouton imprimer de ma page HTML, sans passer par la prévisualisation ni le choix de l'imprimante.
    Voici le code VBScript utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <script  type="text/vbscript" language="VBScript"> 
    			// <![CDATA[
    				sub window_onunload 
    					 on error resume next 
    					 set WB = nothing 
    					 on error goto 0 
    				end sub 
     
    				sub print 
    					 OLECMDID_PRINT = 6 
    					 OLECMDEXECOPT_DONTPROMPTUSER = 2 
    					 OLECMDEXECOPT_PROMPTUSER = 1 
    					 on error resume next 
     
    					 if DA then 
    						' call WB.ExecWB(7, OLECMDEXECOPT_DONTPROMPTUSER,1) 
    						call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) 
    					 else 
    						  call WB.IOleCommandTarget.Exec(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER,"","","") 
    					 end if 
     
    					 if err.number <> 0 then 
    						  if DA then 
    							   alert "Erreur :" & err.number & " : " & err.description 
    						  else 
    							   handle_error 
    						  end if 
    					 end if 
    					 on error goto 0 
    				end sub 
     
    				if DA then 
    					 wbvers="8856F961-340A-11D0-A96B-00C04FD705A2" 
    				else 
    					 wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B" 
    				end if 
     
    				document.write "<OBJECT ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:" 
    				document.write wbvers & """> </OBJECT>" 
    		// ]]>
    	</script>
    Ma question est pourquoi cette erreur 70:permission denied se produit? Et pourquoi se produit-elle que quelques fois seulement et pas tout le temps?

    J'ai déjà essayé de regarder dans les outils d'administration "l'observateur d'événements" au niveau de la sécurité, du système, de l'application et d'internet explorer, rien de particulier ne se produit lorsque ce bug se produit.

    J'ai également essayé d'accélérer l'apparition du bug en mettant la fonction imprimer() dans une boucle, mais malgré le fait d'imprimer des centaines de fois (en ayant enlever le papier de l'imprimante), rien ne se produit, même en mettant une pause lors de la boucle.

    J'ai déjà regardé au niveau de l'imprimante, nous avons tous les droits pour imprimer à n'importe quel moment.

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    avant de lancer une commande exec, il faut vérifier si l'objet est prêt à l'exécuter
    je ferais donc un test sur la propriété ReadyState pour m'asssurer qu'elle est READYSTATE_COMPLETE
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci omen999 pour la réponse.

    J'ai essayé, malheureusement l'erreur n'est pas là. La page est bien complètement chargée et l'objet aussi.

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    je n'ai pas compris : l'erreur vient du code javascript ou vbscript ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    J'ai essayé, malheureusement l'erreur n'est pas là
    peux-tu nous montrer ton code de test ?
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Plus de détails
    L'erreur est une "Erreur : 70: permission refusée: Erreur d'exécution Microsoft VBScript".

    Donc, j'en déduis que l'erreur est une erreur du à VBScript et non à JavaScript.

    Le lien qu'il y a dans l'application entre la partie VBScript et JavaScript, c'est qu'on utilise du JavaScript pour demander l'impression window.print() de la page.
    Mais qu'on utilise du VBscript pour ne pas afficher la fenêtre d'impression (Fichier/Imprimer/Choisir l'imprimante), mais directement imprimer la page.

    Ainsi la fonction JavaScript d'impression se trouve dans un fichier et le code VBScript se trouve à la fin du code source html de l'application.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <html>
    	<body>
    		<!--Le code de l'application... -->
    		<div id="page_n">
    			<!--Du code destiné à être imprimé... -->
    			<button onclick="imprimer();">Impression</button>
    		</div>
     
    				<!-- Du code de mise en page de l'impression...-->
     
    				<script type="text/javascript" src="script.js"></script>
    				<script  type="text/vbscript" language="VBScript"> 
    					// <![CDATA[
    						sub window_onunload 
    							 on error resume next 
    							 set WB = nothing 
    							 on error goto 0 
    						end sub 
     
    						sub print 
    							//Do Until IE.ReadyState = READYSTATE_COMPLETE then
    							//Loop
    							 OLECMDID_PRINT = 6 
    							 OLECMDEXECOPT_DONTPROMPTUSER = 2 
    							 OLECMDEXECOPT_PROMPTUSER = 1 
    							 on error resume next 
     
    							 if DA then 
    								' call WB.ExecWB(7, OLECMDEXECOPT_DONTPROMPTUSER,1) 
    								call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) 
    							 else 
    								  call WB.IOleCommandTarget.Exec(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER,"","","") 
    							 end if 
     
    							//err.raise 70 Erreur provoqué volontairement
    							 if err.number <> 0 then 
    								  if DA then 
    										//L'erreur s'affiche ici, mais l'origine est inconnue
    									   alert "Erreur :" & err.number & " : " & err.description & " : " & err.source
    								  else 
    									   handle_error 
    								  end if 
    							 end if 
    							 on error goto 0 
     
    						end sub 
     
    						if DA then 
    							 wbvers="8856F961-340A-11D0-A96B-00C04FD705A2" 
    						else 
    							 wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B" 
    						end if 
     
    						document.write "<OBJECT ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:" 
    						document.write wbvers & """> </OBJECT>" 
    				// ]]>
    			</script>
    	</body>
    </html>

    Par contre, comme dit précédemment, cette application se trouve sur une machine bridé afin que les utilisateurs puissent seulement utiliser cette applic et rien d'autre.
    Voici la liste des stratégies de groupes qui ont été modifiées sur la machine hôte pour limiter les utilisateurs: (pièce jointe)
    (Pour faire apparaître les stratégies de groupe, il faut taper "gpedit.msc" dans une fenêtre d'exécuter).

    Les autres stratégies de groupe n'ont pas été modifiées.

    Merci pour votre aide.
    Images attachées Images attachées

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Il faudrait que tu positionne des Wscript.echo un peu partout pour savoir exactement où est l'erreur.

    Qu'est ce que WB ? un objet IE ?

    Où est la fonction handle_error ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. Fonction Copy() - Message d'Erreur permission Denied
    Par clementh dans le forum Langage
    Réponses: 4
    Dernier message: 01/05/2009, 18h25
  2. Réponses: 3
    Dernier message: 13/04/2008, 02h40
  3. Erreur JScript : permission denied
    Par luimême dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/12/2007, 12h18
  4. [pg_dump]:Permission denied comme erreur
    Par guestCam dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/10/2007, 17h45
  5. erreur au lancement et permission denied
    Par jibe74 dans le forum Installation
    Réponses: 5
    Dernier message: 05/04/2007, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo