- html - 我的下拉菜单的内容关闭得太快
- c# - 使用 Html Agility Pack 从网页中的表中获取值而不使用 "SelectNode'
- html - 内容容器下的 CSS 下拉菜单
- html - 如何停止嵌套列表重叠父列表?
我们应用程序的“文档”是单个二进制文件。
我们的客户问我们是否可以将类似 MS Office 的文档属性添加到我们的文档文件中,以便用户更容易管理它们。我所说的更易于管理是指 Windows 资源管理器能够在工具提示中显示常用文档属性。
我的研究似乎表明我们应该考虑将 OLE 结构化存储作为我们数据文件的基础。我看到这种技术也被描述为 MS 结构化存储、OLE 2 复合文档格式和 Windows 文件元数据。
我对使用 OLE 结构化存储的担忧是,Office 2007 或 2010 似乎不再使用此文件格式,并且 OLE 结构化存储需要注册 DSOFILE.DLL ActiveX 组件,我们的许多客户将无法注册使用,因为他们在锁定的工作站上运行我们的软件,用户没有安装软件的管理员权限。 (我们的应用软件是纯XCOPY部署)。
希望听到关于我们的选择的想法。
谢谢,马尔科姆
最佳答案
我很确定您的最佳答案是使用 OLE 复合文档。
Microsoft 可能已经停止使用它,但那是因为他们已经转向 XML 文件格式。除非您愿意将当前的文件格式转换为 XML,否则我认为您不会对标签的新标准感兴趣。
您可以让您的应用程序保存两个文件,一个仅用于标记的 XML 文件和一个二进制数据文件,但这只会给您的用户带来痛苦。 OLE 复合文档格式的全部要点是允许多个"file"在一个文件中绑定(bind)在一起。
此外,如果现代 Windows 不支持内置的 OLE 复合文档,我会感到非常惊讶。我敢肯定,早在十多年前的 Microsoft Word 6.0 中,文档就保存在这个 OLE 中复合文档格式。为什么 Windows XP 或更新版本需要额外的 .DLL 文件才能解析出标签?
使用 OLE 复合文档格式的最好的事情是用户标签将与文件一起使用,无论是什么:如果用户将文件写入文件服务器,如果用户将文件放在电子邮件中,如果用户将文件刻录到 CD,无论如何。 (我写的第一个答案很糟糕,我删除了它;即使它起作用了,它也会将用户标签放在文件之外,我越想越不高兴。)
因此,我建议您尝试创建一个 OLE 复合文档,然后在标准安装的 Windows XP 中的 Windows 资源管理器中查看该文件。看看您是否可以在不需要下载和安装 ActiveX .DLL 的情况下看到标签。我很确定它会起作用。 (但我真的不再做 Windows 了,所以我不能方便地为你测试这个。)
编辑:好的,我刚刚做了一个测试。我在工作,这里有一台 Windows 计算机。我用Word 2007做了一个文档,我把文档保存为Word 97格式。我查看了 Windows 资源管理器中的文档属性;作者姓名在标签中可见。我在“评论”中添加了文本,然后在 Word 2007 中打开文件。然后我就可以查看评论了(单击左上角的“office”图标圆圈,选择“准备”,选择“属性”)。
所以,我的理论有一些证据支持它:我没有安装任何特殊软件,我的 Windows 资源管理器只使用带有标签的 OLE 复合文档格式 Word 文件。 (可能是 Microsoft Office 安装了一些特殊的 .DLL 以使用 Windows Explorer 的标签;我确实在那台计算机上安装了 Microsoft Office 2007。但是您的客户可能也有 Microsoft Office,所以即使是这种情况,我仍然认为这是最好的解决方案。)
建议你谷歌搜索“OLE复合文档格式”,看看这个格式怎么写。我在这里找到了一个如何阅读标签的例子:http://support.microsoft.com/kb/186898
关于python - 创建类似 MS Office 文档的文件格式以公开文档属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996162/
学习SQL。有一个简单的带有字段标题的桌面游戏。我想根据标题进行搜索。如果我有一款名为 Age of Empires III: Dynasties 的游戏,并且我使用 LIKE 和参数 Age of
我正在尝试为以下数据结构创建镜头。我正在使用lens-family . data Tree = Tree { _text :: String, _subtrees ::
我发现很难理解这一点。比如说,在 Python 中,如果我想要一个根据用户输入在循环中修改的列表,我会有这样的内容: def do_something(): x = [] while(
我有一个像这样的 mysql 查询 SELECT group_name FROM t_groups WHERE group_name LIKE '%PCB%'; 结果是 group_name ----
我的数据库表中有超过一百万条记录。当我使用like时非常慢,当我使用match against时他们丢失了一些记录。 我创建帮助表: 标签列表 tag_id tag_name tag_rel_me
我在我的一个 Java 项目中使用 JXBrowser 来简单显示 googlemaps 网页,以便我可以在那里跟踪路线,但最近我想改进该项目,但我的问题是 JXBrowser 的许可证过期(只有一个
小问题:如何将 mysql_escape_string 变量包含在 like 子句中? "SELECT * FROM table WHERE name LIKE '%". %s . "%'" 或
我尝试使用几个jquery消息插件,例如alertify . 但我注意到的主要事情是系统消息框会停止后台功能,直到用户响应。其他插件没有此功能。 有没有办法将此功能添加到 jquery 插件中?可以扩
我是 Ruby 新手。我过去使用过 shell。我正在将 shell 程序转换为 ruby。我有以下命令 cmd="cat -n " + infile + " | grep '127.0.0.1
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
当我研究 Rust 时,我试图编写一个 Rust 函数来查看任何可迭代的字符串。 我最初的尝试是 fn example_1(iter: impl Iterator); fn example_2(ite
我必须在我的项目中使用代码拆分。但无论如何,第一次初始下载有一些代码。 现在我想向最终用户展示代码下载(.cache.html - 或其他代码拆分)的进度,例如 gmail 启动进度。 请你帮帮我。
我今天找到了一个错误,它最终是由我代码中的以下片段引起的(我试图在列表中仅过滤“PRIMARY KEY”约束): (filter #(= (% :constraint_type "PRIMARY KE
我正在尝试在关键字段上实现检查约束。关键字段由 3 个字符的前缀组成,然后附加数字字符(可以手动提供,但默认是从序列中获取整数值,然后将其转换为 nvarchar)。关键字段定义为 nvarhcar(
我正在尝试使用以下方式创建 List 实例: List listOne = new ArrayList(); List listTwo = new ArrayList(){}; List listTh
我过去曾为 iOS 开发过,最近转向了 mac 开发。我开始了一个“感受”事物的项目,但遇到了一个问题。我试图创建一个 NSTableView 来显示多个项目,包括一个标签、一个 2 UIImageV
我正在尝试编写一个查询,该查询将返回哪些主机缺少某个软件: Host Software A Title1 A
AFAIK,在三种情况下别名是可以的 仅限定符或符号不同的类型可以互为别名。 struct 或 union 类型可以为包含在其中的类型设置别名。 将 T* 转换为 char* 是可以的。 (不允许相反
\s 似乎不适用于 sed 's/[\s]\+//' tempfile 当它为工作时 sed 's/[ ]\+//' tempfile 我正在尝试删除由于命令而出现在每行开头的空格: nl -s ')
我正在使用 ocamlgraph 在 ocaml 中编写程序,并想知道是否要将其移植到 F# 我有哪些选择?谢谢。 最佳答案 QuickGraph .Net 最完整的图形库之一 关于F# 图形库(类似
我是一名优秀的程序员,十分优秀!