目前客户有一个比较头痛要求,想了半天也没想出什么好办法来,请各位提提思路,如果有谁做过就更好了,再此谢过了.打个比方说吧目前客户正运行一套系统,此时他需要由这套系统打开记事本,以下动作都由计算模拟人为手工完成。
(ALT+F 弹出下拉菜单)-->(N 新建)-->(将当前系统的一些文字输入到记事本中)-->(ALT+F弹出下来菜单)-->(S 保存)
-->(给文件起名 点击保存按钮)-->(ALT+F弹出下拉菜单)-->(X退出记事本)不知说清楚没了,简单的说对记本事的操作都是计算机来完成的,不存在人为操作。

解决方案 »

  1.   

    网上操作TXT文本的代码一大堆,找找就有
      

  2.   

    首先要得到进程ID,然后通过进程ID获得窗口句柄(你也可以直接用FINDWINDOWS)得到窗口的句柄。
    得到窗口的句柄后 接下来就有点麻烦了,你可以用FindWindowEx来获得窗口里的控件的句柄,但是得到句柄后你根本不知道这些句柄是哪个控件的。所以你可以用VS 带的工具SPY++来了解目标程序的结构。必须了解清楚了才好做,例如你用SPY++得到一个EDIT的句柄(注意:控件的句柄每次启动程序后都会不一样),用FindWindowEx搜索出来的句柄与之对应,就知道你搜索出来的第几个句柄是这个EDIT的
    句柄虽然每次都会变,但是控件的顺序是不会变的,所以你只要知道第几个是这个EDIT的就好)
    有了EDIT的句柄,并且知道它就是我们要的,这是和就可向它发消息,
    例如向一它发送设置焦点的消息sendmessage(editM_h,WM_SETFOCUS,0,0);
      

  3.   

    补充一个查控件和向控件发消息用到的API,自己搜索一下用法
    FindWindowEx
    GetWindow
    sendmessage
      

  4.   

    1、自己编写一套Text文本编辑程序。
    2、通过Timer定时机制,分别执行(打开)Text文本编辑程序的相关事件。
      

  5.   

    接著你發的另一篇貼子回答:
    A系統已經運行(A來控制B,B有可能是未運行或運行狀態);那麼,當A、B系統運行時,可用HOOK、GetWindow(Application.Handle,GW_HWNDPREV)、FindWindow、FindWindowEX或進程注入等方法去得到B的相應操作的句柄,再去編寫你想要實現的自動控制的代碼部分即可如果說,B未啟動,那麼可能先要實現找到這個B程序去用API運行它,再執行前面所提到的思路去處理...... 
     
      

  6.   

    你是想反编译还是反汇编呢?
    反汇编出来的是汇编代码.,如果你不懂汇编语言的话,也没什么意义的!
    一般人也看不懂,只有懂汇编语言的高手才能看明白.
    常见的反汇编工具有W32DASM
    http://www.baidu.com/baidu?wd=W32DASM&tn=monline_dg反编译,直接出来的是原来程序的代码(高级语言).但各种语言语法区别非常大,同时编译方式也不尽相同,一般的反编译器均有很强的针对性(特别针对某种语言的),而且效果差别很大:如PB的,最常用的是 PB反编译专家 SHUDEPB
    .net,一般是Reflector
    dephi,一般是dede
    JAVA,比较出名的有小颖的反编译专家。
    参考答案来源于:wenwen.soso.com我正在使用《Csdn收音机》第一时间获取最新动态!
      

  7.   

    目前客户有一个比较头痛要求,想了半天也没想出什么好办法来,请各位提提思路,如果有谁做过就更好了,再此谢过了.打个比方说吧目前客户正运行一套系统,此时他需要由这套系统打开记事本,以下动作都由计算模拟人为手工完成。
    (ALT+F 弹出下拉菜单)-->(N 新建)-->(将当前系统的一些文字输入到记事本中)-->(ALT+F弹出下来菜单)-->(S 保存)
    -->(给文件起名 点击保存按钮)-->(ALT+F弹出下拉菜单)-->(X退出记事本)不知说清楚没了,简单的说对记本事的操作都是计算机来完成的,不存在人为操作。
    参考答案来源于:www.phpfans.net我正在使用《Csdn收音机》第一时间获取最新动态!