none
c# winform编程中如何实现截获系统消息 RRS feed

  • 问题

  • c# winform编程中如何实现截获系统消息,例如截获鼠标双击的消息不让系统去执行该次双击?
    c# winform编程中如何判断用户是否打开了某个指定的文件夹,如果打开了就关闭该文件夹?
    2009年9月2日 6:49

答案

  • 第一个要用到api了

    第二个可以扫描当前所有的程序的窗口 检查窗口标题
    恭喜自己5星用户达成
    2009年9月2日 6:51
    版主
  • 你好!
         1,需要使用Windows API,使用GetMessage函数就可以实现,这个函数可以参考:
              http://blog.csdn.net/mengde666/archive/2009/04/03/4045634.aspx
         2,请问你指的用户打开这个目录,具体是指用什么方式打开?
    周雪峰
    • 已标记为答案 BigBadBoy 2009年9月4日 16:25
    2009年9月2日 8:52
    版主
  • .Net架构是面向程序安全性设计的,所以没有直接控制其它程序的功能。至于C#和Windows Forms一个是语言规范一个是界面类库,和控制其它程序没有关系。
    如果你需要控制Windows的资源管理器,需要调用IShellWindows之类的Shell API。可以去microsoft.public.platformsdk.shell新闻组或者Google code找示例。


    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 BigBadBoy 2009年9月4日 9:10
    2009年9月2日 17:59
    版主
  • 你好,这个功能纯C#代码实现不了,你需要调用SendMessage,而且要import User32.dll。

    请参考,http://support.microsoft.com/kb/318804/zh-cn
    jon.valett@gmail.com
    • 已标记为答案 BigBadBoy 2009年9月3日 14:49
    2009年9月3日 10:11
    版主

全部回复

  • 第一个要用到api了

    第二个可以扫描当前所有的程序的窗口 检查窗口标题
    恭喜自己5星用户达成
    2009年9月2日 6:51
    版主
  • 第一个要用到api了

    第二个可以扫描当前所有的程序的窗口 检查窗口标题
    恭喜自己5星用户达成

    能不能说的详细些?刚学c#好多都不懂...........谢谢........
    2009年9月2日 7:05
  • 你好!
         1,需要使用Windows API,使用GetMessage函数就可以实现,这个函数可以参考:
              http://blog.csdn.net/mengde666/archive/2009/04/03/4045634.aspx
         2,请问你指的用户打开这个目录,具体是指用什么方式打开?
    周雪峰
    • 已标记为答案 BigBadBoy 2009年9月4日 16:25
    2009年9月2日 8:52
    版主
  •      2,请问你指的用户打开这个目录,具体是指用什么方式打开?
    周雪峰

    就是双击打开.
    2009年9月2日 8:59
  • 你好,请参考,http://www.czsou.com/article.asp?id=46
    jon.valett@gmail.com
    2009年9月2日 11:07
    版主
  • .Net架构是面向程序安全性设计的,所以没有直接控制其它程序的功能。至于C#和Windows Forms一个是语言规范一个是界面类库,和控制其它程序没有关系。
    如果你需要控制Windows的资源管理器,需要调用IShellWindows之类的Shell API。可以去microsoft.public.platformsdk.shell新闻组或者Google code找示例。


    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 BigBadBoy 2009年9月4日 9:10
    2009年9月2日 17:59
    版主
  • 看了好多,都是高手写的,看不懂,初学c#......不过一直在寻找答案,希望高手能给第一个问题一个简单的代码,捎带注释,自己研究.............是c# vs2005的代码,不是c++之类的...........谢谢.........

    2009年9月3日 5:56
  • 你好,这个功能纯C#代码实现不了,你需要调用SendMessage,而且要import User32.dll。

    请参考,http://support.microsoft.com/kb/318804/zh-cn
    jon.valett@gmail.com
    • 已标记为答案 BigBadBoy 2009年9月3日 14:49
    2009年9月3日 10:11
    版主
  • 首先楼主不是在做病毒什么的吧,呵呵!
    一般情况下就需要使用C++撰写Hook程序,然后使用.net调用了。但是这样做如果处理不好,容易造成操作系统崩溃哦!慎重!
    Dreamwinter
    2009年9月4日 7:47
  • c#写病毒?有用这个写的么?仅仅是学习知识,发现以前c#什么都没学到,到论坛来学......
    用虚拟机应该安全吧..........
    2009年9月4日 9:13
  • c#写病毒?有用这个写的么?仅仅是学习知识,发现以前c#什么都没学到,到论坛来学......
    用虚拟机应该安全吧..........

    是我误解楼主了,请见谅!
    如果需要相关知识,可以尝试搜索Hooking API方面的知识。
    Dreamwinter
    2009年9月4日 10:28
  • 很高兴能认识你们,感谢你们对问题的关注,谢谢............

    2009年9月4日 16:29