【发布时间】:2015-04-04 02:19:53
【问题描述】:
我想做的事情似乎很简单,但我找不到任何参考。我只想将我的 Twebbrowser(或任何嵌入式浏览器或合适的组件 - 为了论证我只是使用 Twebbrowser 作为我需要的任何组件的指示器 - 未知的未知数)作为默认值。场景是,当我尝试访问 Dropbox 时,它会弹出一个带有 userID/Password 的网页,然后它会弹出一个带有 allow 按钮的网页。
我只是希望这些网页出现在我的 Twebbrowser 中,而不是显示用户默认浏览器的实例(即我的情况下的 chrome)。当我处理完这两个页面后,我只想将默认浏览器设置回原来的样子。看起来很简单,但我不知道如何实现这一点。回顾一下:
- 我尝试通过 DLL 调用访问保管箱
- 如果我的凭据是从上一次会话中保存的,则系统会继续进行
- 如果我的凭据没有保存,那么 Dropbox 会弹出一个登录网页(我希望在我的 Twebbrowser 中 NOT 在用户默认浏览器中)
- 我登录后,Dropbox 弹出一个“允许访问”页面(我希望在用户默认浏览器中的 twebbrowser NOT 中再次显示该页面)
- 当我登录并允许访问保管箱时,我想重新启用用户的默认浏览器
关键是我没有向 Twebbrowser 组件提供 URL,系统正在生成完全超出我控制范围的活动,并且基于是否满足特定条件(我无法知道是否满足这些条件,例如,可能有会话 ID 和密钥,但这些可能已过期)。我在网上搜索过,找不到任何可能的东西。我不是专家,但我会认为像 ...Make this default... 这样的属性会很有用。这可能是非常简单的事情,但我无法弄清楚。
任何帮助将不胜感激。
【问题讨论】:
-
不要那样刮 Dropbox。使用他们自己的 API。顺便说一句,如果你要阻止用户通过他们安装的浏览器访问他们的存储,那么你就是在编写恶意软件。
-
我的 DLL 通过 REST 服务使用 Dropbox API。用户必须登录并允许访问(除非存储了会话密钥,请参阅 Dropbox)。这是在初始 REST 连接上完成的,同样没有恶意软件。然后用户输入他们的凭据,按下允许访问。我只是想在我的 Twebbrowser 而不是默认浏览器中使用它,因为它更整洁。我不会阻止用户通过他们安装的浏览器访问 Dropbox,你是从哪里得到的以及恶意软件垃圾来自哪里。我正在使用 Dropbox 发布的 API 并根据需要进行身份验证。请阅读帖子,在我看来你没有。
-
您提出的解决方案是错误的。你应该问问题而不是你错误的解决方案。
-
请再次阅读您自己的问题以及关于如何提问的 SO 规则。我们回答您提出的问题,而不是您想到的所有其他问题。你问我们如何解决一个应该解决另一个问题的问题。但是你走错路了。退一步询问最初的问题。
-
不能有“设为默认”这样的简单属性,因为控件不能是默认浏览器,应用程序可以。
标签: delphi internet-explorer indy10