Articles of 处理

运行Processing SimpleOpenNi深度图像示例后,Xbox 360的Kinect冻结并断开与USB的连接

请帮忙 我一直在试图设置kinect XBOX 360在Ubuntu上运行,以开始开发一个应用程序来控制一个类人机器人。 在过去的四天中,我一直在search,下载,安装和尝试几十个库和驱动程序,以获得在Ubuntu上的工作。 一开始没有任何工作,我只能用“Camorama”和“guvcview”读取RGB相机,不pipe我试图运行什么库或驱动程序。最后,我安装了一个新的Ubuntu副本,并使用libfreenect库突触(我有点新手),我也安装了下列软件包 https://code.google.com/p/simple-openni/downloads/detail?name=OpenNI_NITE_Installer-Linux64-0.27.zip&can=4&q= 以及Processing 2.0和SimpleOpenNi-0.27 我开始处理 – >例子 – > OpenNi – > DepthImage&RUN,并且kinect开始3到10秒,同时将图像连同RGB图像一起给出,并且有一些时候出来,然后帧冻结,当我尝试列出USB设备($ lsusb)没有列出Kinect相机或audio设备,因此Kinect必须从适配器和USB拔下,然后重新插入,运行草图后问题仍然存在。 尝试解决scheme: 1-删除和黑名单gspca内核模块 2-禁用USB自动挂起 但问题仍然存在… 我正在使用Kinect的XBOX 360与(12V – 1.08A)USB交stream电源适配器http://www.walmart.com/ip/INSTEN-USB-AC-Power-Adapter-For-Microsoft-Xbox-360-Kinect多个传感器/ 28882271 我的笔记本电脑是:戴尔Inspiron1525英特尔Core2Duo RAM 2GB 运行Ubuntu 14.04.2 LTS ,, Release:14.04,Codename:trusty 任何人都可以帮助我!

分段error handling

我有一个应用程序,我用它来捕捉任何分段错误或ctrl-c。 使用下面的代码,我能够捕捉到分段错误,但处理程序被一次又一次地调用。 我怎样才能阻止他们。 为了您的信息,我不想退出我的应用程序。 我只需要注意释放所有损坏的缓冲区。 可能吗? void SignalInit(void ) { struct sigaction sigIntHandler; sigIntHandler.sa_handler = mysighandler; sigemptyset(&sigIntHandler.sa_mask); sigIntHandler.sa_flags = 0; sigaction(SIGINT, &sigIntHandler, NULL); sigaction(SIGSEGV, &sigIntHandler, NULL); } 和处理程序是这样的。 void mysighandler() { MyfreeBuffers(); /*related to my applciation*/ } 在这里为分段错误信号,处理程序被调用多次,正如显而易见MyfreeBuffers()给我释放已释放内存的错误。 我只想释放一次,但仍然不想退出应用程序。 请帮忙。

如何在Windows中监视进程/程序的执行?

我们正在尝试开发一个小型的应用程序,它可以监视在Windows机器上执行的程序/进程。 如果程序/进程不应该运行,它应该被阻止。 它的作用类似于防病毒。 这是基本的想法。 我想知道如何挂钩进入操作系统,以获得有关试图在机器上运行的每一个程序/进程的通知。

如何获得属于某个进程的打开句柄的计数?

您可以使用程序Process Explorer来查看运行应用程序的手柄数量。 有没有用Delphi代码来获取这个数字的方法? 我有兴趣跟踪应用程序本身的号码; 没有findProcess Explorer正在执行的其他应用程序使用的句柄数。 我的意图是让应用程序跟踪/检测可能的资源泄漏。

python:相当于SIGALRM的窗口

我有这个装饰: def timed_out(timeout): def decorate(f): if not hasattr(signal, "SIGALRM"): return f def handler(signum, frame): raise TimedOutExc() @functools.wraps(f) def new_f(*args, **kwargs): old = signal.signal(signal.SIGALRM, handler) signal.alarm(timeout) try: result = f(*args, **kwargs) finally: signal.signal(signal.SIGALRM, old) signal.alarm(0) return result new_f.func_name = f.func_name return new_f return decorate 代码只能在Linux上做任何事情,但是,在Windows上,没有SIGALRM 。 让这个代码在Windows中工作最简单的方法是什么?

在Windows下dynamic加载的库的地址范围

我有一个工作程序,加载LoadLibrary插件。 新的要求:在代码的某一点,我给了一个指针,我需要testing这个指针是指向代码还是插件的静态数据。 bool is_pointer_into_plugin(void *p, HMODULE h); 等价地,我需要检索指针指向的插件(如果有的话)。 我还需要知道指针是指向主程序的代码还是静态数据(最好是区分只读区域和读写区域)。 HMODULE plugin_containing_pointer(void *p); 等同地,我需要能够检索插件映射的范围(地址和大小)。 我也需要这个主要程序的信息。 我如何实现is_pointer_into_plugin ,或者plugin_containing_pointer ,或者其他什么东西? 如有必要,我可以更改对LoadLibrary的调用。 查找应该尽可能快,加载时间代码不需要很快。 在单独的进程中运行插件并通过共享内存进行通信不是一种select。 该程序必须运行在Windows XP和以上(和Linux,但这是另一个问题 )。 我需要的信息或多或less是Sysinternals公用事业listdlls报告的,所以我试图找出它是如何实现的。 我看到了使用NtQueryInformationProcess来检索链接到LDR_DATA_TABLE_ENTRY的PEB结构的LDR_DATA_TABLE_ENTRY 。 看起来很有希望,但是: 我可以看到一个DllBase ,看起来它可能是每个DLL的起始地址(是吗?),但没有大小。 NtQueryInformationProcess的文档将NtQueryInformationProcess标记为不可移植的,但是并不表示我正在尝试做什么。 在我的系统中, PEB中唯一的字段是BeingDebugged和SessionId ,加上一些Reserved N字节数组 – 不是一个好兆头。 我如何枚举插件的地址范围,或testing一个指针是否在一个插件,或确定一个指针指向哪个插件?

