添加任务计划 执行 网络提交功能总结

来源:互联网 发布:派尔玻璃优化软件 编辑:程序博客网 时间:2024/06/15 23:56

http://download.csdn.net/source/2137217

功能点:

1, 代码添加windows任务计划,定时执行相关程序

 尝试了两种方案:

a,利用at命令相关的 windows API(NetScheduleJobAdd等),遇到的问题是,这种方法添加的 任务计划 用户组是System的,在执行当前用户组代码的时候,在访问网络的时候有问题, 需要在程序执行的时候 转回 当前用户组, 尝试了 批处理调用 程序(runat,无效), 代码切换用户权限(CreateProcessWithLogon,无效,对于这种方法, 有可能是我理解使用的不对,我觉得应该可以实现, 后面再考虑)

 

b,操作mstask,利用 网上提供的 MsTask.pas 操作任务计划,产生的是 当前用户组的 

遇到的问题: 添加成功后,发现不能正确执行, 但是在Windows下 重新修改,应用 需要提示 输入密码, 意识到 代码中没有处理 用户名密码的问题, 有一个函数  Task.SetAccountInformation,设置用户名 密码

 

还有一个比较挫的问题:StringToWideChar转换字符串的时候,需要自己分配内存

 

 

2, 利用twebbrowser 实现网络提交

这块内容,以前没有接触过, 开始的设想是 可以直接post一个链接完成提交, 后来

是网上查了些 使用方法, 现在的方法是 利用Twebbrowse 将网页上的元素遍历,对可编辑部分进行赋值, 模拟鼠标点击按钮提交

中间遇到很多问题: 最大的困难时 里面很多 IDispatch,OleVariant等数据, 无法知道其内部结构, 都是照着网上的代码抄的,再不断尝试

 

3,发现一个很好用的工具  errlook, 用于检查 错误代码的含义

 

4,点击提交按钮后, 有脚本确认提示框, TWebbrowser无法截取, 但是在点击后,用模拟鼠标点击 却发现 被阻塞,没想到什么好方法,现在很土地 处理的方法是在点击前创建一个线程,让后点击提交,线程在sleep1-2s后,再模拟点击提示框

 

 

原创粉丝点击