以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  截图按钮点击报错: GDI+ 中发生一般性错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87667)

--  作者:ycwk
--  发布时间:2016/7/16 15:19:00
--  截图按钮点击报错: GDI+ 中发生一般性错误
报如下错误:
.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
--  发布时间:2016/7/16 16:23:00
--  
bit.save("\\\\172.16.11.5\\公用\\TaskManage\\软件自助报障系统文件存放\\test.jpg")
--  作者:ycwk
--  发布时间: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
--  发布时间:2018/3/21 18:29:00
--  
通过msgbox   检查,执行到这句的时候报错
bit.save(ProjectPath & "RemoteFiles\\" & str_serialno)    \'保存图片到本地
--  作者:有点甜
--  发布时间:2018/3/21 21:26:00
--  

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

 

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

 

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

 


--  作者:ycwk
--  发布时间:2018/3/21 21:59:00
--  
您的回答坚定了我的想法,但是为什么   我在源码下运行时    ProjectPath =    d:\\项目\\   
                                     而在生成的exe 文件下运行时    ProjectPath =    d:\\项目\\publish\\Project    
                 
                                            多了一层 project ?     project下没有RemoteFiles,故报错

--  作者:有点甜
--  发布时间:2018/3/21 23:20:00
--  

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

 

applicationPath = d:\\项目\\publish


--  作者:ycwk
--  发布时间:2018/3/22 10:02:00
--  
ApplicationPath  返回的是 foxtable安装目录啊,   并不是我项目运行的目录啊
--  作者:有点甜
--  发布时间:2018/3/22 10:06:00
--  
以下是引用ycwk在2018/3/22 10:02:00的发言:
ApplicationPath  返回的是 foxtable安装目录啊,   并不是我项目运行的目录啊

 

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