从 Windows 服务通过调制解调器播放语音

2024-01-04

我正在开发一个 VB.NET Windows 服务,该服务持续检查 BMS 数据库是否有新警报,并拨打电话远程警告操作员。我目前正在使用 .NET TAPI 包装器和 SAPI 5.3 互操作程序集,我通过电话交谈的步骤是:

  1. 初始化TAPI接口;
  2. 拨打接线员的电话号码;
  3. 获取语​​音调制解调器waveOut设备id
  4. 将语音输出设置为该设备ID;
  5. 让 SAPI 施展魔法。

如果我将代码编译为 Windows 控制台或表单应用程序,这一切都工作正常,但一旦我将其编译为 Windows 服务并运行,第 5 步就永远不会发生 - 语音调制解调器呼叫但保持沉默;其他一切都正常,甚至数字监控。 现在我知道 Windows 服务不应该与桌面交互,因此 UI 元素和播放声音之类的东西是禁忌,但我正在努力寻找一种不涉及使用 Wave API 并且可以开发的替代方案在合理的时间范围内。有任何想法吗?


SAPI 通常需要某种消息泵和窗口句柄,而 Windows 服务通常没有这些。你可以创建一个仅消息窗口 http://msdn.microsoft.com/en-us/library/ms632599(VS.85).aspx以稍微安全的方式处理消息(请注意,服务中的任何 hwnd 都会向您开放粉碎攻击 http://en.wikipedia.org/wiki/Shatter_attack,因此请确保您以用户身份运行服务,而不是以 SYSTEM 或 LocalMachine 身份运行,以减少攻击面)。您还需要泵送消息(通过应用 http://msdn.microsoft.com/en-us/library/9398s20y.aspx.Run 或 Application.DoEvents 等)也是如此。

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

