Windows 剪贴板使用的一个深层次问题? (已解决) ( 积分: 200 )

  • 主题发起人 主题发起人 cpj7406
  • 开始时间 开始时间
C

cpj7406

Unregistered / Unconfirmed
GUEST, unregistred user!
项目中使用 Delphi 开发了一个 dll 类型的 COM 构件,构件涉及对剪贴板的操作、即:
Clipboard.SetTextBuf、Clipboard.AsText、Clipboard.Clear 等。

如果通过一个 exe 类型的客户程序来访问该 COM 构件,则一切表现正常。
如果通过 asp 或 asp.net 来访问该 COM 构件,则表现出不能对剪贴板进行任何操作,但是并不出错。

搜索查阅了众多的 Web 资源,依然未能知晓问题的原因及解决方法,因此在这里向大家请教一下、望不吝赐教。
 
可能和系统权限有关。
 
这个问题确实应该是和系统的安全、权限有关系!
项目过程中查询了大量的资料、包括检索 Microsoft.com 的资料库、目前为止仍然没有能够得到解决。估计需要在注册表的 NetDDE、DDE 等地方创建什么项、什么值?
 
这个问题已经自行解决。
我得想办法把这 200 分怎么收回来。
 
没人回答才可以收,还是发分吧,嘿嘿~
 
呵呵, 分数是收不回来了.
另外, 问问题的人自己解决问题了, 还是公布解决办法比较好.
----论坛的基本人品啊
 
呵呵,解決了也可以公佈解決方案啊!目的是共同學習嘛
 
呵呵,楼主公布答案吧,为大富翁建设做贡献。
 
针对此问题,经过多次的技术探索和尝试,最终得以解决、并提出以下技术发现:
1)目前感觉和系统的权限控制并无关系;
2)剪贴板是一块全局的共享内存,但是可能并非在所有操作系统的进程间共享,而可能是在当前登录交互式用户的进程间共享;
3)执行 Asp 或 Aspx 的系统用户并非当前登录用户,而是 “Internet 来宾帐户”、“启动 IIS 进程帐户”或“ASPNET”;
4)基于2)、3)的原因,其实 Asp 或 Aspx 调用 COM 构件后对剪贴板的操作并无问题,只是那个剪贴板和使用 Clipbrd.exe 所查看的剪贴板不是同一个!
5)我们所采用的解决办法:将 dll 类型的进程内 COM 构件改造为 exe 类型的进程外构件,DCOM 配置时使用“交互式用户”,即可。
 
后退
顶部