草庐IT

enable-client-side-hooks-when-com

全部标签

windows - COM 服务器 : ESP not saved across a function call when calling interface method

我正在EXE文件中实现COM服务器。准确地说,我正在向现有应用程序添加COM接口(interface)。最终目标是使应用程序自动化。第一个组件和一个接口(interface)(目前只有一个方法)基本就位。我可以在DLL中构建进程内服务器并成功获取接口(interface)指针并调用该方法。这是第一步,因为我只是在学习。我以后不需要DLL;它只是作为概念证明,我的组件和接口(interface)基本上没问题。然后我在EXE中构建了一个进程外服务器。我已经到了可以从客户端调用CoCreateInstance()的地步,然后启动EXE,注册其工厂,然后工厂创建组件的实例。CoCreateIn

windows - SSDT 注册表 Hook

我是内核编程和驱动程序概念方面的新开发人员。我需要Hookssdt以保护注册表的某些键值,但我找不到任何有用的教程或简单的源代码来处理这些东西。我发现zwopenkey和zwcreatkey应该被Hook,并且它们的权限更改为只读。我正在寻找SSDT注册表Hook的一些示例。 最佳答案 你不需要HookSSDT,你不应该这样做。还有其他方法可以保护您的key。例如,许多解决方案之一是使用registrycallbacks. 关于windows-SSDT注册表Hook,我们在StackOv

c++ - 未解析的符号与 boost_asio/example/ssl/client.cpp

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:boost::asiossllinkingerror我遇到undefinedsymbol的问题。我的boost安装很好,因为我已经将它用于其他项目。我知道我需要安装OpenSSL,所以按以下方式安装。然后,我使用VS2010命令提示符运行以下命令,并将提取的OpenSSL源(最新来自openssl站点)作为工作目录。perlConfigureVC-WIN64Ano-sharedno-idea//Idon'ttrustthis.ms\do_win64anmake-fms\ntdll.maknmake-fms\n

windows - 如何以编程方式将 COM+ 组件 -> 事务设置为不支持?

我正在寻找一种解决方案,以编程方式将Com+组件属性->事务支持修改为“不支持”手动步骤如下:打开组件服务对话框(comexp.msc)展开组件服务->计算机->我的电脑查找并展开COM+QCDeadLetterQueueListener在打开的组件中展开文件夹Components找到组件QC.DLQListener并打开该组件的上下文菜单并选择属性在“属性”屏幕上,选择“交易”选项卡并将交易支持设置为不支持点击“确定”保存更改 最佳答案 在我花了几个小时解决这个问题之后,我终于在C#上找到了解决方案。我从以下文章中获得了深刻的见解

c++ - 从 32 位应用程序 Hook 64 位进程

我正在使用SetWindowHookEx将DLL加载到另一个进程中,但我需要能够挂接到32位和64位进程。我想我需要两个单独的DLL,但是我可以在不创建两个版本的“启动器”应用程序的情况下做到这一点吗?我需要将DLL句柄传递给SetWindowsHookEx,但我无法使用LoadLibrary获取它。 最佳答案 使用进程外COM+对象承载DLL。您可以使用此方法从32位调用64位代码,这样大多数启动器代码都保持不变,除了您决定加载32位或64位COM+对象的if语句。可以对该对象进行编码以将适当版本的DLL加载到进程中,一个用于64

PHP COM 端口与 DIO 的连接

我正在尝试将称重机与PHP连接起来。我已经用super终端测试过它工作正常。但是当我将PHP代码与fopen或dio_open一起使用时,它会被执行,但是当fgets或dio_read是调用,它挂起并且不显示任何内容。打开示例exec('modecom2:BAUD=2400PARITY=Ndata=8stop=1xon=on');$fp=fopen("COM2:","r");if(!$fp){echo"Uh-oh.Portnotopened.";}else{echofgets($fp);fclose($fp);}DIO示例exec('modeCOM2:baud=2400data=8st

windows - 当用户没有足够的权限时隐藏 COM-Server OLE 错误消息

我正在升级一个带有COM自动化接口(interface)的Delphi软件项目,以简化一些批处理任务(通过WSH脚本)。这本身很容易......但是,软件的大多数“实际”用户不需要(甚至不知道)这个界面,我想让他们免于注册COM-Server或错误消息当程序无法启动com服务器时弹出(目前该软件没有安装程序-它只是复制并运行。注册任何东西对用户来说都是一个额外的步骤。它是内部的,所以客户已经习惯了。..).真正的问题是:我能否以编程方式查明运行该软件的当前用户是否有足够的权限来注册COM服务器,然后(如果没有)避免尝试创建服务器?我想要一种行为,当用户没有足够的权限时,自动化服务器就不

c# - 查找串行设备 COM 端口

我有一个WindowsC#应用程序。该应用程序通过串行端口连接到RFID读卡器。虽然我默认给它COM端口3。我遇到了用户端口不可用并且他正在使用的端口与他的Windows操作系统不同的情况。我的应用程序确实为用户提供了更改COM端口的能力,但是要找到他们的操作系统正在使用哪个COM端口,用户需要转到设备管理器并进行检查,新手可能不太适应。有没有一种功能或方法可以准确地找到我的RFID卡在Windows中连接到哪个端口,以便我可以简单地显示如下:应用程序端口设置为:COM....操作系统上的设备连接端口:COM....另外我的目标框架是3.5编辑1:尝试使用SerialPort.GetP

windows - 如何在 Windows git hooks 中使用 cygwin 路径?

(一)我的.git/hooks/pre-commit是#!c:/cygwin/bin/bash.exe#/cygdrive/c/tmp/a.sh当我运行'gitcommit'时出现错误.git/hooks/pre-commit:line8:/cygdrive/c/tmp/a.sh:Nosuchfileordirectory(B)如果.git/hooks/pre-commit是#!c:/cygwin/bin/bash.exe#c:/cygwin/bin/bash.exe/cygdrive/c/tmp/a.sh错误变为/usr/bin/bash:C:/ProgramFiles(x86)/G

C 编程 - 套接字 ("Server"在聊天中显示 "Client"名称)

我还是C套接字编程的新手,多亏了这个网站,我学到了很多有用的东西,但我找不到如何让服务器在聊天中显示客户端名称,我知道我需要使用命令:“发送(SOCKETs,constchar*buf,intlen,intflags);”,但我不知道我做错了什么,语法错误或定位错误,idk,这些是代码:(我把这个“//服务器:#include#include#include#include//Sleep();#includeWSADATAdata;SOCKETwinsock;SOCKADDR_INsock;charbuffer[1024];charbuffer2[1024];charnome[50];