Foxtable(狐表)用户栏目专家坐堂 → 截图按钮点击报错: GDI+ 中发生一般性错误


  共有2531人关注过本帖树形打印复制链接

主题:截图按钮点击报错: GDI+ 中发生一般性错误

帅哥哟,离线,有人找我吗?
ycwk
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
截图按钮点击报错: GDI+ 中发生一般性错误  发帖心情 Post By:2016/7/16 15:19:00 [只看该作者]

报如下错误:
.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2016.6.10.1
错误所在事件:窗口,软件自助报障系统窗口,btn_截屏并保存,Click
详细错误信息:
GDI+ 中发生一般性错误。

代码如下:
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(2000, 1000) '截取的大小
Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(0, 0, 0, 0, s) '截取的开始位置,坐标(100, 200)

'如果已有图片则删除
If FileSys.FileExists("\\172.16.11.5\公用\TaskManage\软件自助报障系统文件存放\test.jpg") Then       '如果指定的文件存在
    FileSys.DeleteFile("\\172.16.11.5\公用\TaskManage\软件自助报障系统文件存放\test.jpg",2,2)       '则彻底删除之
MessageBox.Show(3)
End If

MessageBox.Show(2)
bit.save(Tables("自助报障记录表").Current("问题描述附件") & "\\172.16.11.5\公用\TaskManage\软件自助报障系统文件存放\test.jpg")    '保存图片到服务器上
MessageBox.Show(1)
Tables("自助报障记录表").Current("问题描述附件")="test.jpg"     '在"自助报障记录表"中保存上述图片路径
'Tables("自助报障记录表").current.Save


----------------------------
MessageBox.Show(2)   执行完后就报错   bit.save的时候报错
\\172.16.11.5\公用\TaskManage\软件自助报障系统文件存放  这个路径是可读可写的,刚才还成功了一次,后来再点这个按钮就不行了。
 
[此贴子已经被作者于2016/7/16 15:27:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/16 16:23:00 [只看该作者]

bit.save("\\172.16.11.5\公用\TaskManage\软件自助报障系统文件存放\test.jpg")

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/3/21 18:17:00 [只看该作者]

改成了FTP管理图片,还是报那个错,在源码中运行不报,生成的exe文件报错,    不知道咋回事

Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(2000, 1000) '截取的大小
Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(0, 0, 0, 0, s) '截取的开始位置,坐标(100, 200)



Dim str_serialno As String =  e.Form.Controls("TB_日常问题ID").value & "_" & Format(Date.now, "yyMMddhhmmss") & ".jpg"
'bit.save("\\172.16.11.5\pm文件\各表附件\自助报障记录表\" & str_serialno )   '保存到共享文件夹

bit.save(ProjectPath & "RemoteFiles\" & str_serialno)    '保存图片到本地


'msgbox(2)

'上传到FTP服务器
Dim ftp1 As new ftpclient
ftp1.host="172.16.5.89" 
ftp1.Account = "administrator"
ftp1.password = "Admin1234"
'ftp1.UTF8=True
ftp1.upload(ProjectPath & "RemoteFiles\" & str_serialno,"/各表附件/自助报障记录表/" & str_serialno,True) '上传



'MessageBox.show(1)
Tables("自助报障记录表").Current("问题描述附件")= str_serialno     '在"自助报障记录表"中保存上述图片路径
Tables("自助报障记录表").current.Save    


'bit.Dispose()     '丢弃资源,不知道是否起作用

MessageBox.Show("截图成功", "提示",MessageBoxButtons.Ok,MessageBoxIcon.Question, 0, Windows.forms.MessageBoxOptions.ServiceNotification)     '模态窗口提示


'e.Form.Controls("PictureBox1").autoscroll = False     '王昆  20180321加的,不知道起不起作用
Dim pbx As WinForm.PictureBox= Forms("软件自助报障系统窗口").Controls("PictureBox1")
pbx.SizeMode = ImageSizeMode.Zoom
pbx.Image = GetImage(ProjectPath & "RemoteFiles\" & str_serialno)


'Dim req = System.Net.WebRequest.Create("ftp://075:075@172.16.5.13/李朝阳/617_180321090216.jpg")
'Dim img As Image = Image.FromStream(req.GetResponse().GetResponseStream())
'pbx.image = img

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/3/21 18:29:00 [只看该作者]

通过msgbox   检查,执行到这句的时候报错
bit.save(ProjectPath & "RemoteFiles\" & str_serialno)    '保存图片到本地

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 21:26:00 [只看该作者]

你项目没有 RemoteFiles 文件夹,就会报错。

 

可以手动创建,或者代码创建 http://www.foxtable.com/webhelp/scr/0332.htm

 

http://www.foxtable.com/webhelp/scr/0334.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/3/21 21:59:00 [只看该作者]

您的回答坚定了我的想法,但是为什么   我在源码下运行时    ProjectPath =    d:\项目\   
                                     而在生成的exe 文件下运行时    ProjectPath =    d:\项目\publish\Project    
                 
                                            多了一层 project ?     project下没有RemoteFiles,故报错

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 23:20:00 [只看该作者]

publish文件夹下,是foxtable主程序;project文件夹下,才是你的项目的程序文件夹。

 

applicationPath = d:\项目\publish


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/3/22 10:02:00 [只看该作者]

ApplicationPath  返回的是 foxtable安装目录啊,   并不是我项目运行的目录啊

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/22 10:06:00 [只看该作者]

以下是引用ycwk在2018/3/22 10:02:00的发言:
ApplicationPath  返回的是 foxtable安装目录啊,   并不是我项目运行的目录啊

 

发布后,就是你项目运行的publish文件夹了。没发布,就是foxtable安装目录。


 回到顶部