一、原理
PB数据窗口有一个导出文件的函数,通过调用API向数据窗口传递特定的消息,它就乖乖的弹出一个导出数据文件的窗口了。
二、实现步骤
1、获取数据窗口的句柄。使用spy++工具获取,或者使用工具SpyLite24(http://www.asanscape.com/可以免费下载)
2、调用让数据窗口导出文件的消息。SendMessage(pbdw_handle, 1305, 0, 0)
三、C#代码
public class Win32API
{
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
}
调用示例:
private void button_Click(object sender, EventArgs e)
{
try
{
IntPtr mwh = (IntPtr)Convert.ToInt32(tbPBDWHandle.Text);
int result = Win32API.SendMessage(mwh, 1305, 0, 0);
if (result == 0)
{
MessageBox.Show("操作失败!请确定数据窗口句柄是否正确!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
四、PBDW的其他函数和查看资料
|
How to manipulate Datawindow without using datawindow functions.
|
// I test only on PowerBuilder 6.5 build 444
|
本文介绍了如何通过调用Powerbuilder数据窗口的API来实现数据的导出。首先,需要获取数据窗口的句柄,这可以通过工具如Spy++或SpyLite24完成。接着,利用SendMessage函数发送特定消息1305,即可触发数据窗口的导出文件功能。在C#中,可以创建Win32API类并调用其SendMessage方法来实现这一操作。若句柄不正确,操作将失败并提示错误信息。
8361

被折叠的 条评论
为什么被折叠?