从 Windows 服务通过调制解调器播放语音 的相关文章

  • 尝试关闭 Visual Basic 中所有打开的窗体

    我想要它 所以当单击我的按钮时 我退出我的应用程序 我尝试了一个简单的 for 循环 Private Sub CloseAllToolStripMenuItem Click sender As Object e As EventArgs H
  • Visual Studio 将 1.1 扩展为 1.1000000000000001

    至少对我来说 这是有史以来最奇怪的 Visual Studio 2010 行为 我正在开发 MVC3 项目 我从另一个项目 也包括 VS2010 MVC1 如果重要的话 复制了一行代码 如下所示 target height height 1
  • 正则表达式 VB.Net 正则表达式.替换

    我正在尝试执行一个简单的正则表达式查找和替换 在字符串中的一些数字后面添加一个制表符 如下所述 From a users 12345 badges To a users 12345 badges 我正在使用以下内容 s regex repl
  • 多线程应用程序的调用方法?

    我的应用程序中有一个错误 与here http forums ni com t5 Measurement Studio for NET Waveform Graph quot X quot Error m p 217817 highligh
  • 更改数据网格列顺序或索引

    这是我无法相信我无法弄清楚的事情 请告诉我我错过了一些简单的事情 我有一个数据网格 我用 LINQ 填充它以及一个自定义类来向其中添加数据 之后 我需要按特定顺序排列数据 它似乎忽略了我 如何更改列属性 例如索引等 这是我正在使用的 LIN
  • 为什么 VB.NET 和 C# 中针对值检查 null 存在差异?

    In VB NET http en wikipedia org wiki Visual Basic NET有时候是这样的 Dim x As System Nullable Of Decimal Nothing Dim y As System
  • 将读取器项目存储在数组中

    Dim myReader As OleDbDataReader Dim Index As Integer Dim status As Array Index 0 cmd CommandText SELECT CPALLOCATIONTIME
  • 如何在 ASP.NET 中检查用户是否在线?

    该网站 最后活动 1 分钟前来自此 IP 地址 背后的逻辑是什么 如果您在隐藏字段中获取用户的 IP 地址 我该如何在 vb net 中执行此操作 我如何查看有多少用户在线使用该应用程序 ASP NET 会员服务支持此功能 要获取特定用户的
  • 使用 VB.Net 的 GhostText

    大家好 我尝试创建一个幽灵文字在文本框上使用标签 我使用的是VB Net2005 我用这段代码完成了这个 Public Class frmDataEntry Private Sub PhantomTextLastName If txtLas
  • 使用 .NET 将两个 PNG 图像合并为一张图像

    我有两个 其实很多 PNG http en wikipedia org wiki Portable Network Graphics png 我的应用程序中的图像 两者都有透明区域 我想在我的应用程序中拍摄两个图像 将它们组合起来 并将结果
  • C#“var”关键字在 VB.NET 中的等价物是什么?

    例如 我如何获得 VB NET静态类型局部变量是static赋值右侧的表达式的类型 像这样 Dim http msdn microsoft com en us library 7ee5a7s1 aspx我的变量 3 你还需要 选项推断 ht
  • 如何在VB.NET中画一条线

    我正在尝试用 VB NET 画一条简单的线 我的代码如下 但是当我运行代码时 只显示表单 没有线 我在这里做错了什么 Public Class Form1 Dim pen As System Drawing Graphics Private
  • 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/免注册 COM?

    我必须在 C DLL 中使用 VB COM DLL 我弄清楚了如何从 C DLL 访问 VB COM DLL 并且它可以工作 现在我遇到了一个问题 我必须使用隔离的 COM 免注册 COM 因为我无法在必须使用它的每台 PC 上注册 DLL
  • 表单上的 KeyEvents 只能与 CTRL 结合使用

    Code Private Sub KeyHandling ByVal sender As Object ByVal e As System Windows Forms KeyEventArgs Handles Me KeyDown Sele
  • 用 C# 启动 Windows 服务

    我想启动一个刚刚安装的Windows服务 ServiceBase ServicesToRun if bool Parse System Configuration ConfigurationManager AppSettings RunSe
  • 命令式代码与声明式代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图理解命令式范例和声明式范例之间的区别 因为我必须对 Visual Basic 进行分类 NET 在不同的范式中 除了面向对象之外
  • 为什么 Dictionary 上的这个 Linq 查询不作为数据源工作

    我在VB中有以下内容 Dim sources From source In importSources Select New With Type source Key Source source Value Name dgridSource
  • 特殊名称属性还允许哪些其他巧妙的技巧?

    研究中一个问题 https stackoverflow com questions 13259162 vb net power operator overloading from c sharp关于实现 Visual Basic Power
  • 由于继承抽象类而禁用设计器?

    我有一个项目的解决方案 那个项目中有 40 或 50 种形式 我制作了 4 个基本形式 所有其他形式都可以继承 所有 4 个基本表单都继承 System Windows Forms Form 几乎 90 的形式继承了前 2 个基本形式之一
  • .Net 2.0 ServiceController.GetServices()

    我有一个启用了 Windows 身份验证的网站 从网站的页面中 用户可以启动一项对数据库执行某些操作的服务 启动该服务对我来说效果很好 因为我是服务器上的本地管理员 但我刚刚让一个用户测试了它 但他们无法启动该服务 我的问题是 有谁知道一种

