如何查看 Word 文件是否受密码保护?

2023-12-04

我正在维护一个归档系统,该系统必须将各种文档格式转换为 tif。我的问题是受密码保护的 Word 文档。如果文档受密码保护,则 Word 会弹出一个响应,要求我输入密码。如果文档受密码保护,只要我可以告诉客户他需要对此采取措施,那就可以了。问题是,如果 Word 提示输入密码,我无法以编程方式注册。下面的代码是无需密码即可打开文档的标准互操作方式。如果我没有输入密码或输入错误的密码,Word 会通过弹出窗口以视觉方式提示我。除了使用 AutoHotKey 来查找弹出窗口之外,还有其他方法吗?如果我可以在文档文件中查找字符串或字符来判断它是否受到保护,那就可以了。

// Open the document...
this.document = wordApplication.Documents.Open(
   ref inputFile, ref confirmConversions, ref readOnly, ref missing, 
   ref missing, ref missing, ref missing, ref missing, 
   ref missing, ref missing, ref missing, ref visible, 
   ref missing, ref missing, ref missing, ref missing);

解决方案:

可以在 Word 中的 VBA 宏中完成此操作。因此,为了从 C# 执行此操作,您需要从 C# 创建宏并执行它。我没试过。但这里是代码:

Sub MyMacro()

Dim oDoc As Document

On Error Resume Next

Set oDoc = Documents.Open(FileName:="C:\MyFile.doc", PasswordDocument:=password)
Select Case Err.Number
    Case 0
     Debug.Print "File was processed."

    Case 5408
     'Debug.Print "Wrong password!"

    Case Else
     MsgBox Err.Number & ":" & Err.Description
