From 436edbb8be14de3c95ed642004736599c0887629 Mon Sep 17 00:00:00 2001 From: kkkelvinkk Date: Sun, 21 Jul 2019 01:03:55 +0800 Subject: [PATCH] Fix VBA for .Net4 --- DotNetToJScript/Resources/vba_template.txt | 7 +++++-- DotNetToJScript/VBAGenerator.cs | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/DotNetToJScript/Resources/vba_template.txt b/DotNetToJScript/Resources/vba_template.txt index 8f05e30..b3f1de2 100644 --- a/DotNetToJScript/Resources/vba_template.txt +++ b/DotNetToJScript/Resources/vba_template.txt @@ -19,7 +19,10 @@ Function Run() Dim stm As Object, fmt As Object, al As Object Set stm = CreateObject("System.IO.MemoryStream") - If stm Is Nothing Then + Dim dotnetversion As String + dotnetversion = "%DOTNETVERSION%" + + If dotnetversion <> "v2" Then %MANIFEST% Set ax = CreateObject("Microsoft.Windows.ActCtx") @@ -52,4 +55,4 @@ Function Run() DebugPrint Err.Description Err.Clear End If -End Function \ No newline at end of file +End Function diff --git a/DotNetToJScript/VBAGenerator.cs b/DotNetToJScript/VBAGenerator.cs index 0f6efa8..a5f24e7 100644 --- a/DotNetToJScript/VBAGenerator.cs +++ b/DotNetToJScript/VBAGenerator.cs @@ -89,6 +89,7 @@ public string GenerateScript(byte[] serialized_object, string entry_class_name, { string hex_encoded = BitConverter.ToString(serialized_object).Replace("-", ""); StringBuilder builder = new StringBuilder(); + string dotnetversion = (version != RuntimeVersion.v2) ? "v4" : "v2"; for (int i = 0; i < hex_encoded.Length; i++) { @@ -119,6 +120,9 @@ public string GenerateScript(byte[] serialized_object, string entry_class_name, ).Replace( "%ADDEDSCRIPT%", additional_script + ).Replace( + "%DOTNETVERSION%", + dotnetversion ); } }