随机推荐

  • 使用 System.Drawing 编辑多页 TIFF 图像

    我试图通过从图像创建图形来编辑多页 tiff 但遇到了错误消息 无法从具有索引像素格式的图像创建 Graphics 对象 如何编辑多页 tiff 我写了一些东西来从多页 tiff 文件中提取单页 Load as Bitmap using B
  • Angular 多个 http post 请求给我错误:“net::ERR_INSUFFICIENT_RESOURCES”

    我正在导入一个 xlsx 文件 其中有 6000 个客户 我正在尝试循环客户并创建一个http post请求每个客户 但我收到此错误 net ERR INSUFFICIENT RESOURCES 我怎样才能插入这些客户 它们需要通过我的后端
  • React-router-dom useHistory() 不起作用

    The 使用历史记录 钩子在我的项目中不起作用 我把它放在不同的组件中 但它们都不起作用 我正在使用 react router dom 5 2 0 import useHistory from react router dom const
  • 在python中查找列表内的子列表

    我有一个数字列表 l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 删除 JTable 中的单元格编辑器边框 (Windows LaF)

    我有一个基于 JTextField 的单元格编辑器 带有这个丑陋的黑色边框 忽略左侧的插入符号 有没有办法将其删除 使其看起来与此类似 创建表后 您可以尝试以下操作 DefaultCellEditor editor DefaultCellE
  • 如何制作复杂列表的完全非共享副本? (深拷贝是不够的)

    看一下这段 Python 代码 a 1 2 3 b 4 5 6 c a b b a 1 2 3 4 5 6 4 5 6 1 2 3 c 0 0 append 99 1 2 3 99 4 5 6 4 5 6 1 2 3 99 注意如何修改一个
  • 如何将 bean 注入 Spring Condition 类?

    我正在定义条件 稍后我将检查这些条件以动态加载我的服务接口的两个实现之一 Component public class IsPolicyEnabled implements Condition Autowired private MyPro
  • 如果可以构造 HttpContext 为什么要模拟它呢?

    我一直在 ASP NET 中以某种方式伪造 模拟 存根 HttpContext 在 ASP NET MVC MonoRail 中更容易 但我可以看到 HttpContext 本身可以轻松构建 只需几行代码即可 var tw new Stri
  • 我可以通过计算表达式来确定并可能设置为 null 的属性吗?

    我有一个服务 它接受一个对象 并根据其中的属性执行不同的操作 这样 这些属性中的任何一个都可以为 null 这意味着不执行此操作 我正在尝试创建一个非常简单易用的 API 来在某些属性可能深达多个级别的情况下执行此操作 这是当前实现的示例
  • 错误“命名空间不直接包含字段或方法等成员”

    我正在尝试构建我的 C 项目 但收到错误消息 命名空间不直接包含字段或方法等成员 它标记了 app config 文件的第一个字符 小于号 我检查了所有文件 查找命名空间内直接存在变量或函数的位置 但什么也没发现 app config 看起
  • 如何在 Django 中用 None 保存 FileField?

    我有带有 Avatar 字段的模型配置文件 使用 FileField class Profile models Model avatar models FileField Uploaded avatar of profile storage
  • 查找文件中包含重复字符的行

    我需要一些帮助来查找文本文件中包含重复字符的行 我更喜欢使用 bash 但任何其他方法都可以 一个小例子只是为了让事情变得清楚 文件 txt 1234 11234 abcd 12234 ab321 1233 zs11w 12w2 所需的输出
  • 这两种算法的结果有区别吗?

    这两种算法用于检查有效的会员号码 第一个是公司给我的 第二个是我设计的 从我的测试中我看不出它们在功能上有任何区别 有没有任何情况下任何人都可以看到他们会返回不同的输出 test input 6014355021355010 or 6014
  • 使用适用于 Amazon S3 存储桶的 Java SDK 下载大量文件

    我有大量文件需要从 S3 存储桶下载 我的问题类似于本文 https stackoverflow com questions 1051275 downloading a large number of files from s3除非我想用
  • UIWebView背景颜色

    我正在将 HTML 字符串加载到 UIWebView 中 以便能够查看富文本 到目前为止 一切都很好 但我有一个小问题 在我的 Nib 文件中 我将背景属性设置为绿色 然而 当它显示时 背景是白色的 然后 在类文件中 我添加了以下内容 my
  • Django 外键查询最佳实践

    模型 py class Category models Model name models CharField max length 50 class SubCatergory models Model parent category mo
  • Plotly:并排图之间的 shareX

    我想要两个并排的图共享相同的 X 轴和相同的工具栏 这意味着 通过放大第一个图 第二个图应自动调整大小到相同的缩放区域 一种方法是将图堆叠在另一个之上 使用shareX TRUE 但我需要他们并排 在 python 中似乎有一种方法可以做到
  • 便宜又令人愉快的 rand() 替换

    在对大型游戏程序进行分析后 我发现库函数 rand 消耗了总处理时间的相当一部分 我对随机数生成器的要求不是很繁重 它是否通过大量纯随机性统计测试并不重要 我只是想要一些便宜又令人愉快而且速度非常快的东西 有什么建议么 很少有常用的算法比L
  • 如何使用 useContext 更改 Context 的值?

    使用useContextReact 16 8 的 hook 效果很好 您可以创建组件 使用挂钩并利用上下文值 不会出现任何问题 我不确定如何将更改应用于上下文提供程序值 1 useContext 钩子严格来说是消费上下文值的一种手段吗 2
  • 从 Windows 服务通过调制解调器播放语音

    我正在开发一个 VB NET Windows 服务 该服务持续检查 BMS 数据库是否有新警报 并拨打电话远程警告操作员 我目前正在使用 NET TAPI 包装器和 SAPI 5 3 互操作程序集 我通过电话交谈的步骤是 初始化TAPI接口