Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在用户';谁的机器?_Javascript_Vba - Fatal编程技术网

使用javascript在用户';谁的机器?

使用javascript在用户';谁的机器?,javascript,vba,Javascript,Vba,我有一个Excel宏,它运行在我们公司使用的工作簿中。我已经使单元格看起来像超链接,所以当有人双击链接时,它会打开IBM大型机并加载一些数据。我正在为我们编写另一个基于web的应用程序,我想知道是否可以实现同样的功能。我在网上没有看到任何让我相信我能做到这一点的东西,但我想我还是要问一下 Public SODD As String Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As B

我有一个Excel宏,它运行在我们公司使用的工作簿中。我已经使单元格看起来像超链接,所以当有人双击链接时,它会打开IBM大型机并加载一些数据。我正在为我们编写另一个基于web的应用程序,我想知道是否可以实现同样的功能。我在网上没有看到任何让我相信我能做到这一点的东西,但我想我还是要问一下

Public SODD         As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 2 And (Target.Row >= 1) Then
    SODD = Target.Value
    Call SOLookup
End If
End Sub


Sub SOLookup()

Dim autECLPS                                            As Object
Dim s                                                   As New AutSess


AppActivate "3270 Terminal"
s.SetConnectionByName ("A")
s.autECLPS.StartCommunication
s.autECLPS.SendKeys "[Clear]"
s.autECLOIA.WaitForInputReady (500)
s.autECLPS.SetText "SODD " & SODD
s.autECLOIA.WaitForInputReady (500)
s.autECLPS.SendKeys "[ENTER]"
s.autECLOIA.WaitForInputReady (500)


End Sub
这会将IBM大型机和销售订单号中的类型加载到其屏幕中,并点击Enter


我能用类似Javascript的东西完成同样的壮举吗?

Javascript和浏览器中运行的任何其他脚本都不允许在用户计算机上本地执行任何文件。这是个好主意。想象一下,如果任何网站可以在你的计算机上随机执行程序,会发生什么情况

Internet资源不受信任,因此不允许它们在本地计算机上执行任何操作


如果该网站是在贵公司的内部网中运行的,可能有一种方法可以使用专有的MS技术和Internet Explorer以及正确配置的受信任站点,但我不想为此费心。

Javascript可能不会在用户的本地环境中执行文件。但是,服务器端语言可以满足您的要求。例如,可以使用AJAX(javascript)调用PHP脚本,该脚本可以执行批处理文件(.bat),然后运行宏。PHP文件可以有如下简单的代码

system("cmd /c C:[path to your macro/.bat file]");

同样,这一切都取决于您的配置和环境。总而言之:Web浏览器->AJAX->PHP->宏。

是的,这正是我想要的。我完全可以编写一个AJAX脚本来实现这一点。非常感谢。但是请注意,PHP在服务器上运行,因此脚本需要在那里。如果你想处理用户计算机上的数据,你必须先上传数据。