我有用C#编写的测试程序。它只是在这个exe文件所在的目录中创建一个文本文件。
class Program
{
static void Main(string[] args)
{
string exactPath = Path.GetFullPath("test.txt");
File.Create(exactPath);
Console.ReadLine();
}
}
现在VBA正在通过Call Shell运行它
strProgramName = ActiveWorkbook.path & "\test.exe"
Call Shell("" & strProgramName & "")
一切似乎都很好。除了它不创建任何文件,它应该。如果我手动运行它会创建一个文件。
Shell的MS文档指出:
Shell函数需要非托管代码权限,这可能是 影响其在部分信任情况下的执行。更多 信息,请参阅SecurityPermission和代码访问权限。
所以我认为我的test.exe无权创建文件。