草庐IT

API管理

全部标签

c++ - 安全获取在 Windows API 中运行可执行文件的路径

嘿,我正在尝试获取与我的exe文件位于同一文件夹中的dll的路径。要走的路似乎是使用QueryFullProcessImageName()或GetModuleFileName()之一来获取正在运行的可执行文件的路径,然后使用字符串操作使其成为改为所需库的路径。不幸的是,这两个函数都没有提供提前找出所需缓冲区大小的方法。我试过为nSize参数传递零,但这没有达到预期的效果。执行此操作的最佳实践方法是什么? 最佳答案 在实践中,您可以使用WindowsAPIMAX_PATH作为您的缓冲区大小,也许加1以提高安全性。理论上Windows路

.net - MMC 证书管理单元在哪里导入 "Service account"的证书?

WindowsMMC证书管理单元允许管理员使用“服务帐户”,但服务如何访问这些证书?如果我使用“服务帐户”以管理员身份导入到个人,并且以标准用户身份运行的服务使用System.Security.Cryptography.X509Certificates.X509Store在StoreLocation.CurrentUser(或StoreLocation.LocalMachine)中查找,它不会找到证书。如果我改为以服务帐户登录并从该标准用户帐户将证书导入个人,则服务会找到该证书。管理单元将“服务帐户”的证书放在哪里,服务如何使用.NET类找到它? 最佳答案

windows - 如何防止QtCreator管理Git

每次我在QtCreator中创建一个新文件时,它都会询问我是否要将它添加到Git存储库中,每次我删除一个文件时,它都会询问我是否要删除它。我不需要QtCreator来完成所有这些工作,因为我自己使用TortoiseGit管理Git。此外,QtCreator在这方面不如TortoiseGit方便。那么有什么方法可以阻止QtCreator管理我的Git存储库吗? 最佳答案 可以在“关于插件...”中禁用Git插件。 关于windows-如何防止QtCreator管理Git,我们在StackO

windows - 将文件夹绑定(bind)到文件的 API 是什么(如 Internet Explorer)

当您在InternetExplorer中保存HTML文件时,它会创建一个包含所有链接文件的子文件夹。这两个链接在一起,因此当您删除文件时,文件夹也会随之消失。我想在我的应用中做同样的事情。谁能给我一个相关API的指针?谢谢 最佳答案 HTML文件及其附带资源目录的配对是一种特殊情况(由shell实现),因此不是文件系统的功能,据我所知也不是任何可扩展的shellAPI。请参阅SHFileOperation中的连接文件文档。 关于windows-将文件夹绑定(bind)到文件的API是什么

windows - 将上下文菜单添加到 Windows 资源管理器以运行 BAT 文件

有什么方法可以将新条目添加到Windows资源管理器上下文菜单中,该菜单可以以所选文件作为参数运行BAT文件/命令。具体来说,我需要做的是:pscp-pwpasswordE:\File.txtmyname@machine.univ.edu:/home/myname/Files/在Windows资源管理器中右键单击文件并选择菜单项“复制到服务器”。 最佳答案 您需要shell扩展。查看此完整指南:http://www.codeproject.com/KB/shell/shellextguideindex.aspx并且不要忘记“不要在托

windows - 如何清除 AuthzGetInformationFromContext API 使用的缓存?

我有一个域,我在客户端计算机上使用AuthzGetInformationFromContextAPI来检索用户所属组的sid。它工作正常。但是,如果我将用户添加到某个组或将他从域Controller上的某个组中删除,此API仍会显示旧的组列表。在这种情况下,如果我等待10分钟或更长时间,它将显示更新的组列表。我尝试在不同的计算机上执行此操作,发现该应用程序会在不同的时间显示更新的组列表。所以,它不是域Controller缓存。此外,我的应用程序退出并重新启动。因此,它也不是应用程序级缓存。所以,我相信有一些计算机级别的缓存用于组成员(通过此API检索)。有谁知道如何以编程方式清除此缓存

c# - 用于自动化的 User32 API 自定义 PostMessage

我想通过C#自动化一个名为Spotify的程序,(我认为)最好的方法是触发假按键。我想编程暂停播放,但我对这些东西的了解还不够多,无法找到按键以外的其他方法。所以我使用VisualStudio的Spy++查看按下键盘上的播放按钮时Spotify收到什么消息,我将该消息中的数据复制到我的控制台应用程序并运行它,当我运行时我可以在Spy++的消息记录中看到PostMessage,所以这是有效的,但它不会暂停/播放我的音乐。我想这是因为我还必须发送另一个带有另一个目的地的PostMessage,但我怎么知道还要发送什么?发布消息调用:MessageHelper.PostMessage((in

c++ - OpenCV - API 位置不是文档吗?

也许我被MSDN宠坏了,但我正在焦头烂额地寻找API位于哪些DLL中。这让我发疯了,我已经开始编写一些可以运行的代码DLL导出表,这样我就可以找到函数了!!就像在MSDN上一样,如果我需要一个Windows函数,例如GetModuleHandle()。我转到MSDN页面:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683199(v=vs.85).aspx它准确地告诉我函数所在的位置:Library-Kernel32.libDLL-Kernel32.dll现在对于OpenCV,我正在寻找函数cvCreateKalma

windows - 以除管理员身份之外的任何身份启动 Windows 服务会给出 'Access denied'

我正在安装我正在开发的Windows服务。它设置为作为网络服务运行。当我尝试启动此服务时,我收到一个消息框,告诉我访问被拒绝。但是,网络服务确实可以访问可执行文件以及它所在的整个目录。我也曾尝试将服务作为本地服务和本地系统启动,但两者都收到相同的错误。如果我以管理员身份(这也是我登录的帐户)运行它,我没有收到任何错误并且服务按预期启动。我查看了事件日志,但只有一个条目包含相同的信息:“访问被拒绝。”我检查了procmon以查看它试图访问什么,令我惊讶的是,当服务管理器试图打开我的可执行文件时,访问被拒绝;即使它具有完全访问权限。为什么对可执行文件的访问被拒绝?下面是可执行文件权限的屏幕

Windows 更新代理 API - 搜索更新

我编写了一个使用Windows更新代理API(IUpdateSearcher、IUpdateDownloader、IUpdateInstaller等)的Powershell脚本。一切正常,脚本找到可用的更新,下载并安装它们。但是在搜索连续更新的时候出现了问题。例如,有.NetFramework4.5.2的更新。更新通过脚本安装,然后PC重新启动。现在应该有可用的.NetFramework4.5.2语言包更新。但事实并非如此。至少不是通过API。可以使用GUI(WindowsUpdate)进行手动搜索。经过手动搜索,API很好地找到了更新!我的脚本中缺少什么?我在Microsoft文档中