我想找回更多帮助。 几周前我仍然和我的问题在同一个项目上,但又陷入了另一个困境。Winmove()不适用于citrix应用程序
我有一个多屏幕(赢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
为什么我使用excel和vba可能会问?我写了一个方便的实用程序,其行为有点像spy ++ in。它列出了工作表上的所有进程和子进程,这样我可以单击一个句柄,然后单击关闭或移动等,然后测试我的代码不需要改变代码的不同应用程序。这就是我所知道的关闭移动等,对于直接在Windows中运行的应用程序工作正常,但不适用于通过citrix运行的应用程序。对我来说有趣的是我可以移动主要的Citrix窗口jut没有任何产生的过程... – perfo
啊,我看到了关于vb.net的困惑我已经标记了问题vb.net。虽然我的测试不在vb.net,但我的最终解决方案是,我很乐意接受Vb.net或VB6的建议。我如何添加一个VB6标志到我的问题?谢谢 – perfo
会有人对以下内容有任何意见。如果我将移动代码放到客户端应用程序中,以便在启动时将其自动移动到某个屏幕位置?这会工作吗?我怎么能发送它的信息告诉它去哪里尽管是否有可能将一些东西添加到命令行语句中?我在Citrix论坛上提出了这个问题,但我认为我是唯一的成员,并且我对自己没有任何帮助;-) – perfo