End Select

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查看 Word 文件是否受密码保护? 的相关文章

  • 为什么libc++的shared_ptr实现使用完整内存屏障而不是宽松内存屏障?

    在boost的实现中shared ptr 它用放松内存排序以增加其引用计数 https github com boostorg smart ptr blob master include boost smart ptr detail sp
  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • 以编程方式检查页面是否需要基于 web.config 设置进行身份验证

    我想知道是否有一种方法可以检查页面是否需要基于 web config 设置进行身份验证 基本上如果有这样的节点
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • 构造函数中显式关键字的使用

    我试图了解 C 中显式关键字的用法 并查看了这个问题C 中的explicit关键字是什么意思 https stackoverflow com questions 121162 但是 那里列出的示例 实际上是前两个答案 对于用法并不是很清楚
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 当前的 c++ 工作草案与当前标准有何不同

    通过搜索该标准的 PDF 版本 我最终找到了这个链接C 标准措辞草案 http www open std org jtc1 sc22 wg21 docs papers 2012 n3376 pdf从 2011 年开始 我意识到我可以购买最终
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • C# 中条件编译符号的编译时检查(参见示例)?

    在 C C 中你可以这样做 define IN USE 1 define NOT IN USE 1 define USING system 1 system 1 IN USE 进而 define MY SYSTEM IN USE if US
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Promise.resolve 和 new Promise(resolve) 可以互换吗

    I think Promise resolve and new Promise resolve 是可以互换的 考虑一下 A new RSVP Promise function resolve reject resolve then func
  • 什么是存储缓冲区?

    谁能解释什么是加载缓冲区以及它与失效队列有何不同 以及存储缓冲区和写入组合缓冲区之间的区别 保罗 E 麦肯尼 Paul E Mckenny 的论文http www rdrop com users paulmck scalability pa
  • 检查像素是否透明 - Android

    我有一张 PNG 图片 角落里有透明像素 我试图提取这些透明像素的颜色代码 我使用了一个 xxxx 网站 它让我可以选择像素并返回其颜色代码 选择透明像素后我得到 RGB 代码 R 34 G 62 B 74 这不符合逻辑 我将 Bitmap
  • Unity - “SetDestination”只能在已放置在导航网格上的活动代理上调用。 UnityEngine.NavMeshAgent:SetDestination(Vector3)

    我现在用的是Unity5 尝试 setDestination 时出现此错误 SetDestination 只能在已放置在导航网格上的活动代理上调用 UnityEngine NavMeshAgent SetDestination Vector
  • 如何使用 vim 寄存器?

    I only know of one instance using registers is via CtrlR whereby I paste text from a clipboard 寄存器还有哪些其他用途 如何使用它们 您所了解的有
  • 如何转义 NULL 字节作为 Makefile 中 shell 命令的参数

    在 Makefile 中 我运行一个 shell 命令 我想传递一个 NULL 字节作为参数 以下尝试失败 echo shell bin echo n x00 ruby e puts STDIN read inspect 它生成 echo
  • React App 部署到 Azure Web 的流程?

    我目前正在尝试将默认的 React Web 应用程序部署到 Azure 但遇到了一个问题 虽然我将构建文件夹的内容部署到 azure 托管的 site wwwroot 文件夹 但在转到我的托管时最终会出现以下页面地址 https 项目名称
  • 带有用户控件的延迟加载选项卡

    我想在 AJAX 选项卡容器中使用延迟加载选项卡 我已经实现了 但我面临的问题是 当我单击按钮或触发该用户控件中的任何事件时 它不会被触发 什么都没发生
  • 如何在 C 中使用 /dev/random 或 urandom?

    我想用 dev random or dev urandom在C中 我该怎么做呢 我不知道如何在 C 中处理它们 如果有人知道请告诉我如何处理 谢谢 一般来说 最好避免打开文件来获取随机数据 因为该过程中有很多故障点 在最近的 Linux 发
  • 使用一个或多个参数实例化一个新的 PHP 类

    我有这个获取功能 public static function fetch class key try obj new class key catch Exception e return false return obj 它通过调用该类的
  • Scala:通过 if 语句更正表示类型的类型推断

    这是后续two 问题关于表示类型 它们是特征的类型参数 旨在表示有界类型成员 或类似的东西 底层的类型 我已经成功创建了类的实例 例如ConcreteGarage 有实例cars有界类型成员CarType trait Garage type
  • 实体框架 CTP5 代码优先映射 - 同一个表中的外键

    我如何使用模型构建器来映射这样的东西 哪里有一个可以为空的外键引用相同的表主键 Table Task taskID int pk taskName varchar parentTaskID int nullable FK 任务类别 publ
  • 如何在实体框架中使用“In”SQL关键字?

    这是我的 SQL 命令 SELECT KEY NAME from COMPANY c WHERE KEY IN select KEY from USER COMPANY where UserId UserId order by NAME a
  • 使用 JSON.Net 解析自定义日期格式

    我收到一个 JSON 日期以下格式 launch date 1250553600 我应该如何修改以下内容以包含自定义日期时间解析器 该解析器允许我将该数字转换为DateTime object JsonConvert DeserializeO
  • 创建 XSLT 转换以展平 multiRef 编码的 SOAP 消息

    输入是一个mutliRef 编码的SOAP 消息 文档 你怎么用 用于展平多引用的 XSLT 可以引用multiref节点来使用 多次 并且自身递归引用其他multiRef 节点 该结构中唯一可以安全引用的部分是 multiRef 元素以及
  • 如何设置机会状态 - Dynamics CRM?

    我正在尝试更新以下状态开放的机会通过使用赢得机会请求和失去机会请求MSDN 中提供了 API 我遵循了 MSDN 中给出的代码 我什至参考了 stackoverflow 的设置机会状态 但是 当我运行以下代码时开放的机会它抛出错误指出 Lo
  • 具有多个值的 HashMap [重复]

    这个问题在这里已经有答案了 我想在java中实现具有多个值的哈希表 即 if sample is a hashmap sample put 1 1 sample put 1 2 and sample get 1 将返回 2 个值 我怎样才能
  • 从数据框中删除列中以“@”开头的单词

    我有一个名为 tweetscrypto 的数据框 我试图从 text 列中删除以字符 开头的所有单词 并将结果收集到新列 clean text 中 其余的单词应该保持完全相同 tweetscrypto clean text tweetscr
  • 为什么强命名程序集不能使用未签名的程序集?

    要对程序集 A 进行签名 您必须确保 A 使用的所有程序集 B C D 均已签名 然后是 B C D 使用的所有程序集 依此类推 我不明白这有什么安全好处 我认为它应该可以防止篡改 但是程序集 A 可以打开任何文件 并且这些文件可以被篡改
  • 如何查看 Word 文件是否受密码保护?

    我正在维护一个归档系统 该系统必须将各种文档格式转换为 tif 我的问题是受密码保护的 Word 文档 如果文档受密码保护 则 Word 会弹出一个响应 要求我输入密码 如果文档受密码保护 只要我可以告诉客户他需要对此采取措施 那就可以了