您的位置:首页 > 编程语言

Api代码收集

2014-05-20 09:50 246 查看
收集自网络,方便自己,方便他人

#region 隐藏系统滚动条
protected override void WndProc(ref System.Windows.Forms.Message m)
{
ShowScrollBar(this.Handle, 3, false);//0:horizontal,1:vertical,3:both
base.WndProc(ref m);
}

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool ShowScrollBar(IntPtr hWnd, int wBar, bool bShow);
#endregion


#region 得到光标在屏幕上的位置
[DllImport("user32")]
public static extern bool GetCaretPos(out Point lpPoint);
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
private static extern IntPtr GetFocus();
[DllImport("user32.dll")]
private static extern IntPtr AttachThreadInput(IntPtr idAttach, IntPtr idAttachTo, int fAttach);
[DllImport("user32.dll")]
private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);
[DllImport("kernel32.dll")]
private static extern IntPtr GetCurrentThreadId();
[DllImport("user32.dll")]
private static extern void ClientToScreen(IntPtr hWnd, ref Point p);

private Point CaretPos()
{
IntPtr ptr = GetForegroundWindow();
Point p = new Point();

//得到Caret在屏幕上的位置
if (ptr.ToInt32() != 0)
{
IntPtr targetThreadID = GetWindowThreadProcessId(ptr, IntPtr.Zero);
IntPtr localThreadID = GetCurrentThreadId();

if (localThreadID != targetThreadID)
{
AttachThreadInput(localThreadID, targetThreadID, 1);
ptr = GetFocus();
if (ptr.ToInt32() != 0)
{
GetCaretPos(out   p);
ClientToScreen(ptr, ref   p);
}
AttachThreadInput(localThreadID, targetThreadID, 0);
}
}
return p;
}
#endregion


//如何在全屏时notifyIcon依然能够弹出ShowBalloonTip
[DllImport("user32.dll",EntryPoint = "GetForegroundWindow", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow(); //获得本窗体的句柄
[DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
public static extern bool SetForegroundWindow(IntPtr hWnd);//设置此窗体为活动窗体

if (this.Handle != GetForegroundWindow())
{
SetForegroundWindow(this.Handle);
notifyIcon1.ShowBalloonTip(1500,"注意注意","XXXXXXX!",ToolTipIcon.Warning);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: