以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 打开一个文件 ,并且获得指定区域的截图 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187589) |
-- 作者:lianghanyu -- 发布时间:2023/7/29 9:31:00 -- 打开一个文件 ,并且获得指定区域的截图 Dim Proc As New Process \'定义一个新的Process Proc.File = "I:\\2.eml" \'指定要打开的文件 Proc.Start() Dim d As Date = Date.now Do While d.AddSeconds(5) > Date.Now Application.Doevents Loop ClipBoard.Clear Sendkeys.Send("^{PRTSC}") Application.Doevents If ClipBoard.ContainsImage Then Dim img As Image img = ClipBoard.GetImage img.save("D:\\20230729.jpg") End If Proc.Close() 问题1:上边的是全屏截图,有没有办法指定截图区域? 问题2: 为什么最后一句 Proc.Close() 没有生效? 因为如果功能实现,我是要做成一个获取邮件内容的代码的。在某一个指定文件夹里,有很多已经导出来的邮件,我想一个一个的打开,然后使用截图功能,把邮件里的内容截图形式保存下来。 |
-- 作者:有点蓝 -- 发布时间:2023/7/29 9:39:00 -- 1、没有办法指定区域,要换一种方式手工截图:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=119335&skin=0 2、Proc.Close是原来释放Process使用的资源,不是用来关闭打开的应用程序的。基本上Process 打开的程序只能手工关闭。如果知道标题,可以试试这个:http://www.foxtable.com/webhelp/topics/2713.htm
[此贴子已经被作者于2023/7/29 9:39:52编辑过]
|
-- 作者:lianghanyu -- 发布时间:2023/7/29 10:11:00 -- 试了一下这个代码,能打开文件,并且截图 ,但是关闭不了: Dim Proc As New Process \'定义一个新的Process Proc.File = "D:\\出错损失表.xlsx" \'指定要打开的文件 Proc.Start() Dim d As Date = Date.now Do While d.AddSeconds(5) > Date.Now Application.Doevents Loop ClipBoard.Clear Sendkeys.Send("^{PRTSC}") Application.Doevents If ClipBoard.ContainsImage Then Dim img As Image img = ClipBoard.GetImage img.save("D:\\20230729.jpg") End If ShowAppWindow("出错损失表.xlsx", 5) |
-- 作者:lianghanyu -- 发布时间:2023/7/29 10:22:00 -- 找到原因了,标题不能带文件扩展名。 |
-- 作者:有点蓝 -- 发布时间:2023/7/29 10:31:00 -- 我测试是可以关闭的。确实不行再试试kill Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("excel") For Each p As System.Diagnostics.Process In ps msgbox(p.MainWindowTitle) If p.MainWindowTitle = "某某标题" Then p.kill Next |