我打开了两个notepad:notepad1、notepad2;
现在想用sendmessage模拟Ctrl+A全选notepad上的文本,然后Ctrl+C复制
然后Ctrl+V粘贴到notepad2上网上查了很多都没有准备回复
求赐教~~~~~~~~~~~~~~
---------------------------------------------------------------------------
另一种实现方式
        Const  WM_COPY = "&H301";
        Const  WM_CUT = "&H300";
        Const  WM_PASTE = "&H302" ;
sendmessage(handle,WM_COPY,0,0)
问:c#中如何用定义Const这些消息?

解决方案 »

  1.   

    WM_COPY = 0x0400 + 101;
      

  2.   

    public const int WM_COPY = 0x301;
    public const int WM_CUT = 0x300;
    public const int WM_PASTE = 0x302;
      

  3.   

    顶楼上的:
    public const int WM_COPY = 0x301;
    public const int WM_CUT = 0x300;
    public const int WM_PASTE = 0x302;
      

  4.   

    模拟Ctrl+A
    你搞定了吗?
    参考:
    下面是C++的代码,但是可以看出实现思路。HWND hwnd=NULL;
    hwnd=FindWindow("Notepad",0);
    hwnd=FindWindowEx(hwnd,0,"Edit",0);
    if (hwnd)
    {keybd_event(VK_CONTROL,0,0,0);
    PostMessage(hwnd,WM_KEYDOWN,65,0);
    PostMessage(hwnd,WM_KEYUP,65,0);
    keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);}
      

  5.   

    谢谢逍遥兄,这个我已经知道了           SendMessage(vHandle, WM_CUT, 0, 0);
              SendMessage(wHandle, WM_PASTE, 0, 0);其中vHandle是notepad1内edit的句柄
    wHandle是notepad2内edit的句柄运行之后并没有把notepad1的内容复制到notepad2
    而且notepad2出现了0x0302请教~~~~~
      

  6.   

    目标:notepad1的文本 ---复制-->notepad2
      

  7.   

    用spy++把控件的句柄值获取到
    然后再用FindWindow、FindWindowEx、sendmessage
    程序调试时逐句查看下,是否真的获取到了值,句柄的值是不是与spy++的一样
      

  8.   

    两个notepad都是我用Process创建的
    句柄绝对没问题
      

  9.   

    认为2楼的做法不对WM_CUT = $0300;
    程序发送此消息给一个编辑框或combobox来删除当前选择的文本
    WM_COPY = $0301;
    程序发送此消息给一个编辑框或combobox来复制当前选择的文本到剪贴板
    WM_PASTE = $0302;
    程序发送此消息给editcontrol或combobox从剪贴板中得到数据而NOTEPAD编辑框的类型为SysListView32
      

  10.   

    用WM_GETTEXT 和 SendMessage(hWnd,WM_GETTEXT,param1,param2);//不好意思  参数忘记了  好像是param1是接受文本的变量  param2是长度然后  WM_SETTEXT SendMessage(hWnd1,WM_SETTEXT,'',''); //不知这样行不?
      

  11.   

    可以用GetWindowText和SetWindowText,效果相同
    thank you!