草庐IT

windows - 如何在 Windows 上查询插件 DLL 的体系结构

我的应用程序使用LoadLibrary在运行时加载插件,用户可能会不小心尝试在我的应用程序的32位版本中加载64位插件。看起来从LoadLibrary返回的错误代码不是很清楚(说“%1不是有效的Win32应用程序”)。我正在寻找确定插件dll文件是32位还是64位的方法,以便我可以以用户友好的方式通知用户。有什么想法吗? 最佳答案 为了检索有关图像的信息,例如您要查找的图像,只需使用ImageHelpAPI 关于windows-如何在Windows上查询插件DLL的体系结构,我们在Sta

c# - RegisterPowerSettingsNotification C# pinvoke

我正在尝试检测笔记本电脑盖子何时打开和关闭,应该非常简单。我似乎可以正确注册该事件,但是当我关闭笔记本电脑窗口时我没有收到通知。这是DLL导入(动态链接库代码:http://www.pinvoke.net/default.aspx/user32/registerpowersettingnotification.html)(GUID_LIDCLOSE_ACTION:http://social.msdn.microsoft.com/Forums/en-US/tabletandtouch/thread/0bbf90be-9322-47fb-bfa4-016b57211b3a)[DllImpo

c++ - 使用 c++/WinAPIs 在 Windows 上计算进程运行实例的可靠方法

我需要知道我的进程有多少实例在本地Windows系统上运行。我需要能够使用C++/MFC/WinAPI来完成它。那么,执行此操作的可靠方法是什么?我正在考虑为此使用进程ID,将其作为列表存储在共享内存数组中,进程可以访问该数组。但问题是,当一个进程关闭或崩溃时,它的进程ID多久会被重用? 最佳答案 进程和线程标识符可以在所有句柄关闭后的任何时间被重用。参见WhendoesaprocessIDbecomeavailableforreuse?有关这方面的更多信息。但是,如果您要存储一对{identifier,processstartti

windows - 防止跨进程 SendMessage 调用

假设我有一个带有按钮的WindowsGUI应用程序。我能够通过将BM_CLICK用作调用参数的sendMessagewinapi调用来模拟对该按钮的点击。现在,从安全的角度来看,我不希望这种情况发生。即我的目标进程应该忽略来自另一个进程的sendMessage调用。是否有这样做的规定?一种验证sendMessage调用的方法?编辑:换句话说,我如何才能阻止诸如Enabler、TurnitOn之类的应用程序http://www.raymond.cc/blog/how-to-enable-and-access-disabled-grayed-out-buttons-windows-and-

c++ - 如何确定流程的完整性级别?

我想启动一个具有高完整性级别的流程。父进程作为系统服务、LocalSystem帐户运行。在一台Windows2008机器中,子进程是高级的,而在另一台2008机器中,该进程是“中”级别的。看起来CreateProcessAsUser在不同的机器上获得不同的级别。if(!WTSQueryUserToken(sessionID,&hToken)){//Theadminuserloggedintherdpsessionof"sessionID".return;}BOOLfSuccess=CreateProcessAsUser(hToken,NULL,cmdLine,NULL,NULL,TRU

c# - 在 Windows 上获取有线网络名称和安全级别

关于这个问题,我的意思是用户指定的名称窗口让您输入类似:“我的家庭网络”“地下室”“车库”而不是ssid(尽管我也想阅读关于wifi连接的那个)我特别想阅读可以为网络选择的Windows安全级别:家庭/办公室/公共(public)我想使用此信息在连接到各种网络时自动打开和关闭程序。更新:感谢@Damien_The_Unbeliever的回答,我能够解决我的问题并找到以下信息,我希望它也能帮助其他人:Networkawarenessinwindows7andvista(MSDN,Unmanaged)WindowsAPICodePack(Microsoft,managedwrapperfo

相当于 "WMIC QFE Get"的 Windows API

我是C++的新手,目前正在努力获取C++DLL中的Windows修补程序/补丁信息。我评估了以下方法:通过在C++代码中执行子进程并运行wmicqfeget并读取所有数据。通过使用C++API初始化COM,连接到Wbem并执行select*fromwin32_quickfixengineering查询。除了以上两种方法,是否有任何直接的WindowsAPI可以为我完成所有工作并提供机器上当前安装的KB信息列表? 最佳答案 您可以使用WindowsUpdateAgentAPI和IUpdateSearcher界面。

windows - OneNote 如何访问从 firefox 复制文本的 url,我如何在我的应用程序中使用它

当您从firefox(非微软产品)中的网页复制文本到OneNote时,它​​会将网页的url与复制的文本一起添加为“粘贴自”,如下例所示:ApacheOpenOfficeisanopen-sourceofficeproductivitysoftwaresuitePastedfromOneNote如何从非Microsoft应用程序访问复制文本的url信息。如何使用C++/C#或其他技术在我的应用程序中以编程方式访问类似信息?是否有一些api可以从系统剪贴板访问其他信息,如url、源应用程序、源文件等? 最佳答案 如thedocumen

c++ - 获取所有 Windows 内核对象及其安全权限

我需要获取所有Win-Kernel对象的访问权限列表;我的工作:for(inti=0;iIfDACL=Null->"allcandoall"IfDACL!=Null->parsingDACL-mask我在正确的轨道上?顺便说一下,我有:~300个没有DACL的句柄~100个带DACL的句柄(在Windows7上测试) 最佳答案 如果您想通过HANDLES进行暴力破解,请不要在9999处停止。遍历所有32位值。或者,您可以枚举所有Usermode-Process-Handles:http://forum.sysinternals.co

c++ - GDI+ 初始化使应用程序崩溃,为什么?

我有以下C++行从GDI的设备上下文中获取GDI+句柄://HDChDC=devicecontextfromGDIif(hDC){//ObtaingraphicshandleforGDI++Graphics*pgrpx=newGraphics(hDC);//Igetinvalidmemoryexceptionhere//Codecontinues//...//Freeobjectdeletepgrpx;pgrpx=NULL;}它在我的测试中运行良好。但最近我收到了该应用程序的故障转储,在我在上面代码中指出的那一行出现了“它无法访问的线程引用的内存位置”异常——就在图形对象应该被初始化的