2017-06-19 2 views
0

Le code suivant s'exécute correctement si j'ai des autorisations d'administrateur. Mais cela ne fonctionne pas du tout pour un utilisateur.Comment faire pour résoudre l'erreur CATIA.FileSelectionBox() sans définir "regserver option" en tant qu'administrateur?

Sub CATMain() 
On Error Resume Next 
Dim strpath As String 

strpath = CATIA.FileSelectionBox("Select file", "*.xlsx", 
CatFileSelectionModeOpen) 

End Sub 

Je pense CATIA.FileSelectionBox() fonctionne très bien dans CATScript je pensais donc à terme un CATScript avec Application.ExecuteScript(). Lorsque j'essaie de le faire, une autre erreur apparaît "Fonction ou interface marquée comme restreinte ...". Quelqu'un peut-il me donner une méthode alternative? Serait très apprécié.

+0

Est-ce tout le code que vous exécutez? Ce type de problème se produit généralement lors de l'invocation d'une méthode à partir d'une variable typée. Simple en le déclarant comme une variante au lieu de cela, le type réel corrige le problème. – AugustoQ

+0

Merci, je sais que l'erreur "Fonction ou interface marquée comme restreinte ..." pourrait être résolue comme vous le dites, mais cela n'a pas fonctionné. Merci encore! J'ai déjà résolu le problème. –

Répondre

0

Ok, j'ai trouvé ma réponse. Merci de m'avoir laissé publier ma question ici. Ensuite, je poste un code qui fonctionne très bien. La seule chose qui reste incomplète est que je ne peux pas ajouter de filtres pour les types de fichiers comme * .CATParts ou * .CATProducts dans ce code. Mais ça marche déjà pour moi.

Function SelectFile() 
' File Browser via HTA 
' Author: Rudi Degrande, modifications by Denis St-Pierre and Rob van der 
Woude 
' Features: Works in Windows Vista and up (Should also work in XP). 
'   Fairly fast. 
'   All native code/controls (No 3rd party DLL/ XP DLL). 
' Caveats: Cannot define default starting folder. 
'   Uses last folder used with MSHTA.EXE stored in Binary in 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32]. 
'   Dialog title says "Choose file to upload". 
' Source: https://social.technet.microsoft.com/Forums/scriptcenter/en- 
US/a3b358e8-15ae-4ba3-bca5-ec349df65ef6/windows7-vbscript-open-file-dialog- 
box-fakepath?forum=ITCG 

Dim objExec, strMSHTA, wshShell 

SelectFile = "" 

' For use in HTAs as well as "plain" VBScript: 
strMSHTA = "mshta.exe ""about:" & "<" & "input type=file id=FILE>" _ 
     & "<" & "script>FILE.click();new 
ActiveXObject('Scripting.FileSystemObject')" _ 
     & 
".GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);" & "<" & 
"/script>""" 
' For use in "plain" VBScript only: 
' strMSHTA = "mshta.exe ""about:<input type=file id=FILE>" _ 
'   & "<script>FILE.click();new 
ActiveXObject('Scripting.FileSystemObject')" _ 
'   & 
".GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0); 
</script>""" 

Set wshShell = CreateObject("WScript.Shell") 
Set objExec = wshShell.Exec(strMSHTA) 

SelectFile = objExec.StdOut.ReadLine() 

Set objExec = Nothing 
Set wshShell = Nothing 
End Function 

Amitiés