问题标签 [advapi32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - CryptAcquireContext -- 未解析的外部
我正在链接第三方库(Poco C++)并从链接器中获取以下未解决的符号错误。它似乎无法找到“CryptAcquireContextW”、“CryptReleaseContext”和“CryptGenRandom”。
根据此处的 Microsoft 信息,这些函数可使用“Advapi32.lib”链接。我已将其添加到我的链接器输入中,但符号仍未解析。
我已经验证了 Advapi32.lib 在搜索路径中,而 Advapi32.dll 在 Windows 目录中,所以我不确定这个错误是如何继续发生的。
想法,有人吗?
谢谢!
c++11 - Visual Studio 2013 社区版中缺少 Advapi32.lib
我的代码在使用 VS 2013 Pro 的 PC #1 上编译和链接得很好。使用 VS 2013 社区版在 PC #2 上链接失败。失败是来自 Advapi32.lib 的三个未解决的外部 - CryptAcquireContextW、CryptReleaseContext 和 CryptGenRandom。
这导致了几个关键问题:
- 为什么 VS 2013 在找不到链接器输入行上的库时不警告您?
- 为什么 Advapi32.lib 在社区版中不可用?
- 可以做些什么来解决这个问题?
谢谢。
c# - 启动应用程序时 advapi32.dll 中的 EntryPointNotFoundException
我在 Windows 7 x64 SP1 上的 Visual Studio 2013 Update 5 中开发 WPF 应用程序。启动程序后,通过 http 下载 xml 文件并解析它。直到今天一切正常,问题是异常开始突然发生,项目没有发生重大变化,没有添加新的引用。
现在,当启动程序抛出System.Windows.Markup.XamlParseException
消息“方法或操作未实现”时,它甚至发生在之前,所以我的代码InitializeComponent()
没有一行被执行。然后我查看了Visual Studio 中的IntelliTrace窗口,发现了一连串异常,其中最重要的是消息“无法在 DLL 'advapi32.dll' 中找到名为 'EventSetInformation' 的入口点”。 System.EntryPointNotFoundException
搜索给我这个和这个EventSetInformation
只有 Windows 8+ 的谈话。所以windows 7缺少这个方法,这是一个例外,但是我的程序如何引用这个方法,而它(程序)与windows 8无关,一点也不?我还可以假设 Visual Studio 中有一些与 Update-5 相关的组件可以触发此 advapi32 方法,但如果是这样 - 我该如何禁用此功能?
使用 .NET 4.5编辑程序
异常信息:
Edit2
正如史蒂夫和汉斯在评论中注意到的那样,实际问题最终与advapi32库无关。我有一个WindowEx
类派生自Window
一些自定义的东西,我的可视窗口是从这个派生的WindowEx
。也许我的自定义类错过了一些方法(如果相信异常消息),但是在切换回基类Window
并将自定义逻辑从WindowEx
直接到可视窗口后,错误就消失了。
windows - 如何配置用 Go 编写的 Windows 服务的失败操作?
我正在使用该golang.org/x/sys/windows/svc
软件包在 Go 中编写 Windows 服务。
到目前为止,一切都很好,而且很容易上手,我喜欢它。
我编写了一些自动更新功能,我希望服务在完成更新后自行重启。
我已经尝试生成一个将使用 重新启动服务的进程SCM
,但它会记录一条错误消息,这似乎与尝试在作为本地系统运行时控制服务有关。
一种更好/更简单的方法似乎是os.Exit(1)
将服务Failure Actions
设置为Restart on Failure
,效果很好!
唯一的麻烦是,似乎没有使用 Go 以编程方式配置这些选项的功能。
我已经进行了一些挖掘,看起来它们是通过将结构传递给ChangeServiceConfig2
in来配置的advapi32.dll
-如何创建在崩溃时重新启动的服务
在golang/sys/blob/master/windows/svc/mgr/config.go -func updateDescription(handle windows.Handle, desc string) error
代码已经调用windows.ChangeServiceConfig2
,它是 DLL 调用的链接。
SERVICE_FAILURE_ACTIONS
结构的 Microsoft 文档在这里。
我无法弄清楚如何使用 Go 构建和传递该结构 - 有人有任何见解吗?
c# - 检查用户是否可以启动服务
我只是在网上搜索了很多,但找不到任何帮助。我有自己的 Windows 服务,现在应该可以从我的主软件配置它。
我在安装、启动、停止、更改和卸载它时没有任何问题。我还可以使用其他用户凭据安装该服务。
但是问题就来了。在安装服务(“cmd”调用sc create SERVICENAME [...])之前,我想检查具有输入凭据的用户是否可以启动服务。所以我需要检查他是否在本地“作为服务登录”安全策略中输入。我不想更改政策,我只想检查是否允许他这样做。
是否可以简单地在 C# 中进行此检查?
c# - 使用 advapi32.dll 在 64 位系统上安装 Windows 服务
我想将服务安装到 Service Manager 并运行它。我的代码如下:
此代码在我的 32 位计算机上完美运行,但在 64 位计算机上不起作用。我怎样才能为 64 位做同样的工作?
windows - 在 Go 中调用 EnumServicesStatusEx,内存分配?
我正在编写一个与 Windows 服务中的 Windows API 交互的应用程序。
在@chowey here的大量帮助之后,我有点掌握了窍门,并开始了一个基本库,我已经把它放在了 GitHub上。
我现在转到“服务”,要求列出机器上的所有 Windows 服务,启动、停止、重新启动它们。一旦你有一个服务句柄可以使用,启动/停止/重新启动看起来很简单,但我正在努力获取已安装服务的列表。
Advapi32.dll 中的EnumServicesStatusEx是我需要调用的函数,但它需要一个指向为ENUM_SERVICE_STATUS_PROCESS结构数组预分配内存的指针。
您可以使用空指针调用该函数,它将返回所需的内存分配大小,但我不相信有一种方法可以直接在 Go 中分配内存。
起初我以为我可以得到内存分配要求,使用 unsafe 包将它除以结构的 SizeOf,创建一个包含该数量元素的切片,然后将指向第一个元素的指针传递给函数,但它说的是内存需要为字符串数据包含空间,而这不会。
有谁知道这是如何实现的,漂亮吗?:)。
vb.net - 从 .NET V4 调用 OpenSCManager 时返回无效句柄
我有一个打开服务数据库的 .NET VB winforms 程序,在从 .NET v2 转换为 v4 后它停止工作。从 VB .NET v4 及更高版本调用时,advapi32.dll 中的函数 openscmanager 返回无效句柄。
为 .NET v2 到 v3.5 编译的所有工作正常,但在同一台机器上为 .NET V4 及更高版本编译时失败
在安装了 .NET 4.5.1 和 4.6.1 的 Windows Server 2012 R2 上使用 Visual Studio V2013 或 V2015 有趣的是,相同的代码在 Windows 7 64 位下也可以正常工作,也安装了相同的框架版本
精简代码:
在 .NET v2 下编译返回:
在 .NET v4 下编译返回:
关于如何解决这个问题的任何想法?
vb6 - VB6 - CreateProcessWithLogonW 在 Windows 10 上不起作用 - 错误代码 740
我有一个需要维护的旧 VB6 应用程序。
在应用程序功能中调用了 CreateProcessWithLogonW,它在 Windows 10 上运行时不起作用(但在 Windows 7 上运行良好)。
我通过调用收到的错误代码Err.LastDllError
是错误代码 740,我认为它与“请求的操作需要提升”有关。UAC 在我运行它的 Win 10 机器上被禁用,所以我不确定是什么问题来了??
有人有这方面的经验吗??任何帮助是极大的赞赏!
真正让我困惑的是它在 Win7 上运行没有任何问题。
代码示例如下:
这是函数声明:
这里是函数调用
java - JNI 错误:com.sun.jna.platform.win32.Win32Exception:系统找不到指定的文件
我正在使用 JNA 4.2.1 从 Java 访问 Windows 注册表(不幸的是,这是获取配对蓝牙设备列表的唯一方法)。它工作正常,直到 Windows 10 安装了一些更新,现在我遇到以下问题:
com.sun.jna.platform.win32.Win32Exception: 系统找不到指定的文件。在 com.sun.jna.platform.win32.Advapi32Util.registryGetValues(Advapi32Util.java:1649) 在 IntelleWave.Devices.Device.getCOMportByBTUID(Device.java:243) 在 IntelleWave.Devices.Device.getBTDeviceInstances(Device.java:163 ) 在 IntelleWave.Devices.Device.(Device.java:72) 在 IntelleWave.Devices.DeviceEnumerator.InitDevices(DeviceEnumerator.java:101) 在 IntelleWave.SettingsScreenController 的 IntelleWave.Devices.Device.getDeviceInstances(Device.java:112)。 UpdateDeviceList(SettingsScreenController.java:662) at IntelleWave.SettingsScreenController.initialize(SettingsScreenController.java:153) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441 ) 在 javafx.fxml。
在 java.lang.Thread.run(Thread.java:745)
对我来说,我看到 Win32 异常看起来很奇怪,但实际上我有一个 Windows 64。也许问题与这种差异有关,我必须告诉 JNI 使用 x64 库(Advapi32Util)?
你能建议吗?