草庐IT

【JavaEE】进程和线程

全部标签

windows - 确定 Win32 函数的调用进程

有什么方法可以确定哪个进程调用了Win32函数。其实我需要hook几个函数,另外我还需要确定是哪个进程调用了这个函数。我使用MSDetours完成了Hook函数,例如FindNextFile()和winsock函数send()和receive()但问题出在后面部分即确定调用者进程。请帮助。 最佳答案 你的钩子(Hook)将在调用进程的上下文中运行,所以它可能只是调用GetCurrentProcessId或返回您需要了解的有关流程的信息的类似函数。 关于windows-确定Win32函数的

c++ - 使用不同线程时 Win32 API 死锁

我在尝试从其他线程使用WIN32API时遇到死锁。我的应用程序需要额外的线程来提高帧速率。它实际上有帮助,但是,我在几乎所有系统功能中都遇到了死锁:::显示窗口::移动窗口::更新窗口例如,我知道ShowWindow()可以替换为ShowWindowAsync(),它确实解决了问题,但是,在MoveWindow()和UpdateWindow()中没有这样的替代方法。有人遇到过这些问题吗,解决方案是什么?谢谢! 最佳答案 术语“死锁”描述了一个非常具体的事情,两个线程等待访问被另一个锁定的资源。没有迹象表明这就是您的情况(或是否存在?

c++ - 进程范围上的 SetThreadLocale

我知道如果我想使用LCID为我的线程更改语言环境,我可以调用SetThreadLocale,但如何使用LCID在进程范围内设置它? 最佳答案 WinApi无法做到这一点。语言环境是按用户设置的,您不能设置进程的语言环境,您只能按线程设置。 关于c++-进程范围上的SetThreadLocale,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/16953261/

python - 从子线程 python 中杀死 main thead

我想在函数check_Temp退出/引发异常时终止主进程。我知道这可能不是最好的方法,但我必须集成很多代码,这要容易得多。另外,我确实想要硬关闭,所以关闭程序后是否出现一些错误也没关系。我尝试了os.taskskill()、sys.exit()。os.exit()等,但子进程不会杀死主进程。我不介意是否所有python进程都被杀死。psutil下载受我公司的IT部门的防火墙保护,所以我想知道是否有人有其他解决方案。importthreadingimporttimeimportosfromsubprocessimportcall#importpsutildefcheck_Temp(tem

c - 如何在同一进程内共享共享对文件的读/写访问权限,但在外部禁止它?

我有几个对象持有同一个文件的句柄。但是,这些对象中的每一个都在读/写文件的不同部分。我需要阻止对该文件的外部访问,但仍然能够在我的进程中为其创建新的句柄。如果我在调用CreateFile时不共享读/写访问权限,我就无法从我的进程中获取文件的新句柄。如果我使用DuplicateHandle,所有句柄将共享相同的文件位置。我可以通过为根据需要到处寻找的文件制作代理来解决这个问题,但这会导致糟糕的设计。有什么办法可以实现这样的内部共享? 最佳答案 根据您的需要,您可以调用一次CreateFile()来创建/打开文件,然后让您的每个对象使用

c++ - 用于检测启动和终止的应用程序/进程的 WIN32 API

这个问题在这里已经有了答案:Howtodetectwin32processcreation/terminationinc++(9个回答)关闭9年前。我正在寻找一个WIN32API来检测应用程序在我的应用程序中的启动和终止。我正在寻找开发一个dockBar/TaskBar,我需要为它获取启动和终止的应用程序的句柄。

C++释放指向作为线程lpParam传递的结构的指针内部的指针

我在我的VC++程序中有一个要点,我必须创建一个新线程并将一个int和一个字符串作为lpParam传递。所以到目前为止我所做的是这个(删除指针/错误检查):typedefstruct_chThParam{intc;char*s;}chThParam;DWORDWINAPIstartSession(LPVOIDlpParam){chThParam*param=(chThParam*)lpParam;//dosomethingwithparamfree(param->ip);free(param);return0;}voidhandleResp(intc,char*s){chThParam

Java:从命令行运行时重定向内部进程输出

我使用以下代码来重定向我从我的Java应用程序启动的进程的输出:ProcessBuilderbuilder=newProcessBuilder("MyProcess.exe");builder.redirectOutput(Redirect.INHERIT);builder.redirectErrorStream(true);现在,当我从eclipse运行代码时,它工作正常-我可以在Eclipse的控制台中看到输出。然而,当我创建一个jar文件并从cmd窗口运行它时,例如java-jarMyJar.jar,它不打印进程的输出。这可能是什么原因? 最佳答案

windows - 线程高 CPU 使用率但处于 "Ready"状态

我在Windows中使用ProcessExplorer来检查进程。当我查看此进程属性中的线程选项卡时,我看到1个线程的CPU使用率很高(双核服务器的总CPU约为30-49%,因此如果您等同于它,它会占用大量CPU时间单个线程到单个CPU时间间隔的值(value))。现在,如果我坐下来观察这个线程,它98%的时间都处于“就绪”状态,而其他时间则处于“正在运行”状态。为了用间隔更好地说明这一点:t=0,CPU=35,State=Readyt=1,CPU=49,State=Readyt=2,CPU=50,State=Readyt=3,CPU=39,State=Readyt=4,CPU=32,

c++ - SYSTEM 进程是否可以与非 SYSTEM 进程共享数据?

我正在尝试使用QSharedMemory和QClipboard在SYSTEM进程(在WinSta0\\Winlogon桌面)和普通用户进程,但都无法与普通桌面上运行的其他非SYSTEM进程共享数据。我相信这是因为WinSta0\\Winlogon桌面是一个独立的桌面。我的应用是一个拍摄Windows安全桌面并将其发送到剪贴板的程序。问题是:有没有办法在该进程和非SYSTEM进程之间共享内存数据?(实际上我正在使用一个文件来完成这项工作)。 最佳答案 在WindowsVista及更高版本中,系统服务在隔离的session(“sessi