Hoe kan ik een VBScript converteren naar een uitvoerbaar (EXE) bestand?

Ik had rondgekeken naar informatie om een VBScript (*.vbs)naar een uitvoerbaar bestand te converteren en realiseerde me dat de meeste beschikbare tools het script in feite in het uitvoerbare bestand verpakken. Heb een paar tools geprobeerd en het werkte niet zo goed als verwacht. Ik heb IExpress (in Windows XP) geprobeerd om het Win32-zelfextractie-cab-bestand te maken, maar het werd niet correct aangeroepen op Windows 7-machines.

Dus ik ben op zoek naar een manier om de vbs in exe te compileren. Ik probeer mijn huidige script over te zetten naar VB Express 2008 maar ik heb hier geen voorkennis van Visual Basic. Er zijn veel fouten, maar ik ben nog steeds aan het proberen.

Kan iemand me alsjeblieft advies geven over hoe ik hier verder moet? Ik bedoel, zou een zelfuitpakkend archiefde juiste keuze zijn in plaats van een op zichzelf staand uitvoerbaar bestand? Maar zeg net als Winzip dat ik niet weet hoe ik het script moet laten uitvoeren na extractie.

Enig idee?


Antwoord 1, autoriteit 100%

Er is geen manier om een VBScript (.vbs-bestand) om te zetten in een uitvoerbaar (.exe-bestand) omdat VBScript geen gecompileerde taalis.Het proces van het converteren broncode in native uitvoerbare code wordt “compilatie”genoemd en wordt niet ondersteund door scripting talen zoals VBScript.

U kunt uw script zeker toevoegen aan een zelfextractiefarchief met iets als Winzip, maar alles wat het doet is het comprimeren. Het is twijfelachtig dat de bestandsgrootte merkbaar is, en aangezien het een gewoon tekstbestand is om mee te beginnen, is het echt niet nodig om het helemaal te comprimeren. Het enige doel van een zelfextractie archief is dat decompressiesoftware (zoals WinZip) niet vereist is op de computer van de eindgebruiker om extract of “decomprimeren” het bestand te kunnen gebruiken . Als het in de eerste plaats niet wordt gecomprimeerd, is dit een MOOT-punt.

Als alternatief, zoals u al zei, er zijn manieren om VBScript-codebestanden in een stand-alone uitvoerbaar bestand in te wikkelen, maar dit zijn gewoon wrappers die het script automatisch uitvoeren (in zijn huidige, niet-gecompileerde toestand) wanneer de gebruiker dubbelklikt op de. EXE-bestand. Ik veronderstel dat dat zijn voordelen kan hebben, maar het klinkt niet als wat je zoekt.

Om uw VBScript echt in een uitvoerbaar bestand te converteren, moet u het herschrijven in een andere taal die heeft gecompileerd . Visual Basic 6 (de nieuwste versie van VB, voordat het .NET Framework werd geïntroduceerd) is uitermate gelijkaardig in Syntaxis naar VBScript , maar ondersteunt het compileren van de inheemse code. Als u uw VBScript-code verplaatst naar vb 6, kunt u deze samenstellen in een native uitvoerbaar bestand. Het uitvoeren van het .exe-bestand vereist dat de gebruiker de VB 6 run-time bibliotheken geïnstalleerd, maar ze zijn gebouwd in de meeste versies van Windows die nu in het wild worden gevonden.

U kunt ook doorgaan en de sprong maken naar Visual Basic .NET, wat in syntaxis enigszinsgelijk blijft aan VB 6 en VBScript (hoewel het niet in de buurt komt van een knip-en-plak-migratie). VB.NET-programma’s compileren ook naar een .exe-bestand, maar daarvoor moet de .NET Framework-runtime op de computer van de gebruiker zijn geïnstalleerd. Gelukkig is dit ook gemeengoed geworden en kan het gemakkelijk opnieuw worden verspreid als uw gebruikers het toevallig niet hebben. Je noemde deze route in je vraag (je huidige script overzetten naar VB Express 2008, dat VB.NET gebruikt), maar dat je veel fouten kreeg. Dat is wat ik bedoel dat het verre van een knip-en-plak migratie is. Er zijn enkele enormeverschillen tussen VB 6/VBScript en VB.NET, ondanks enkele oppervlakkige syntactische overeenkomsten. Als u hulp wilt bij het migreren over uw VBScript, kunt u hier een vraag stellen op Stack Overflow. Uiteindelijk is dit waarschijnlijk de beste manier om te doen wat je wilt, maar ik kan je niet beloven dat het eenvoudig zal zijn.


Antwoord 2, autoriteit 89%

U kunt VBBedit-software gebruiken om uw VBS-code naar een .exe-bestand te converteren. U kunt de gratis versie van internet downloaden en de vbsedit-toepassing op uw systeem installeren en de bestanden converteren naar exe-indeling.

Vbsedit is een goede applicatie voor VBscripter’s


Antwoord 3, autoriteit 16%

Hier zijn een paar mogelijke oplossingen…

Ik heb ze nog niet allemaal zelf geprobeerd, maar ik ga ze binnenkort allemaal proberen.

Opmerking:ik heb geen persoonlijke of financiële connectie met een van deze tools.

1) VB Script naar EXE Converter (NIET Compiler): (Gratis)
vbs2exe.com.

De geproduceerde exe lijkt een echte EXE te zijn.

