2015-06-26 23 views
5

Başlıkta açıklandığı gibi, fare koordinatlarını ayarlamak için bir yol aramaya çalışıyorum. Cursor.Position = new Point(58, 128); Sol Fare düğmesini basılı tutarken (Aşağı) Başka bir yöne kaydırmaya çalışıyorum (rastgele yön). Örneğin, Google Earth’e gidip imleç konumunu 0,0’a ayarlayacak olsaydım, imleç haritanın etrafında gezinirdi. Eğer birileri yardım edebilirse, bunu takdir ediyorum.X, Y Koordinatlarındaki Fare İmlecini Nasıl Ayarlayabilirim, Sol Fare Tıkla Ve Sola Kaydır, Sağ, Üst, Alt

Teşekkür

Çözüm: floatas, tekrar teşekkürler bu yazı cevap için. Dün harcadım ve bugün bunu anlamaya çalışıyorum ve sonunda çalıştım. Kodumu, başkalarına yardımcı olan ümitlere göndereceğim.

+0

işe Can not daha yüksek, daha anlamsal düzeyde? Yani [UI Otomasyon Çerçevesi] (https://msdn.microsoft.com/en-us/library/ms747327 (v = vs.110) .aspx) veya açıklanmış bir API kullanarak? –

+0

Pleaes @JordanMiller, cevabını içeriye koymak için bir soru düzenlemeyin. Gerekirse, kendinize bir cevap gönderin ve ardından doğrulayın. Başlığı da güncellemeyin. –

+0

@jordan SO kullanmaya devam etmeden önce lütfen [faq] 'yi okuyun. Bu bir forum değil, kurallar tamamen farklı. Kendi sorunuzu cevaplamak istiyorsanız, bir cevap gönderin. Cevabın yanındaki onay işareti, probleminizi çözmenize yardımcı olan cevabı seçmek için kullanılır. – dandan78

cevap

1

Öncelikle bazı işlevleri içe aktarmanız gerekir.

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
public static extern void mouse_event(
    [In] uint dwFlags, 
    [In] uint dx, 
    [In] uint dy, 
    [In] int dwData, 
    [In] uint dwExtraInfo); 

Olası fare olayları: tıklatır gibi

public enum MouseEvents 
{ 
    MOUSEEVENTF_LEFTDOWN = 0x02, 
    MOUSEEVENTF_LEFTUP = 0x04, 
    MOUSEEVENTF_RIGHTDOWN = 0x08, 
    MOUSEEVENTF_RIGHTUP = 0x10, 
    MOUSEEVENTF_WHEEL = 0x0800, 
} 
Sen fareyi aşağı gönderebilir

ve fare kadar

[DllImport("user32.dll", EntryPoint = "SetCursorPos")] 
    [return: MarshalAs(UnmanagedType.Bool)] 
    public static extern bool SetCursorPos(
     [In] int X, 
     [In] int Y); 

fare olaylarını simüle etmek için:

imleç konumunu değiştirmek için :

mouse_event((uint)MouseEvents.MOUSEEVENTF_LEFTDOWN | (uint)MouseEvents.MOUSEEVENTF_LEFTUP, X, Y, 0, 0); 

bu test yoktu, ama fare, sürükle basın ve bırakın olmalıdır:

mouse_event((uint)MouseEvents.MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0); 
SetCursorPos((int)X+10, (int)Y+10); 
mouse_event((uint)MouseEvents.MOUSEEVENTF_LEFTUP, X+10, Y+10, 0, 0); 
İlgili konular