控制另一个程序里的数据窗口

原创 2017年09月07日 09:17:30

通过测试发现使用Post(ll_dw_handle, 1305, 0, 0) ,可以使数据窗口弹出saveas的对话框,经过进一步的试验,发现wparam和lparam参数的含义分别是 :saveas type和 savefilename字符串的地址,所以我们就可以使用发送消息的方式使数据窗口内容保存为文本文件,然后读取文件就可以获取数据了。
  我在pb程序中的测试代码:
  Function integer SndMsg(long hWnd, long uMsg, long wp, &
   ref string filename) library “user32.dll” Alias For “SendMessageA”
  long ll_handle
  ll_handle = handle(dw_1)
  string s
  s=”c:\111.txt”
  SndMsg(ll_dw_handle, 1305, 2, s)
如果要编写一个数据窗口外挂程序,只要得到数据窗口的句柄就可以了。
以下为消息对应的Datawindow命令(网上搜索的资料)

Function Power script
Retrieve Post(ll_handle, 1306, 0, 0)
- Post(ll_handle, 1320, 0, 0)
Retrieve (yield) Post(ll_handle, 1306, 1, 0)
- Post(ll_handle, 1320, 0, 0)
ScrollNextPage Post(ll_handle, 1318, 0, 0)
ScrollPriorPage Post(ll_handle, 1319, 0, 0)
ScrollToFirstPage Post(ll_handle, 1315, 0, 1)
ScrollToLastPage Post(ll_handle, 1315, 0, 999999)
Sort Dialog Post(ll_handle, 1309, 0, 0)
Filter Dialog Post(ll_handle, 1311, 0, 0)
Append Row Post(ll_handle, 1357, 0, 0)
- Post(ll_handle, 1312, 0, 0)
- Post(ll_handle, 1315, 0, 999999)
- Post(ll_handle, 1325, 0, 0)
InsertRow Post(ll_handle, 1357, 0, 0)
- Post(ll_handle, 1313, 0, 0)
- Post(ll_handle, 1312, 0, 1)
- Post(ll_handle, 1315, 0, 1)
- Post(ll_handle, 1325, 0, 0)
DeleteRow Post(ll_handle, 1357, 0, 0)
- Post(ll_handle, 1307, 0, 0)
Update Post(ll_handle, 1357, 0, 0)
- Post(ll_handle, 1338, 0, 0)
- Post(ll_handle, 1304, 0, 0)
SaveAs Dialog Post(ll_handle, 1338, 0, 0)
- Post(ll_handle, 1305, 0, 0)
Print Post(ll_handle, 1303, 0, 0)
Cancel Post(ll_handle, 1320, 0, 0)

Java调用Win32实现操作其他程序窗口

1、用到的包 ①jna-4.4.0.jar和jna-platform-4.4.0(下载地址) ②JNative.jar(下载地址) 2、使用方式:向QQ输入文本为例 public class ...
  • zhaodecang
  • zhaodecang
  • 2017-10-19 22:51:50
  • 135342

如何编写一个能读取Powerbuilder的数据窗口中数据的程序

这里当然指一个程序读取另一个程序中数据窗口的数据。设想的方法有多种,简单的方法是向数据窗口传递消息啦!先看看这个:How to manipulate Datawindow without using ...
  • wu_07
  • wu_07
  • 2005-03-10 09:48:00
  • 2460

数据窗口可以接收的消息

Retrieve Post(ll_dw_handle, 1306, 0, 0) Post(ll_dw_handle, 1320, 0, 0)ScrollNextPage ...
  • lzp_lrp
  • lzp_lrp
  • 2015-05-28 11:10:13
  • 733

API操作其他程序中的按钮

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, B...
  • lxcc
  • lxcc
  • 2004-10-20 23:14:00
  • 924

c# <em>控制</em>外部<em>程序</em>方法总结

1. C#/.NET的<em>程序</em>,<em>控制</em>外部的 win32<em>程序</em>(win16不做考虑) 2. C#/.NET的<em>程序</em>,<em>控制</em>外部的 .NET<em>程序</em>
  • 2018年04月08日 00:00

怎么用一个程序向另一个程序发送字符并让其显示出来

首先通过FindWindow取得windows程序的窗口句柄,然后通过GetDlgItem取得其中输入框的窗口句柄,最后,向该窗口句柄发送WM_CHAR消息即可显示字符例如,对于Notepad窗口,可...
  • bohut
  • bohut
  • 2004-10-29 14:36:00
  • 1178

从一个窗口获取另一个窗口点击的按钮

在应用关闭时一般都会出现提示,进行选择,是最小化还是退出。这时通常会在新建的窗体上进行选择,怎么判断是否选择过和选择了哪个呢。        首先对按钮的DialogResult属性进行设置,如OK...
  • a273868471
  • a273868471
  • 2015-11-23 17:25:39
  • 1387

如何控制其他程序窗体上的窗口控件(中)

其实想要找到一个标题已知的窗口句柄,用一个API函数就可以了:FindWindow.其函数原形是:function FindWindow(lpClassName, lpWindowName: PCha...
  • VBEND
  • VBEND
  • 2005-01-11 10:06:00
  • 1604

Windows外部程序自动化控制

新手开发一个自动化操作外部应用程序的程序:            1.使用FindWindow查询外部应用程序的父窗口的句柄:               example:              ...
  • qq_31776303
  • qq_31776303
  • 2016-10-12 21:48:58
  • 630

使用WinForm程序控制其他窗口程序

主要使用WIN32API函数 FindWindowEx ,SendMessage,PostMessage等 引用WIN32API函数 // Find Window // 查...
  • ycc449
  • ycc449
  • 2009-08-24 16:54:00
  • 1251
收藏助手
不良信息举报
您举报文章:控制另一个程序里的数据窗口
举报原因:
原因补充:

(最多只允许输入30个字)