我想找回更多幫助。 幾周前我仍然和我的問題在同一個項目上,但又陷入了另一個困境。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