Comment convertir un VBScript en fichier exécutable (EXE)? [fermé]
j'ai cherché des informations pour convertir un VBScript (*.vbs)
à un exécutable et s'est rendu compte que la plupart des outils disponibles enveloppent en fait le script dans l'exécutable. Essayé quelques outils et ça n'a pas fonctionné aussi bien que prévu. J'ai essayé IExpress (sous Windows XP) pour créer le fichier CAB D'auto-extraction Win32, mais il n'a pas été correctement invoqué sur les machines Windows 7.
alors je cherche un moyen de compiler les vbs en exe. J'essaie de transférer mon script actuel dans VB Express 2008 mais je n'ai aucune connaissance préalable de Visual Basic ici. Il y a beaucoup d'erreurs, mais j'essaie encore.
quelqu'un peut-il me donner des conseils sur la façon de procéder à partir d'ici? Je veux dire, serait un archive auto-extractible être le chemin à parcourir au lieu d'un fichier exécutable autonome<!--7? Mais dites comme Winzip que je ne sais pas comment le faire tourner le script après l'extraction.
des idées?
6 réponses
il n'y a aucun moyen de convertir un VBScript (.fichier vbs) dans un fichier exécutable (.exe file) parce que VBScript est ce n'est pas un langage compilé. le processus de conversion du code source en code exécutable natif s'appelle "compilation", et il n'est pas soutenu par script des langues comme le VBScript.
Certes, vous pouvez ajouter votre script à une archive auto-extractible en utilisant quelque chose comme WinZip, mais tout ce qui va faire est de le compresser. Il est douteux que la taille du fichier diminuera sensiblement, et comme c'est un fichier de texte brut pour commencer, il est vraiment pas nécessaire de le compresser. Le seul but de l' auto-extractible archive est que le logiciel de décompression (comme WinZip) n'est pas nécessaire sur l'ordinateur de l'utilisateur final pour pouvoir extrait ou "décompresser" le fichier. Si elle n'est pas compressé, en premier lieu, c'est un point discutable.
alternativement, comme vous l'avez mentionné, il y a des moyens pour envelopper les fichiers de code VBScript dans un fichier exécutable autonome, mais ce ne sont que des enveloppeurs qui exécutent automatiquement le script (dans son état actuel, non compilé) lorsque l'utilisateur double-clique sur le .EXE. Je suppose que ça peut avoir ses avantages, mais il ne ressemble pas à ce que vous recherchez.
afin de vraiment convertir votre VBScript en un fichier exécutable, vous allez devoir le réécrire dans une autre langue qui peut être compilé. Visual Basic 6 (la dernière version de VB, avant L'introduction du Framework .NET) est extrêmement similaire en syntaxe à VBScript, mais supporte la compilation de code natif. Si vous déplacez votre code VBScript vers VB 6, Vous pouvez le compiler dans un exécutable natif. L'exécution de l' .le fichier exe exigera que l'utilisateur ait le VB 6 bibliothèques d'Exécution installés, mais ils viennent construits dans la plupart des versions de Windows qui se trouvent maintenant dans la nature.
alternativement, vous pouvez aller de l'avant et de faire le saut vers Visual Basic .NET, qui reste un peu similaire dans la syntaxe à VB 6 et VBScript (bien qu'il ne sera pas n'importe où près d'une migration de couper-coller). VB.NET les programmes compileront aussi à an .exe, mais ils nécessitent l'exécution. NET Framework pour être installé sur l'ordinateur de l'utilisateur. Heureusement, cela est aussi devenu banal, et il peut être facilement redistribué si vos utilisateurs ne l'ont pas. Vous avez mentionné cette l'itinéraire dans votre question (portant votre script actuel en VB Express 2008, qui utilise VB.NET), mais que vous aviez beaucoup d'erreurs. C'est ce que je veux dire par là que c'est loin d'être une migration pure et simple. Il y a quelques énorme
vous pouvez utiliser le logiciel VBSedit pour convertir votre code VBS en .EXE. Vous pouvez télécharger la version gratuite d'Internet et installer applilcation vbsedit sur votre système et convertir les fichiers au format exe.
Vbsedit est une bonne application pour VBscripter
Plus d'info
pour trouver un compilateur, vous aurez 1 par version .net installée, tapez une invite de commande.
dir c:\Windows\Microsoft.NET\vbc.exe /a/s
Windows Forms
pour une version Windows Forms (pas de fenêtre console et nous n'avons pas le temps de créer des formulaires - bien que vous le puissiez Si vous le voulez).
compiler la ligne dans une invite de commande.
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe "%userprofile%\desktop\VBS2Exe.vb"
Texte pour VBS2EXE.vb
Imports System.Windows.Forms
Partial Class MyForm : Inherits Form
Private Sub InitializeComponent()
End Sub
Public Sub New()
InitializeComponent()
End Sub
Public Shared Sub Main()
Dim sc as object
Dim Scrpt as string
sc = createObject("MSScriptControl.ScriptControl")
Scrpt = "msgbox " & chr(34) & "Hi there I'm a form" & chr(34)
With SC
.Language = "VBScript"
.UseSafeSubset = False
.AllowUI = True
End With
sc.addcode(Scrpt)
End Sub
End Class
L'utilisation de ces paramètres optionnels vous donne une icône et un manifeste. Un manifeste permet de spécifier fonctionner normalement, exécuter élevée si l'admin, seulement exécuter élevée.
/ win32icon: spécifie un fichier D'icône Win32 (.ico) pour les ressources Win32 par défaut.
/ win32manifest: le fichier fourni est intégré dans la section du Manifeste de la sortie PE.
En théorie, j'ai l'UAC désactivé ne peut donc pas tester, mais ce fichier texte sur le bureau et l'appeler vbs2exe.manifeste, sauf UTF-8.
La ligne de commande
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe /win32manifest:"%userprofile%\desktop\VBS2Exe.manifest" "%userprofile%\desktop\VBS2Exe.vb"
Le manifeste
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0"
processorArchitecture="*" name="VBS2EXE" type="win32" />
<description>Script to Exe</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security> <requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"
uiAccess="false" /> </requestedPrivileges>
</security> </trustInfo> </assembly>
espérons qu'il ne fonctionnera maintenant qu'en tant qu'administrateur.
Donne Accès À une multitude d'Objets de
voici un exemple donnant l'accès vbscript à un objet .NET.
Imports System.Windows.Forms
Partial Class MyForm : Inherits Form
Private Sub InitializeComponent()
End Sub
Public Sub New()
InitializeComponent()
End Sub
Public Shared Sub Main()
Dim sc as object
Dim Scrpt as string
sc = createObject("MSScriptControl.ScriptControl")
Scrpt = "msgbox " & chr(34) & "Hi there I'm a form" & chr(34) & ":msgbox meScript.state"
With SC
.Language = "VBScript"
.UseSafeSubset = False
.AllowUI = True
.addobject("meScript", SC, true)
End With
sc.addcode(Scrpt)
End Sub
End Class
Pour Intégrer des informations de version
télécharger vbs2exe.fichier res de https://skydrive.live.com/redir?resid=E2F0CE17A268A4FA-oui.121 and put on desktop.
Télécharger ResHacker de http://www.angusj.com/resourcehacker
ouvrir vbs2exe.fichier res dans ResHacker. Edit away. Cliquez sur le bouton compiler. Cliquez sur Fichier menu - Enregistrer.
Tapez
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe /win32manifest:"%userprofile%\desktop\VBS2Exe.manifest" /win32resource:"%userprofile%\desktop\VBS2Exe.res" "%userprofile%\desktop\VBS2Exe.vb"
voici quelques solutions possibles...
je n'ai pas essayé toutes ces moi encore, mais je vais essayer tous bientôt.
Remarque:
1) VB Script to EXE Converter (PAS de Compilateur): (Gratuit) l'exe produit semble être un vrai EXE. à Partir de leur site web: VBS to EXE est un convertisseur en ligne gratuit qui ne convertit pas seulement vos fichiers vbs en exe mais aussi: 1 - chiffrez le code source de votre fichier vbs en utilisant la clé de 128 bits. Cette solution doit fonctionner même si wscript/cscript n'est pas installé sur l'ordinateur. en gros, cela crée un vrai .EXE. À l'intérieur de la création .EXE est un" moteur " qui remplace wscript/cscript, et une copie chiffrée de votre code de Script VB. Ce moteur de remplacement exécute votre code en mémoire sans appeler wscript / cscript pour le faire. 2) compiler et convertir VBS en EXE...: la version actuelle est 3.5. ce n'est pas une solution gratuite. Ils ont un procès de 15 jours. Après cela, vous devez acheter une licence pour un montant élevé de 44,96 $(licence maison/non commercial), ou 89,95 $(licence D'entreprise/usage commercial). Il semble que cela fonctionne d'une manière similaire à la solution précédente. selon un billet du forum il y a: WSH n'est pas nécessaire si l'option "compiler" a été utilisée, puisque ExeScript 3) chiffrez le script avec Microsoft ".vbs .vbe" outil de cryptage. Apparemment, cela ne fonctionne pas pour Windows 7/8, et il est possible qu'il existe des moyens de "décrypter" le .fichier vbe. Au moment d'écrire ceci, Je ne pouvais pas trouver un lien de travail pour télécharger ceci. Si j'en trouve une, je l'ajouterai à cette réponse.
vbs2exe.com.
2-vous permet d'appeler l'API win32
3-Si vous avez des problèmes avec windows vista particulièrement quand UAC est activé, alors vous pouvez donner VBS à EXE un essai.
4-Pas besoin de wscript.exe pour faire fonctionner tes vbs.
5 - Votre script n'est jamais enregistré sur le disque dur comme d'autres convertisseurs. c'est un vrai exe pas un extracteur.
ExeScript
Post:" un fichier Exe a encore besoin de Windows Scripting Host (WSH) ??"
implémente son propre hôte de script. ...
vous pouvez essayer VbsEdit. Obtenez la dernière version de VbsEdit D'Adersofthttp://www.vbsedit.com c'est un petit téléchargement mais c'est un outil puissant pour créer et éditer des fichiers vbs et les convertir en exécutables sans déballer dans un dossier temporaire. (sauf si vous avez une ancienne version comme version 4.x.x.x) j'utilise ce programme depuis 2008, et il est gratuit pour evaluer forever mais vient avec un rappel à activer et chaque fois que vous démarrez votre script à partir de la fenêtre vbsedit vous faudra attendre quelques secondes, Ou vous pouvez l'acheter pour $60 pour enlever ces petits ennuis.
Contrairement À ScriptCryptor, l'exe converti n'aura pas de limitations si vous êtes encore en train d'évaluer, il fonctionnera sans fenêtres supplémentaires indésirables.
Vous pouvez le faire avec PureBasic et MsScriptControl
Tout ce que vous devez faire est de coller le MsScriptControl à L'éditeur Purebasic et ajouter quelque chose comme ça ci-dessous
InitScriptControl()
SCtr_AddCode("MsgBox 1")