用DELPHI控制下载弹出窗口,并点击保存为何不行

szchenzb 2014-02-26 04:19:22
我用DELPHI想在弹出文件下载窗口后直接模拟点击保存按钮,但不成功,只能把焦点停在保存按钮上,之后的动作不执行,请各位高手帮忙指点,代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
H,hc: HWND;
i:integer;
begin
h := findwindow(nil, '文件下载');
if H > 0 then
begin
// FindWindowEx(h,0, 'Button', '保存(&S)')
hc := FindWindowEx(h,0, 'Button', '保存(&S)');
if hc> 0 then
begin
// windows.SetForegroundWindow(h);
SendMessage(hc, WM_LBUTTONDOWN, 0, 0);
// Sleep(20);
SendMessage(hc, WM_LBUTTONUP, 0, 0);
// Sleep(20);
// SendMessage(hc, BM_CLICK, 0, 0);
// Sleep(20);
PostMessage(hc, BM_CLICK, 0, 0);

// PostMessage(hc, WM_KEYDOWN, VK_RETURN, 0); SendMessage(hc, WM_LBUTTONDOWN, 0, 0);
// SendMessage(hc, VK_RETURN, 0, 0);
// keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
//PostMessage(hc,VK_RETURN,13,0);
{ SendMessage(hc, WM_LBUTTONDOWN ,MK_LBUTTON, MAKELPARAM (100, 200));

SendMessage(WM_COMMAND, ID_FILE_SAVE_AS, 0);
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_RETURN, 0, 0, 0);

keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
SendMessage(hc, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(100,200));
}

end
end;
end;
...全文
732 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lght 2014-03-20
  • 打赏
  • 举报
回复
引用 11 楼 szchenzb 的回复:
[quote=引用 10 楼 lght 的回复:] 试试模拟快捷键
谢谢!我也模拟了CTRL+S也不执行,不知为啥?只是能定位到按钮“保存”上,但不执行任何按键[/quote] 怎么是Ctrl+S呢,是Alt+S啊
szchenzb 2014-03-19
  • 打赏
  • 举报
回复
引用 10 楼 lght 的回复:
试试模拟快捷键
谢谢!我也模拟了CTRL+S也不执行,不知为啥?只是能定位到按钮“保存”上,但不执行任何按键
lght 2014-03-18
  • 打赏
  • 举报
回复
试试模拟快捷键
szchenzb 2014-03-18
  • 打赏
  • 举报
回复
引用 8 楼 simonhehe 的回复:
模拟回车事件: keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0),0,0); keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0),KEYEVENTF_KEYUP,0);
这些都试过了就是不行,不知道是不是我调用的主程序一定要先隐藏起来才行还是什么问题,因为这些在我的另一个程序控制PDF阅读器都能正常运行,但就控制不了“下载保存”这种弹出式窗口
sololie 2014-03-16
  • 打赏
  • 举报
回复
看看子窗口的句柄找对了没有,用spy++照一下然后对比一下窗口句柄 hc
simonhehe 2014-03-16
  • 打赏
  • 举报
回复
模拟回车事件: keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0),0,0); keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0),KEYEVENTF_KEYUP,0);
szchenzb 2014-03-13
  • 打赏
  • 举报
回复
看起来高手都归隐了,自己顶一下
szchenzb 2014-02-28
  • 打赏
  • 举报
回复
引用 3 楼 lyhoo163 的回复:
这是代码运行机制不同步造成的,特别是写文件(下载)时特出。建议使用线程。
请教一下应如何使用线程来执行?
szchenzb 2014-02-28
  • 打赏
  • 举报
回复
引用 2 楼 mytion 的回复:
是IE的下载框?如果是那很有可能于COM有关


是的,



运行我的程序只能把焦点停在保存按钮上,就是不执行下面的模拟键盘按键,请多多指教!
lyhoo163 2014-02-28
  • 打赏
  • 举报
回复
这是代码运行机制不同步造成的,特别是写文件(下载)时特出。建议使用线程。
mytion 2014-02-27
  • 打赏
  • 举报
回复
是IE的下载框?如果是那很有可能于COM有关
szchenzb 2014-02-26
  • 打赏
  • 举报
