草庐IT

enable-client-side-hooks-when-com

全部标签

.net - 由 C# 中的 Windows 服务托管的 COM+ 组件,用于控制外部设备

我有一个用C#编写的Windows服务,它控制通过RS232连接到计算机的设备(收集数据并允许控制设备)。它被命名为DeviceService并且工作正常。现在其他应用程序通过WCF服务使用它。但现在我需要将一些功能公开为COM+组件,以便C++中的应用程序可以与此Windows服务通信(并从中获取实时数据)。(我知道可能有更好的方法来做到这一点,但这是无法更改的要求。它必须通过COM+)。问题是:当我在DeviceService中创建这样一个组件并在客户端激活它时,它看不到任何数据。例如:对于同一程序集中定义的组件,Windows服务(DeviceService)中的静态变量返回nu

windows - 注册一个全局钩子(Hook)来检测鼠标是否拖动文件/文本

我知道有可能registerglobalhooksformouse移动、按钮点击、滚动等,但我想知道是否有任何方法可以检测用户是否真的在使用全局Hook拖动文件或文本(或其他一些内容)。似乎找不到任何东西。 最佳答案 它不由Windows消息处理,即使需要消息循环才能使其工作。经典COM要求。从RegisterDragDrop()开始阅读以查看管道。值得注意的是,UAC的UIPI方面会妨碍您,您不能从非提升的进程D+D到提升的进程。ChangeWindowsMessageFilter()是通常的解决方法,它不适用于D+D。没有已知的

c++ - COM 函数生成不会消失的线程

我正在开发一个小型应用程序,该应用程序旨在调用一些(非常多样化的)功能,遗憾的是这些功能超出了我的控制范围,并且设计的方式让我不知道何时完成了正确的用户操作。特别是其中一些会产生一个线程来完成它们的工作,最终会在未来的某个时刻死亡。所以有些是同步实现的,有些是异步实现的,我的代码不知道它会是哪一个。我的应用程序的唯一目的是启动这些任务并在完成后终止。由于目的是自动化,我预计它会在短时间内从批处理文件中调用100次,所以我不希望这个过程停留的时间超过绝对可能的时间。因为我没有可以等待的信号,我的主线程上的ExitThread()似乎是可行的方法,这样由外部代码产生的任何线程最终都会终止进

c++ - 关闭应用程序时如何抑制 "There are still active COM objects in this application"错误?

我已经编写了一些用于在我的C++Builder应用程序中进行拖放的ATLCOM对象。由于我无法控制的原因,当用户试图关闭我的应用程序时,它仍然具有事件的COM对象。这是因为使用我的对象的其他COM客户端似乎缓存了我的COM对象并且不释放它们-结果,当用户单击“X”关闭我的程序时,我的COM对象的引用计数仍然大于零.这会导致用户收到如下不友好的消息:我希望我的应用程序安静地终止,而不是向用户询问这个烦人的问题。如何禁止这条消息? 最佳答案 弹出消息由atlmod.h中的TATLModule::AutomationTerminatePr

java - com.ibm.mq.MQException : MQJE001: Completion Code '2' , 原因 '2035'

我正在构建一个应该能够连接到IBMWebSphereMQ队列管理器的Java应用程序,但我不明白为什么我一直收到此错误。我已经通过MQExplorer使用setmqaut将管理权限授予了我的用户ID。我还在我的channel中定义了MCAUSER,并且我还将用户与MQWindows组相关联。任何人都可以提供一个简短的教程/示例,说明如何在Windows环境中将Java程序与WebSphereMQ安装连接起来吗? 最佳答案 如果您在channel中设置了MCAUSER,那么这会覆盖客户端提供的任何ID。如果您仍然得到2035,则有两种

c++ - 我可以使用全局系统 Hook 来捕获单击的文件吗?

我是Windows编程的新手,主要完成Java(JavaSE、JavaME、Android、JavaEE),所以要详细而温和。我想捕获“在窗口中单击的文件/路径的名称,就像单击桌面上的文件一样”?进一步研究http://www.codeproject.com/Articles/6362/Global-System-Hooks-in-NET,这是一个使用全局系统Hook的小型c#/c++不错的应用程序,用于捕获坐标、点击等鼠标事件。那么捕获文件图标事件的正确API或全局系统Hook是什么? 最佳答案 没有单一的API可以提供该级别的详

c++ - 等待 COM 端口上的数据?

我正在寻找一种方法让Windows串行端口在接收到数据之前超时。如果有某种事件触发或函数完全按照我的意愿行事,那就太好了。这是我当前的实现。voidwaitforCom(unsingedcharbyte){while(true){ClearCommError(serial_handle,&errors,&status);if(status.cbInQue>0){//checkifcorrectbytebreak;}}} 最佳答案 您可以使用的另一个API调用是WaitCommEvent()。http://msdn.microsoft

COM 引用计数

美好的一天。什么是初始化COM接口(interface)引用计数的正确方法?我看到很多例子,其中引用计数被初始化为1,但也看到了设置为0的例子。什么是差异? 最佳答案 您必须这样设置它,以便在调用最后一个Release()时对象自行处理。这通常意味着当您创建对象时,在您处理指向请求该对象的调用者的对象指针之前,它的引用计数必须为1。您是将引用计数器初始化为零然后调用AddRef()(在将指针移交给调用方之前)还是将其初始化为1而不是调用AddRef()通常由您决定。 关于COM引用计数,

python doc 到 docx 转换,comtypes.Documents.Open 抛出 ValueError : NULL COM pointer access

背景我有一个应用程序,我想在其中将.doc转换为.docx。之后处理.docx文件以进行数据挖掘。最终用户使用Web界面访问此服务。Web应用程序是在Django1.6中开发的。要将.doc转换为.docx,我们需要安装了MSOffice的Windows平台。话虽如此,我有一个正在运行的AWSWindowsServer2012R2实例(它是Windows64位)。我将Apache(64位)与mod_wsgi和Python2.7.8(64位)一起使用。现在,这是我将.doc转换为.docx的代码importtempfile,sysimportcomtypes,comtypes.clien

c++ - Windows API 钩子(Hook) C++

我正在学习为WindowsAPI编写Hook,为了练习,我正在为pDeleteFileA函数编写Hook。当调用该函数时,在删除文件之前我想检查文件名是否为“testfile.txt”,如果是,则不会删除它,而是会弹出一条消息,如果它调用了其他内容,则继续删除文件。我已经编写了一些代码并且代码编译没有任何错误,但是当我尝试删除“testfile.txt”时,它只是被删除了。也许有人可以给我提示我做错了什么或没有做什么?到目前为止,这是我的代码:#includestructhook_t{//adatatypetostoreinformationaboutourhookboolisHook