Foxtable(狐表)用户栏目专家坐堂 → 狐表集成Seafile私有云系统


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

主题:狐表集成Seafile私有云系统

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
狐表集成Seafile私有云系统  发帖心情 Post By:2017/8/5 11:29:00 [显示全部帖子]

多谢版主指导,其实只需要一个默认登录的功能,即可集成Seafile私有云系统。

Seafile私有云系统可自行安装在服务器上:www.seafile.com,开源免费。

只需窗口放置一个Webbrowser控件即可,代码如下:

Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
web.ScriptErrorsSuppressed = True
web.Navigate("http://123.57.251.28:8000/accounts/login/") '这里设置你自己的seafile系统网址
Do Until web.ReadyState = 4
 Application.DoEvents
Loop
Dim el = web.Document.GetElementByID("login")
If el IsNot Nothing Then
el.setattribute("value", "foxtable@163.com")   '这里设置你自己的seafile系统登录账号
End If
Dim el2 = web.Document.GetElementByID("password")
If el2 IsNot Nothing Then
el2.setattribute("value", "123456") '这里设置你自己的seafile系统登录密码
End If
Dim btns = web.Document.GetElementsByTagName("input")
For Each btn As object In btns
If btn.getattribute("value") = "登录" Then 
 btn.InvokeMember("click")
 End If
Next


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170805153927.png
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:seafile.table


[此贴子已经被作者于2017/8/5 15:47:56编辑过]

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/5 11:50:00 [显示全部帖子]

Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
web.ScriptErrorsSuppressed = True
web.Navigate("http://123.57.251.28:8000/accounts/login/")
Do Until web.ReadyState = 4
 Application.DoEvents
Loop
Dim btns = web.Document.GetElementsByTagName("csrfmiddlewaretoken")
For Each btn As object In btns
If btn.getattribute("name") = "login" Then
btn.setattribute("value", "foxtable@163.com")
ElseIf btn.getattribute("name") = "password" Then
 btn.setattribute("value", "123456")
End If
Next
btns = web.Document.GetElementsByTagName("a")
For Each btn As object In btns
If btn.getattribute("href") = "javascript:login_onsubmit(0);" Then  '这里不需要该了吗?
 btn.InvokeMember("click")
End If
Next

前面没有问题,后面不需要改了吗?这样也登录不了。

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/5 12:24:00 [显示全部帖子]

怎么还是不行呢?

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:seafile.table


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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/5 15:26:00 [显示全部帖子]

.NET Framework 版本:2.0.50727.8784
Foxtable 版本:2017.6.12.1
错误所在事件:窗口,窗口1,AfterLoad
详细错误信息:
未设置对象变量或 With 块变量。

Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
web.ScriptErrorsSuppressed = True
web.Navigate("http://123.57.251.28:8000/accounts/login/")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
MessageBox.show("1")  '以下开始出错
Dim el = web.Document.GetElementByID("login")
el.setattribute("value", "foxtable@163.com")
MessageBox.show("2")
Dim el2 = web.Document.GetElementByID("password")
el2.setattribute("value", "123456")
MessageBox.show("3")
Dim btns = web.Document.GetElementsByTagName("input")
MessageBox.show("4")
For Each btn As object In btns
    If btn.getattribute("value") = "登录" Then
        btn.InvokeMember("click")
    End If
Next

[此贴子已经被作者于2017/8/5 15:31:32编辑过]

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/5 15:35:00 [显示全部帖子]

多谢版主,两个都判断以下就OK.从而实现FT集成私有云系统。

Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
web.ScriptErrorsSuppressed = True
web.Navigate("http://123.57.251.28:8000/accounts/login/")
Do Until web.ReadyState = 4
 Application.DoEvents
Loop
Dim el = web.Document.GetElementByID("login")
If el IsNot Nothing Then
el.setattribute("value", "foxtable@163.com")
End If
Dim el2 = web.Document.GetElementByID("password")
If el2 IsNot Nothing Then
el2.setattribute("value", "123456")
End If
Dim btns = web.Document.GetElementsByTagName("input")
For Each btn As object In btns
If btn.getattribute("value") = "登录" Then
 btn.InvokeMember("click")
 End If
Next
[此贴子已经被作者于2017/8/5 15:45:48编辑过]

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/6 21:47:00 [显示全部帖子]

版主,我今天想改进一下功能,但是发现一个奇怪的现象。

 

1.昨天能够正常登陆账号,今天不能登陆了。

 

2.加入messagebox之后可以正常登陆,注释掉之后就不能登陆了。这是为何?为何有没有messagebox结果不一样呢?

 

代码如下:

 

Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
web.ScriptErrorsSuppressed = True
web.Navigate("http://123.57.251.28:8000/accounts/login/")
Do Until web.ReadyState = 4
Application.DoEvents
Loop
'MessageBox.show("1")
Dim el = web.Document.GetElementByID("login")
If el IsNot Nothing Then
el.setattribute("value", "foxtable@163.com")
End If
'MessageBox.show("2")
Dim el2 = web.Document.GetElementByID("password")
If el2 IsNot Nothing Then
el2.setattribute("value", "123456")
End If
'MessageBox.show("3")
Dim btns = web.Document.GetElementsByTagName("input")
For Each btn As object In btns
If btn.getattribute("value") = "登录" Then
btn.InvokeMember("click")
End If
Next

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:seafile2.table


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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2017/8/6 23:12:00 [显示全部帖子]

多谢版主指导,但是楼上的代码同样存在这样一个问题。

当用户没有登录的时候,可以正常登录,但是当用户登陆后再次打开之后(关闭窗口再次打开),窗口都无法正常打开了,直接没有反应了。窗口设计器也无法关闭。

关闭窗口时清除cookies也不行 
Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
web.ScriptErrorsSuppressed = True
web.Navigate("http://123.57.251.28:8000/accounts/login/")
MessageBox.show("1")  '当第一次打开窗口,用户成功登陆后,再次打开窗口,代码执行到这里就不执行了
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementByID("login") IsNot Nothing
Application.DoEvents
Loop
MessageBox.show("2")
Dim el = web.Document.GetElementByID("login")
If el IsNot Nothing Then
el.setattribute("value", "foxtable@163.com")
End If
MessageBox.show("3")
Dim el2 = web.Document.GetElementByID("password")
If el2 IsNot Nothing Then
el2.setattribute("value", "123456")
End If
Dim btns = web.Document.GetElementsByTagName("input")
For Each btn As object In btns
If btn.getattribute("value") = "登录" Then 
btn.InvokeMember("click")
End If
Next

[此贴子已经被作者于2017/8/7 7:56:27编辑过]

 回到顶部