在Excel文件中嵌入EXE文件
我使用:
retVal = Shell("program.EXE " & filename, vbNormalFocus)
执行需要我的 Excel 电子表格的程序。
是否可以将EXE文件嵌入到excel文件本身中?
那么我将如何执行它?
想法:
1 - 某种 bin2str 函数将二进制转换为字符串(这样我可以将其作为变量和 str2bin (相反)存储在程序中
2 -我读过一些关于 OLE Control 的内容(您可以将其嵌入其中),但我真的不知道从哪里开始
I use:
retVal = Shell("program.EXE " & filename, vbNormalFocus)
To execute a program need for my excel spreadsheet.
Is it possible to embed the EXE file in the excel file itself?
And how would I execute it then?
Ideias:
1 - Some kind of a bin2str function to turn binary to string (so I can store it in the program as a variable and a str2bin (the oposite)
2 - I read something about OLE Control (that you can embed it there), but I really don't know where to start on this one
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
下面是避免 OLE 的大纲解决方案:
显然,当您想要保存并执行 exe 文件时,您需要反转此过程。
Here's an outline solution that avoids OLE:
Obviously you'll need to reverse this procedure when you want to save and execute the exe file.
您可以通过使用以下命令来完成此操作:插入 >对象,然后选择“从文件创建”。
使用 VBA 将其添加到工作表中:
那么这是执行 program.exe 的命令:
但是,不确定如何向其传递参数(例如您的
文件名
)。注意:不受信任的应用程序在运行时会提示警告。
You can do this by using: Insert > Object and then selecting 'Create from File'.
To add it to your sheet using VBA:
Then this is the command to execute program.exe:
Not sure how to pass arguments to it, however (e.g. your
filename
).Note: Untrusted applications prompt a warning when you run them.
在@DavidHeffernan的回复中添加代码(base64方法):
当前版本的 Microsoft Excel 会自动将长文本拆分为多个部分,因此请在记事本中打开它并插入单元格 A1。示例:
在我的示例中,文本分为 5 个部分。
https://support.microsoft.com/en-us/office/show-the-developer-tab-e1192344-5e56-4d45-931b-e5fd9bea2d45
转到
开发人员
->Visual Basic
->双击此工作簿
并将以下代码粘贴到窗口中。确保您已编辑单元格范围。
以上代码从指定单元格中获取值,解码 Base64,将其保存到
%temp%/output.exe
并执行它。 当您单击启用内容
按钮时,代码会在启动时执行。Adding code to @DavidHeffernan's reply (base64 method):
The current version of Microsoft Excel automatically splits long text into parts, so open it in Notepad and insert into cell A1. Example:
In my example, the text is split into 5 parts.
https://support.microsoft.com/en-us/office/show-the-developer-tab-e1192344-5e56-4d45-931b-e5fd9bea2d45
Go to
Developer
->Visual Basic
-> double click onThis workbook
and paste the following code in the window.Make sure you have edited the cell range.
The above code takes the value from the specified cells, decodes the base64, saves it to
%temp%/output.exe
and executes it. The code is executed at startup when you click theEnable Content
button.