请回来寻求更多帮助。 几个星期前,我仍然和我的问题在同一个项目上,但又坚持了下来。
我有一个多屏幕(win 7)设置,我正在尝试编写一个应用程序,它将启动许多应用程序并将它们移动/调整到正确的位置。我这是在vb.net中作为控制台应用程序。 根据我收到的最后一个问题的帮助,我现在可以启动,移动,调整大小,关闭我需要的所有应用程序吧。 不幸的是,我需要通过Citrix运行两个应用程序。 一个是Excel表格。 我可以找到这些窗口的窗口处理并选择它们或者关闭它们但是MoveWin()或SetWindowPos()似乎没有做任何事情虽然我要移动的窗口的标题栏变成蓝色所以我知道它正在选择它.. 任何帮助将不胜感激。 代码的一部分粘贴在下面。我现在正在excel中对此进行测试,一旦工作,我将把它移植到我的控制台应用程序中...... 感谢...
Public Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const SWP_FRAMECHANGED = &H20 'Fully redraw the window in its new position.
Sub MoveWin()
Dim retval As Long
Dim hwnd As Long
Dim RetWhnd As Long
hwnd = '123456'
retval = SetWindowPos(hwnd, RetWhnd, 0, 0, 600, 400, SWP_FRAMECHANGED) ' Application.hwnd
End Sub
答案 0 :(得分:0)
我不在我的家用机器上,所以我无法确认这一点,但我相当确定VB 6在编译对话框(可能是最后一个)上有一个选项卡,它有一个与Citrix相关的选项复选框。如果不存在,则可能在项目属性中。
答案 1 :(得分:0)
以防这有助于其他人。我联系了Citrix的人,他们基本上不知道答案。我至少想知道是否有可能。无论如何,就我所知,移动命令似乎不可能跨越Citrix鸿沟。我提出的解决方案是将代码的实际移动部分留在远程运行的应用程序中。这是通过Citrix运行的应用程序的构建代码,用于查看本地计算机上的ini文件并从中接收指令。 这现在效果很好,但只适用于能够运行容器语言或以某种方式包装的应用程序..