标签: running-object-table

访问运行对象表时出现问题

在我的程序中,我使用运行对象表(ROT)来确保只运行一个程序实例.由于我从一位不幸离开公司的开发人员那里"继承"了这段代码,我是解决问题的穷人.代码工作正常,但我们有3个客户(39,000个)将获得AccessDeniedException.每个客户都以用户模式运行软件.

有什么建议可能是错的吗?

bool retVal = false;
IMoniker[] arrMoniker = new IMoniker[1];
IBindCtx bindCtx = null;
string displayName;
int hResult;
int mkSys;
Guid clsidRot;
bool guidCompare = false;

IntPtr number = IntPtr.Zero;
moreObjectsListed = false;
objectFromRot = null;

try
{
    // check the objects in the running object table for fitting the specified class id
    while ((retVal == false) && (0 == enumMoniker.Next(1, arrMoniker, number)))
    {
        hResult = CreateBindCtx(0, out bindCtx);
        if (hResult == 0)
        {
            arrMoniker[0].IsSystemMoniker(out mkSys);

            if …
Run Code Online (Sandbox Code Playgroud)

c# running-object-table

21
推荐指数
1
解决办法
5250
查看次数

我在哪里可以获得像 IROTVIEW 这样的运行对象表查看器?

曾几何时,Windows SDK(或 Visual Studio)有一个名为 IROTVIEW 的工具,用于枚举运行对象表 (ROT)

我现在在哪里可以得到这个工具?

com ole running-object-table

5
推荐指数
1
解决办法
4869
查看次数

有人有运行对象表查看器的 C# 源代码吗?

在这里回答我自己的问题。

运行对象表 (ROT) 是 Microsoft 组件对象模型 (COM) 的产物,Excel 和 Word 文档可以在其中进行自我注册,以便计算机上的任何其他应用程序可以访问它们。因此,ROT 促进了对象嵌入和链接 (OLE) 以及进程间通信 (IPC)。

曾经有一个名为 ROTViewer.exe 的程序,可以追溯到 Visual Basic 6 时代,它允许开发人员查看 ROT 的内容。令人惊讶的是,没有人在 StackOverflow (SO) 上发布与 ROTViewer 等效的 C# 列表。

有人有源码吗?

c# com running-object-table

2
推荐指数
1
解决办法
1628
查看次数

标签 统计

running-object-table ×3

c# ×2

com ×2

ole ×1