hook 拦截 向一个软件拖文件要怎么做 WH_CALLWNDPROC WM_DROPFILES 这两个不会用

abccba12321 2017-12-01 09:53:35
最近做一个项目,有一个别人的软件,在把文件拖到他的窗体上的时候,检测文件路径和文件,我baidu 谷歌了好几天都没做出来,大神们帮我看一下要怎么做!是网上找了好久好像要通过 WH_CALLWNDPROC WM_DROPFILES 这两个东西来监控,但是钩子怎么搞都搞不上

public void Start()
{
IntPtr ParenthWnd = new IntPtr(0);
IntPtr windowHandle = FindWindow(null, "无标题 - 记事本");
int c;
int ThreadId = GetWindowThreadProcessId(windowHandle, out c);

// 安装键盘钩子
if (hKeyboardHook == 0)
{
KeyboardHookProcedure = new HookProc(KeyboardHookProc);
hKeyboardHook = SetWindowsHookEx(4, KeyboardHookProcedure, windowHandle, ThreadId);
//如果SetWindowsHookEx失败
if (hKeyboardHook == 0)//不管怎么搞他都是0 才到WH_CALLWNDPROC 就做不下去了
{
Stop();
MessageBox.Show("安装键盘钩子失败");
}
}

private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
{
Console.WriteLine($"{nCode}-{wParam}-{lParam}");
if (wParam == WM_DROPFILES)
{
Console.WriteLine(wParam.ToString());
this.textBox1.Text += wParam.ToString();
//Mousemov(this, e);
}
}
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
abccba12321 2017-12-04
  • 打赏
  • 举报
回复
SetWindowsHookEx 这个像获取鼠标键盘什么的都没有问题,但是就是获取WH_CALLWNDPROC(4)类型的时候他就获取的结果都是0,所以进行到这一步就进行不下去了
望蓝天 2017-12-02
  • 打赏
  • 举报
回复
你可以百度一下SetWindowsHookEx的用法,第一个参数决定要捕获的消息类型
望蓝天 2017-12-02
  • 打赏
  • 举报
回复
大兄弟,你百度 文件拖拽 c# 资料非常多的。应该,

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