回复
把下载窗口设成当前窗口也不行
一、 DBGridEh(增强型表格组件)功能详解.....................................................................4 二、应用实例..........................................................................................................................5 1. 定制标题行......................................................................................................................5 1) 制作复杂标题行.......................................................................................................5 2) 按钮式标题..............................................................................................................5 3) 标题行显示图片.......................................................................................................5 4) 如根据不同状态在数据单元格中显示相应图片...................................................5 5) 自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序...............6 6) 点dbgrideh 标题排序..............................................................................................7 7) 在DBGridEH 中怎样实现多重排序(标题出现0123等排列序号)? ................ 11 8) 让dbgrid显示序号................................................................................................ 11 2. 外观布局........................................................................................................................12 1) 根据不同字段值显示相应的小图片.....................................................................12 2) 显示检查框(checkbox)外观.............................................................................12 3) 显示单、多列下拉列表.........................................................................................12 4) 显示日历下拉列表.................................................................................................13 5) 3D或平面外观效果...............................................................................................13 6) 行头和列头的启用关闭.........................................................................................13 7) DBGrid如何实现透明效果?.................................................................................13 8) 滚动条的各种应用.................................................................................................16 9) 数据行高................................................................................................................19 10) DBGrid设置Rowheight后如何将单元格内容纵向和垂直都居中?..............19 11) 设置DBGridEH 自适应列宽的最好方法.........................................................20 12) Ehlib 的DBGridEh首列加序号........................................................................21 13) 分行分列、单元格的颜色设置.........................................................................23 14) 点击不同单元格列,执行不同的动作.............................................................27 15) 下拉式计算器.....................................................................................................28 16) 鼠标移到某个单元格,指针形状改变.............................................................28 17) 自动填充网格列宽到网格客户区.....................................................................29 18) 从注册表或ini文件中保存或恢复网格和列的层次。...................................29 3. 编辑功能........................................................................................................................29 1) 多选........................................................................................................................29 2) 文本多行显示.........................................................................................................30 3) 显示备注字段.........................................................................................................30 4) 如何让dbgrideh1 显示数据时只显示两位小数...................................................30 5) 获得当前DBGridEh表中单元格的序号.............................................................30 6) 怎样在dbgridEh和Edit中显示金额的千分号...................................................30 7) end;请问怎么才能使DBGridEh不滚动就能提交数据?...................................32 8) 我怎么把dbgrid 里的数据一次插入到数据库呢................................................32 9) 在DBGrid中可选中行而又可进入编辑状态......................................................32 10) 修正DBGrideh 丢失焦点时自动关闭输入法的问题......................................35 11) DBGRIDEH选定多行删除怎么实现...............................................................36 12) DBGrid 滚动表格的代码...................................................................................37 4. 统计功能........................................................................................................................37 白波九道整理自用版 第 3 页 1) 页脚合计................................................................................................................37 2) 定制表格底部(footer)区域的汇总统计行.......................................................38 3) TDBSumList说明..................................................................................................38 4) 如何工作以及为什么有时SumList的集合值计算不正确?.............................39 5) dbgrideh列求和.....................................................................................................39 5. 数据功能........................................................................................................................40 1) 查找字段点击某列值的下拉按纽弹出一个从数据库取值下拉列表...............40 2) 使用DBGridEh自动过滤实现方法.....................................................................40 3) 使用DBGridEh自动过滤实现方法2 ..................................................................41 4) DBGridEh 控件中使用过滤功能 (适用ehlib 5.2 ehlib 5.3)................................42 5) 支持模糊查询.........................................................................................................43 6) ehlib4.4.50中支持模糊匹配的修改方法..............................................................44 7) EhLib 5.0 Build 5.0.13的过滤字串都是模糊过滤修改.......................................45 8) 滚动条滚动时选择不变,还有自动过滤功能的实现.........................................45 9) 增量搜索................................................................................................................46 10) ehlib总是按两次ctrl+f才出来查找框,怎么办?.........................................46 11) 如何改良dbgrideh的文字过滤........................................................................46 12) 改进DBGrideh 表头点击自动排序,实现双击状态轮流.................................47 13) 改良Ehlib 的排序功能,加快排序速度.............................................................49 14) 在DbGridEh中显示TreeView效果................................................................50 15) DBGridEh-KeyList、PickList............................................................................51 16) 主从表设置........................................................................................................53 17) 在DbGridEh中显示表中表..............................................................................55 6. 输入/输出.......................................................................................................................56 1) 导入导出数据.........................................................................................................56 2) 从多种格式导入/导出数据到TDBGridEh...........................................................57 3) DBGRID 生成EXCEL报表.................................................................................57 4) 使用TPrintDBGridEh 组件.................................................................................61 5) 打印时确定Ehlib定义的报表表头颜色? ............................................................61 6) Ehlib 中的PrintDBGridEh如何印页码,即第几页共几页...................................62 7) 怎么让PrintDBGridEh只打印DbGridEh 中指定的列.......................................62 8) 怎样进行横向打印/ 打印预览?........................................................................62 7. 将存在的DBGrid组件转换为DBGridEh组件...........................................................62 三、EhLib安装问题.............................................................................................................64 1. EhLib 安装步骤.............................................................................................................64 2. EhLib 安装问题(dbsumlst.dcu出错) ..........................................................................64 3. 安装提示找不到.BPL文件...........................................................................................65 四、Delphi 下的优秀表格(Grid)显示控件........................................................................65 1. NextGrid .........................................................................................................................65 2. TopGrid 3.01...................................................................................................................65 3. XLGrid............................................................................................................................66 4. DevExpress ExpressQuantumGrid .................................................................................66 5. TMS Grid Pack...............................................................................................................68 6. EhLib ..............................................................................................................................71 白波九道整理自用版 第 4 页 7. ProfGrid..........................................................................................................................71 8. EasyGrid .........................................................................................................................71 五、delphi 中配置文件的使用(*.ini).........................................................................71 六、窗口动画效果Animatewindow应用...........................................................................72 七、Delphi Excel to Sql Server..............................................................................................73 八、Delphi控制Excel的经验如下:..................................................................................76

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