मैं हर एक्स सेकंड में माउस की गति का अनुकरण करना चाहता हूं। उसके लिए, मैं एक टाइमर (x सेकंड) का उपयोग करूंगा और जब टाइमर टिक जाएगा तो मैं माउस आंदोलन करूंगा।
लेकिन, मैं C # का उपयोग करके माउस कर्सर को कैसे स्थानांतरित कर सकता हूं?
मैं हर एक्स सेकंड में माउस की गति का अनुकरण करना चाहता हूं। उसके लिए, मैं एक टाइमर (x सेकंड) का उपयोग करूंगा और जब टाइमर टिक जाएगा तो मैं माउस आंदोलन करूंगा।
लेकिन, मैं C # का उपयोग करके माउस कर्सर को कैसे स्थानांतरित कर सकता हूं?
जवाबों:
Cursor.Position
संपत्ति पर एक नज़र डालें । यह आपको आरंभ करना चाहिए।
private void MoveCursor()
{
// Set the Current cursor, move the cursor's Position,
// and set its clipping rectangle to the form.
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
Cursor.Clip = new Rectangle(this.Location, this.Size);
}
Cursor.Clip
आकार द्वारा निर्दिष्ट करने के लिए अपने माउस के आंदोलन को प्रतिबंधित करेगा Location
और Size
। तो ऊपर वाला स्निपेट केवल आपके माउस को एप्लिकेशन के बाउंडिंग बॉक्स में ले जाने की अनुमति देगा।
Cursor.Position
वर्चुअल मशीन में उपयोग किए जाने पर एक निश्चित सेटिंग की आवश्यकता हो सकती है ।
पहले Win32.cs नामक एक क्लास जोड़ें
public class Win32
{
[DllImport("User32.Dll")]
public static extern long SetCursorPos(int x, int y);
[DllImport("User32.Dll")]
public static extern bool ClientToScreen(IntPtr hWnd, ref POINT point);
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int x;
public int y;
public POINT(int X, int Y)
{
x = X;
y = Y;
}
}
}
आप इसे इस तरह उपयोग कर सकते हैं:
Win32.POINT p = new Win32.POINT(xPos, yPos);
Win32.ClientToScreen(this.Handle, ref p);
Win32.SetCursorPos(p.x, p.y);