none
[VB2008] SetCursorPos滑鼠Y軸不明原因不會移動 RRS feed

  • 問題

  • 環境:Windows XP SP2 使用 VB2008

    為了要讓滑鼠在螢幕上移動,有宣告了Windows API  SetCursorPos(),user32.dll也存在電腦中

    但是不知道什麼原因,僅有X軸座標依照指定位置移動,而Y軸一直保持0在最上面不變 

    以下是我測試的程式碼
    Public Class Form2
    
        Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
    
        Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            Sleep(1000)
    
            SetCursorPos(200, 200)
    
            Sleep(1000)
    
            SetCursorPos(220, 220)
    
            Sleep(1000)
    
            SetCursorPos(240, 240)
    
        End Sub
    
    End Class
    
    
    結果滑鼠移動結果為(200,0)->(220,0)->(240,0)

    請問有人知道原因嗎?  感謝
    2009年10月27日 下午 11:51

解答

  • hi
    嘗試看看
    Private Declare Function SetCursorPos Lib "user32" (ByVal X As Int32, ByVal Y As Int32) As Int32

    參考
    http://msdn.microsoft.com/zh-tw/library/ms648394(en-us,VS.85).aspx

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 HarryMS 2009年10月28日 上午 09:19
    2009年10月28日 上午 12:12
  • 你把 VBNET 跟 VB6 搞混了。VB6 的 Long 在 VBNET 是 Integer ,詳見下表:

    位元組數 VB6 VBNET
    Byte 1 1
    Short - 2
    Integer 2 4
    Long 4 8

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 HarryMS 2009年10月28日 上午 09:19
    2009年10月28日 上午 03:33

所有回覆

  • hi
    嘗試看看
    Private Declare Function SetCursorPos Lib "user32" (ByVal X As Int32, ByVal Y As Int32) As Int32

    參考
    http://msdn.microsoft.com/zh-tw/library/ms648394(en-us,VS.85).aspx

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 HarryMS 2009年10月28日 上午 09:19
    2009年10月28日 上午 12:12
  • 你把 VBNET 跟 VB6 搞混了。VB6 的 Long 在 VBNET 是 Integer ,詳見下表:

    位元組數 VB6 VBNET
    Byte 1 1
    Short - 2
    Integer 2 4
    Long 4 8

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 HarryMS 2009年10月28日 上午 09:19
    2009年10月28日 上午 03:33
  • 感謝兩位,原來是型態搞混了,更改後已正常運作。謝謝!

    2009年10月28日 上午 09:21