Vanaf hun website:

VBS to EXE is een gratis online-omzetter die uw VBS-bestanden niet alleen naar EXE converteert, maar ook:

1- Versleutel uw VBS-broncode met 128 bit-toets.
2- Hiermee kunt u Win32 API bellen
3- Als u problemen heeft met Windows Vista, vooral wanneer UAC is ingeschakeld, kunt u VBS geven om te proberen.
4- Geen behoefte aan WScript.exe om uw VBS meer uit te voeren.
5- Uw script wordt nooit opgeslagen op de harde schijf zoals sommige andere converters. Het is een echte EXE, geen extractor.

Deze oplossing zou moeten werken, zelfs als WScript / CScript niet op de computer is geïnstalleerd.

Kortom, dit creëert een echt .exe-bestand. In de gemaakte .exe is een “motor” die WScript / CSCRIPT vervangt en een gecodeerde kopie van uw VB-scriptcode. Deze vervangende motor voert uw code uit in het geheugen zonder WScript / CSCRIPT te bellen om het te doen.


2) compileren en converteren VBS naar EXE …:
exescript

De huidige versie is 3.5.

Dit is geen vrije oplossing. Ze hebben een proefperiode van 15 dagen. Daarna moet je een licentie kopen voor een flinke $ 44,96 (thuislicentie / noncommercial) of $ 89,95 (bedrijfslicentie / commercieel gebruik).

Het lijkt op een vergelijkbare manier te werken aan de vorige oplossing.

Volgens een forumpost daar:
Post: “Een EXE-bestand heeft nog steeds Windows Scripting Host nodig (WSH ) ??

WSH is niet vereist als de optie “Compile” is gebruikt, sinds exsencript
implementeert zijn eigen scripting-host. …


3) Versleutel het script met Microsoft’s “.vbs to .vbe” -cryptie-tool.

Blijkbaar werkt dit niet voor Windows 7/8, en het is mogelijk dat er manieren zijn om het .vbe-bestand te “decoderen”. Op het moment van schrijven kon ik geen werklink vinden om dit te downloaden. Als ik er een vind, zal ik het aan dit antwoord toevoegen.


Antwoord 4, Autoriteit 16%

Meer info

Om een ​​compiler te vinden, heeft u 1 per .NET-versie geïnstalleerd, typt u een opdrachtprompt.

dir c:\Windows\Microsoft.NET\vbc.exe /a/s

Windows-formulieren

Voor een Windows-formulierenversie (geen console-venster en we komen niet rond om de vormen te creëren – hoewel u kunt als u wilt).

Compileer lijn in een opdrachtprompt.

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe "%userprofile%\desktop\VBS2Exe.vb"

Tekst voor 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

Het gebruik van deze optionele parameters geeft u een pictogram en manifest. Met een manifest kunt u de uitvoering als normaal opgeven, verhoogd worden uitgevoerd als admin, alleen verhoogd wordt uitgevoerd.

/ Win32icon: Specificeert een WIN32-pictogrambestand (.ico) voor de standaard Win32-bronnen.

/ Win32Manifest: het meegeleverde bestand is ingebed in het kennelijke gedeelte van de uitgang PE.

In theorie, ik heb UAC UIT, dus kan niet testen, maar zet dit tekstbestand op het bureaublad en noem het VBS2EXE.MANIFST, opslaan als UTF-8.

De opdrachtregel

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe /win32manifest:"%userprofile%\desktop\VBS2Exe.manifest" "%userprofile%\desktop\VBS2Exe.vb"

het manifest

<?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>

Hopelijk zal het nu alleen als admin uitvoeren.

Geef toegang tot de objecten

Hier is een voorbeeld geven van de VBScript-toegang tot een .NET-object.

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 

 

Versie-info insluiten

 

Download vbs2exe.res-bestand van https://skydrive.live.com/redir? resid=E2F0CE17A268A4FA!121en zet op desktop.

 

ResHacker downloaden van http://www.angusj.com/resourcehacker

 

Open het bestand vbs2exe.res in ResHacker. Weg bewerken. Klik op de knop Compileren. Klik op het menu Bestand – Opslaan.

 

Typ

 

"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"

Antwoord 5

Je kunt VbsEdit proberen. Download de nieuwste versie van Adersoft’s VbsEdit http://www.vbsedit.comhet is een kleine download, maar het is een krachtige tool om vbs-bestanden te maken en te bewerken en ze om te zetten in uitvoerbare bestanden zonder ze uit te pakken naar een tijdelijke map. (tenzij je een oude versie zoals versie 4.xxx hebt) Ik gebruik dit programma sinds 2008 en het is gratis om voor altijd te evalueren, maar het wordt geleverd met een herinnering om te activeren en elke keer dat je je script start vanuit het vbsedit-venster heb je om een paar seconden te wachten, of je kunt het kopen voor $60 om die kleine ergernissen weg te nemen.
In tegenstelling tot ScriptCryptorheeft de geconverteerde exe geen beperkingen als je nog aan het evalueren bent, het zal draaien zonder ongewenste extra vensters.


Antwoord 6

U kunt dit doen met PureBasic en MsScriptControl

Het enige wat u hoeft te doen is de MsScriptControl in de Purebasic-editor te plakken en iets als dit hieronder toe te voegen

InitScriptControl()
SCtr_AddCode("MsgBox 1")

Other episodes