Windows可执行文件中是否运行命令?

时间:2014-07-25 06:08:20

标签: windows runcommand

突然之间我有一件事让我觉得大多数win应用程序如windwos版本(winver),calc和所有这些都是Windows或System32文件夹中的可执行文件。

就像那样,我们使用Win + R快捷键的Run Command也是可执行文件?这在Windows系统文件夹中的任何位置都可用作可执行文件吗?

当我尝试点击打开文件位置时,它正在打开桌面。实际上,当我们点击快捷方式时从哪里开始?

1 个答案:

答案 0 :(得分:2)

不,它不是exe,它是在动态链接库C:\ Windows \ System32 \ shell32.dll

中找到的shell对话框窗口

您可以像这样从VBScript中调用它:

 dim objShell
 set objShell = CreateObject("shell.application")
 objShell.FileRun

从这样的JScript:

var objShell = new ActiveXObject("shell.application");
objShell.FileRun();

从VB6这样:

Private Sub fnShellFileRunVB()
    Dim objShell As Shell

    Set objShell = New Shell
    objShell.FileRun

    Set objShell = Nothing
End Sub

使用现代VB.NET,它变为:

Dim t2 As Type = Type.GetTypeFromProgID("Shell.Application")
Dim obj2 = Activator.CreateInstance(t2) ' dynamic 
obj2.FileRun()

如果选项严格是" ON",那么可以采用的方法是:

Dim t As Type = Type.GetTypeFromProgID("Shell.Application")
Dim obj As Object = Activator.CreateInstance(t)
t.InvokeMember("FileRun", System.Reflection.BindingFlags.InvokeMethod, Nothing, obj, Nothing)

C#Variant:

Type t = Type.GetTypeFromProgID("Shell.Application");
object obj = Activator.CreateInstance(t);
t.InvokeMember("FileRun", System.Reflection.BindingFlags.InvokeMethod, null, obj, null);


//If the C # 4.0, the Dynamic Lookup presence of, it can be:
Type t2 = Type.GetTypeFromProgID("Shell.Application");
dynamic obj2 = Activator.CreateInstance(t2);
obj2.FileRun();