IAccessible:如何在Mozilla Firefox中获取网址栏的值?

用户名

我正在使用保证从URL栏获取值的代码进行工作,但现在IAccessible get_accValue属性的某些参数中出现一个编译错误。那么,如何解决?

任何帮助将不胜感激!

这是我的代码:

uses
  oleacc;

function ffdoc: THandle;
const
  A_szClassName: array[0..6] of PChar = ('MozillaUIWindowClass','MozillaWindowClass',
  'MozillaWindowClass','MozillaWindowClass','MozillaContentWindowClass',
  'MozillaWindowClass','MozillaWindowClass');
var
  i: Integer;
begin
  Result:= 0;
  for i:= 0 to 6 do
    Result:= FindWindowEx(Result,THandle(nil),A_szClassName[i],nil);
end;

function ffurl:string;
var
  acc: IAccessible;
  pw: PWChar;
begin
  if AccessibleObjectFromWindow(ffdoc,OBJID_CLIENT,IID_IAccessible,Pointer(acc)) = 0 then
    Acc.get_accValue(CHILDID_SELF,pw);
  Result:= pw;
end;
雷米·勒博

如果查看的声明oleacc.IAccessible.get_accValue(),很明显为什么会出现错误:

function Get_accValue(varChild: OleVariant; out pszValue: WideString): HResult; stdcall;

您正在试图通过一个PWChar在那里的out WideString预期。德尔福是非常严格的,当谈到varout参数。

您需要更改pw变量:

function ffurl:string;
var
  acc: IAccessible;
  pw: WideString;
begin
  if AccessibleObjectFromWindow(ffdoc, OBJID_CLIENT, IID_IAccessible, acc) = 0 then
    acc.get_accValue(CHILDID_SELF, pw);
  Result := pw;
end;

COM使用BSTR其字符串,Delphi使用该字符串包装WideString因此,始终WideString在将字符串传入/传出COM接口时使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Mozilla Firefox 75中禁用地址栏扩展?

来自分类Dev

如何在Mozilla Firefox中禁用新的一键式搜索栏界面?

来自分类Dev

如何在 Mozilla Firefox 浏览器中隐藏选项卡上方的栏

来自分类Dev

如何在Mozilla FIrefox中播放MKV视频?

来自分类Dev

如何在Windows Mozilla Firefox中修复字体?

来自分类Dev

如何在Ubuntu 12.04中升级Mozilla firefox

来自分类Dev

如何在Mozilla FIrefox中播放MKV视频?

来自分类Dev

如何在Mozilla FireFox中禁用页面搜索

来自分类Dev

如何在Mozilla Firefox上保持图像比例?

来自分类Dev

如何在Mozilla Firefox中一键复制文本?

来自分类Dev

如何在Mozilla Firefox中使卡的内部长度相同?

来自分类Dev

如何在Mozilla Firefox Quantum上使用IDM

来自分类Dev

如何从Firefox 68网址栏中删除“访问”和“使用...搜索”?

来自分类Dev

如何在Mozilla插件中调用用户函数?

来自分类Dev

如何在Mozilla Lightning / Thunderbird中搜索任务和事件?

来自分类Dev

如何在Mozilla Thunderbird中禁用聊天记录?

来自分类Dev

如何在Mozilla Firebug中检查两者的价值?

来自分类Dev

如何获取网址的哈希值?

来自分类Dev

如何在javascript中获取基本网址

来自分类Dev

如何在Mozilla Firefox中的只读输入类型文本框中不显示游标

来自分类Dev

如何在Mozilla Firefox 36.0.4中的CodedUI测试中启动URL

来自分类Dev

如何在.htaccess网址重写中以多种方式获取请求参数的值

来自分类Dev

如何在Mozilla Firefox中禁用“恢复上一个会话”?

来自分类Dev

如何在Mozilla FireFox中使用javascript在wbpage中显示日期?

来自分类Dev

如何在Mozilla Firefox中禁用“恢复上一个会话”?

来自分类Dev

如何在Mozilla FireFox中使用javascript在wbpage中显示日期?

来自分类Dev

如何从网址栏中删除Chrome的“记住的网址”中的条目?

来自分类Dev

当我在地址栏中输入网址而不在Google中搜索“ blabla://”时,如何强制Chrome / Firefox转到该网址“ blabla://”?

来自分类Dev

如何从搜索栏中复制网址?

Related 相关文章

  1. 1

    如何在Mozilla Firefox 75中禁用地址栏扩展?

  2. 2

    如何在Mozilla Firefox中禁用新的一键式搜索栏界面?

  3. 3

    如何在 Mozilla Firefox 浏览器中隐藏选项卡上方的栏

  4. 4

    如何在Mozilla FIrefox中播放MKV视频?

  5. 5

    如何在Windows Mozilla Firefox中修复字体?

  6. 6

    如何在Ubuntu 12.04中升级Mozilla firefox

  7. 7

    如何在Mozilla FIrefox中播放MKV视频?

  8. 8

    如何在Mozilla FireFox中禁用页面搜索

  9. 9

    如何在Mozilla Firefox上保持图像比例?

  10. 10

    如何在Mozilla Firefox中一键复制文本?

  11. 11

    如何在Mozilla Firefox中使卡的内部长度相同?

  12. 12

    如何在Mozilla Firefox Quantum上使用IDM

  13. 13

    如何从Firefox 68网址栏中删除“访问”和“使用...搜索”?

  14. 14

    如何在Mozilla插件中调用用户函数?

  15. 15

    如何在Mozilla Lightning / Thunderbird中搜索任务和事件?

  16. 16

    如何在Mozilla Thunderbird中禁用聊天记录?

  17. 17

    如何在Mozilla Firebug中检查两者的价值?

  18. 18

    如何获取网址的哈希值?

  19. 19

    如何在javascript中获取基本网址

  20. 20

    如何在Mozilla Firefox中的只读输入类型文本框中不显示游标

  21. 21

    如何在Mozilla Firefox 36.0.4中的CodedUI测试中启动URL

  22. 22

    如何在.htaccess网址重写中以多种方式获取请求参数的值

  23. 23

    如何在Mozilla Firefox中禁用“恢复上一个会话”?

  24. 24

    如何在Mozilla FireFox中使用javascript在wbpage中显示日期?

  25. 25

    如何在Mozilla Firefox中禁用“恢复上一个会话”?

  26. 26

    如何在Mozilla FireFox中使用javascript在wbpage中显示日期?

  27. 27

    如何从网址栏中删除Chrome的“记住的网址”中的条目?

  28. 28

    当我在地址栏中输入网址而不在Google中搜索“ blabla://”时,如何强制Chrome / Firefox转到该网址“ blabla://”?

  29. 29

    如何从搜索栏中复制网址?

热门标签

归档