PDA

View Full Version : سوال: بررسی وضعیت موس در خارج از محیط برنامه (در صفحه دستکتاپ)



امیر مهرشاد
دوشنبه 01 مهر 1392, 11:29 صبح
سلام

چطور میشه فهمید که در محیط خارج از فرم یا برنامه اصلی وضعیت کرسر موس از حالت دیفالت خارج شده مثلا توی یک تایمر چک کنه بمحض اینکه حالت موس از دیفالت به AppStarting تغیر پیدا کرد پیغامی رو بر همین مبنا صادر کنه

و یه تایمر دیگه بازگشت به حالت دیفالت موس رو گزارش دهد :متفکر:



متشکرم

مهرداد صفا
دوشنبه 01 مهر 1392, 18:06 عصر
سلام.
می توانید با استفاده از GetCursorInfo (http://msdn.microsoft.com/en-us/library/windows/desktop/ms648389%28v=vs.85%29.aspx) جزئیات کرسر را بگیرید و از تغییر handle به تغییر کرسر پی ببرید.

امیر مهرشاد
دوشنبه 01 مهر 1392, 18:09 عصر
سلام.
می توانید با استفاده از GetCursorInfo (http://msdn.microsoft.com/en-us/library/windows/desktop/ms648389%28v=vs.85%29.aspx) جزئیات کرسر را بگیرید و از تغییر handle به تغییر کرسر پی ببرید.

سلام خدمت مدیر محترم
از حسن توجه شما متشکرم میشه بیشتر راهنمایی بفرمایید باور کنید دیگه کلافه شدم

امیر مهرشاد
دوشنبه 01 مهر 1392, 18:13 عصر
سلام خدمت مدیر محترم
از حسن توجه شما متشکرم میشه بیشتر راهنمایی بفرمایید باور کنید دیگه کلافه شدم

من یه پستم توی کد پروجکت (http://www.codeproject.com/Questions/657571/Understanding-changes-in-mouse-icon) دادم تا الان که راه حلی داده نشده

امیر مهرشاد
دوشنبه 01 مهر 1392, 21:36 عصر
بالاخره البته با راهنمایی دوست بزرگوارمون جناب آقای صفا تونستم بدست بیارمش من سورشو میزارم دوستان استفاده کنند راستش اینکار رو من برای اینکه بروزر دیفالت vs یا حتی کامپوننتهای دیگه هم نتونستند یک url خاصی رو باز کنن استفاده کردم تا هنگامی که دسترسی به خاصیت های DocumentCompleted بروزر ها ندارم از این طریق متوجه بشم گزارشی که تقاضای ایمپورت اونو دادم دقیقا کی شروع میشه و کی به اتمام میرسه و دستوراتی رو انجام بدم شما می توانید خیلی استفاده های دیگه ای از اینکار بگیرید اگر ایده های نو و تازه ای با این کار بنظرتون میرسه متشکر میشم توی این تایپیک مطرح بشه مجددا از جناب صفا بخاطر راهنماییشون متشکرم


using System.Runtime.InteropServices;
public partial class Form1 : Form
{
[StructLayout(LayoutKind.Sequential)]
public struct CursorInfo
{
public int Size;
public int Flags;
public IntPtr Handle;
public Point Position;
}
public class NativeMethods
{
[DllImport("user32.dll")]
public static extern bool GetCursorInfo(out CursorInfo info);
}

public Form1()
{
InitializeComponent();
timer1.Start();

}

private void timer1_Tick(object sender, EventArgs e)
{
CursorInfo info = new CursorInfo();

info.Size = Marshal.SizeOf(info.GetType());

if (NativeMethods.GetCursorInfo(out info))
{

Cursor c = new Cursor(info.Handle);
string s = c.Handle.ToString();
textBox1.Text = s;//بمحض تغیر نشانگر موس عدد داخل تکس باکس عوض خواهد شد

}

}