在同一进程中加载​​多个dll副本

我有一个由第三方生产的DLL,它具有某种内部数据结构,将其大小限制为X个元素。 所以基本上,它有一个以X为限的队列。 现在从我所知道的DLL是每个进程,但是有可能不止一次加载一个DLL? 也许每个线程? 在C#中? 或者在C ++ / CLI中? 我试图加载一个本地的C ++ DLL。

防止单个可执行文件的多个进程实例

我正在使用.NET与C#。 我想防止同一个可执行文件的两个实例同时运行,但是我不想阻止从另一个文件夹运行相同的进程。 例如,我有一个在两个不同位置的可执行文件: C:\ MyProject的\主\ Program.exe文件 C:\ MyProject的\从\ Program.exe文件 这些是相同的.exe文件,但在两个不同的位置。 我想要允许一个从Master文件夹运行的Program.exe实例和一个来自Slave文件夹的实例,但是没有任何两个实例。 我试图通过检查具有相同名称(Process.GetProcessesByName)的进程数量来做到这一点,但我不能区分这两个。 我发现的最接近的是从过程中获取模块。 列表中的第一个是exe的ProcessModule。 但是我不确定这是否会成为名单上的第一名。 有没有保证,还是有解决问题的更好的解决办法?

什么会导致部分处理泄漏?

这是对我以前的问题的后续问题。 正如我在上一个问题的答案中所build议的那样 ,我使用了ProcessExplorer来分析我的应用程序用于查找句柄泄漏的句柄列表。 泄漏的句柄是Sectiontypes的。 什么是一个部分句柄,它在哪里使用,并可能导致部分句柄泄漏? 我没有在我的代码中使用内存映射文件。

DirectX全屏窗口通过使用Windows API函数的窗口句柄进行窗口化

短篇故事 游戏开始全屏,但是是一个全屏directX窗口。 游戏支持窗口,但我必须手动。 我在Delphi中创build了一个程序,可以对任何窗口进行拉伸/resize以适应屏幕(使用系统范围的热键),无边框和标题,因此看起来像全屏,但不会触发直接的硬件访问。 这很重要,因为我使用的是不支持直接硬件访问所使用的技巧的DisplayLink适配器,但是想要在没有难看边框的情况下全屏播放它。 我可以调整除全屏DirectX窗口以外的任何窗口,我必须手动将全屏模式更改为窗口,这是我想要自动化。 长话短说 (向下滚动,如果你想知道这个问题) 我有一台DisplayLink适配器,电视屏幕距离电脑5米。 我想用它来运行游戏,所以我可以从沙发上玩游戏。 但是,DisplayLink驱动程序不能全屏播放大多数游戏,因为大多数游戏都会绕过桌面窗口pipe理器(DWM)直接在全屏时访问graphics硬件。 这是DisplayLink常见的/已知的问题。 在窗口模式下,适配器执行得非常好,所以我想在Delphi中编写一个小程序,将窗口化的directx屏幕最大化,而不是通过最大化全屏来实现,而是将窗口延伸到全屏。 我做的程序工作得非常好,但是只有当directx屏幕已经被打开时(游戏开始全屏,所以我必须点击一次窗口的图标才能使它成为窗口)。 游戏已经有了一个选项,可以在启动时加窗,但固定分辨率的可能性较小。 我想在全屏启动时自动执行此过程。 我想将directx屏幕更改为窗口,然后将其调整为全屏,而不是最大化。 程序如何工作 该程序定义了一个全系统键盘热键。 当按下热键时,程序将所有活动的前景窗口(窗口API getForeGroundWindow() )拉伸到全屏,使其成为无边界窗口,使其看起来像全屏。 这使您也可以在任何您喜欢的屏幕上运行游戏,而不仅仅是在系统的主屏幕上。 再次按热键时,窗口返回到之前的状态(切换)。 在应用“补丁”之前,它也检查窗口的types,所以它不能在不可resize的窗口上使用。 题 我知道窗口的把手必须被拉伸/调整到全屏。 当它是一个全屏DirectX窗口,我不能做任何事情,除非它是窗口。 如何通过向这个窗口句柄( sendMessage() )发送消息来将其状态更改为窗口状态。 这可能吗? 一些代码 (给你一些想法幕后发生的事情) function TWinSpread.setWindowStyleBounds( h : hWnd; lStyle : LongInt = 0; pR : PRect = nil ) : LongInt; var bRestore : […]