伙计们,我已经为此奋斗了几个星期了。我们有一个专有的企业应用程序在我们组织的瘦客户端上运行。通过这个应用程序,我们可以在后台应用 VBA 脚本来执行简单的功能。过去添加按钮来打开 IE 并将它们定向到某些网站以输入数据、打开 Calc 等。
最近我一直在处理下面的代码。它是在服务器上使用启动完整桌面和 explorer.exe 的 RDP 会话开发的。我注意到,如果 explorer.exe 没有运行,那么代码会在函数中读取“ For Each oWin In oShApp.Windows ”,并显示“运行时错误'429'”。
但是,如果我在 ThinClient 上编写脚本以启动 explorer.exe(这很糟糕,因为它启用了开始栏和任务栏),它启动了桌面和全部功能,并且它作为登录的瘦客户端用户运行得很好。我已经阅读了一些关于在使用远程应用程序而不是完整桌面时运行的“有限外壳”的信息,并且想知道它周围是否有任何东西,而不启用开始菜单和任务栏?
请参阅下面的代码。感谢您的帮助,克里特岛
Private Sub cmdHomePage_Click()
Dim ie As Object
Dim sMatch As String
sMatch = "http://www.companyweb.com"
On Error Resume Next
Set ie = GetIEatURL(sMatch & "*")
On Error GoTo 0
If Not ie Is Nothing Then
ShowWindow ie.hwnd, 9
BringWindowToTop ie.hwnd
Else
Dim strHome
Dim strAPP
strHome = "c:\progra~1\intern~1\iexplore.exe www.companyweb.com"
strAPP = Shell(strHome, vbNormalFocus)
End If
End Sub
Function GetIEatURL(sMatch As String) As Object
Dim ie As Object, oShApp As Object, oWin As Object
Set oShApp = CreateObject("Shell.Application")
For Each oWin In oShApp.Windows
If TypeName(oWin.Document) = "HTMLDocument" Then
Set ie = oWin
If LCase(ie.LocationURL) Like LCase(sMatch) Then
Set GetIEatURL = ie
Exit For
End If
End If
Next
Set oShApp = Nothing
Set oWin = Nothing
End Function