草庐IT

进程注入

全部标签

windows - 使用内存映射文件同时允许其他进程完全访问

我正在尝试在Windows下使用内存映射文件(使用CreateFile/CreateFileMapping/MapViewOfFile函数),并且我当前在调用CREATE_FILE时指定FILE_SHARE_READ和FILE_SHARE_WRITE。但是,这会锁定文件以防止其他进程使用。我想要的是在调用CreateFileMapping或MapViewOfFile时内存映射文件的快照,这样我就看不到对文件所做的任何更改(写入或删除)通过其他过程。有点像写时复制,但其他进程正在执行写入。我可以在Windows上使用内存映射文件来执行此操作吗? 最佳答案

python - 如何确定是否需要提升权限才能在不进行故障检查的情况下启动进程

如何在不先尝试然后失败的情况下检查是否需要提升权限来启动子进程?我需要从python代码中启动一个子进程命令。在某些情况下,它工作正常,在其他情况下,事实证明需要更高的权限;在某些Windows系统上,这种情况会导致我的程序卡住。我想确定是否需要提升权限,而不是先尝试运行子进程并捕获/捕获任何错误情况。导致程序卡住的进程被调用;subprocess.call('路径_文件名_选项',shell=False) 最佳答案 Withpywin32,somethinglikethefollowingshouldwork...:importp

windows - 64 位应用程序与 32 位进程通信

我有一个使用32位第三方库的32位应用程序。现在我必须将我的应用程序设为64位,以便它可以利用64位地址空间(大内存)。由于我无法将32位库加载到64位应用程序进程中,我正在考虑在第三方库上创建32位可执行包装器,并使用IPC(命名管道/套接字)从我的64位应用程序进行通信。所以我的问题是他们这样做会有什么问题吗?此外,如果我必须在64位系统上安装我的应用程序,所有与我的应用程序相关的文件都将被复制到“c:\ProgramFiles”目录。现在我可以将我的32位第三方exe包装器保留在同一个“c:\ProgramFiles”中,还是我需要复制到“c:\ProgramFiles(x86)

windows - 如何检查一个进程中可以使用的地址空间的最大内存量

如果在32位可执行文件中未指定LARGEADDRESSAWARE开关,则2GB内存(提供或占用)可供进程使用。当开关LARGEADDRESSAWARE出现在可执行文件的PE标志中时,此限制可以是(如果我错了请纠正我):如果32位Windows不是使用/3GB开关启动的,则为2GB3GB(如果32位Windows是使用/3GB开关启动的)如果该进程作为32位进程在Windows64位操作系统下运行,则几乎高达4GB。我的问题是:如何确定此内存限制(有和/或没有LARGEADDRESSAWARE标志)?作为旁注:上面列举的可能性是否正确?注意:我对进程使用的内存量不感兴趣,也不是由于外部影

c - 测量进程的生命周期(因为它被加载到内存中)

进程是否有显示其生命周期的任何属性(自加载到内存以来)用于提取此信息的WINAPI是什么?我希望能够测量系统中任何进程的生命周期 最佳答案 我认为您在寻找GetProcessTimes函数。您提供一个进程的句柄(您可能需要具有适当的安全属性),还提供几个指向FILETIME结构的指针,您可以将其转换为SYSTEMTIMEwithFileTimeToSystemTime.FILETIME对象之一指的是进程的创建时间,这可能是可执行文件加载到内存时最接近的时间。 关于c-测量进程的生命周期(

Python:进程/线程监控

目前我可以用一个简单的python脚本列出我的进程:导入操作系统os.system("任务列表")我想列出与这些进程关联的所有线程(如果有的话)。每个进程的线程数可能就足够了。谁能告诉我在哪里可以找到这些信息。谢谢。 最佳答案 您可以使用psutil模块(downloadhere)用于跨平台过程信息传递。安装后,使用以下代码获取任意进程id的线程数。importpsutilforprocinpsutil.process_iter():printproc.name+'['+str(proc.get_num_threads())+'th

windows - 使用 wmic 作为不同的用户在本地主机上创建进程

有没有办法以不同的用户身份在本地主机上使用wmic创建进程。使用类似这样的方法:wmic/node:localhost/user:userprocesscallcreate"cmd"我知道我可以使用runas,但我很好奇这是否可行。可能某些全局开关可以提供帮助?(/ROLE,/IMPLEVEL,/AUTHLEVEL,/AGGREGATE,/AUTHORITY)。或者改变一些配置?目前我收到此错误:ERROR:Description=Usercredentialscannotbeusedforlocalconnections编辑:这是thebestsolution我为这种情况找到的

linux - 部署守护进程的过程和位置

我是Linux新手。我最近将我的C++窗口服务移植到linux守护进程。在Windows中,我有以下文件夹结构。我发现这个结构很容易让其他同事跟随并升级到新版本。C:\services\my_app\version_1_0\my_app.exeC:\services\my_app\version_1_0\my_app.config.xmlC:\services\my_app\version_1_0\dependencies1.dllC:\services\my_app\version_1_0\log\my_app_20121110.logC:\services\my_app\versi

windows - 检索进程的内存消耗

我的AutoIt脚本自动执行测试用例。我怀疑某些东西正在泄漏内存。它从10MB开始,当测试用例结束时它达到大约40MB(TaskManager值)。我希望我的AutoIt脚本在每个测试用例之后报告内存消耗。了解差异后,我可能可以找到原因。如何使用AutoIt脚本检索进程的内存消耗? 最佳答案 您正在查找WorkingSetSize,它可能与任务管理器中列出的值不完全相同。根据它的documentation,工作集是在给定时间物理映射到进程上下文的内存量。判断方法如下:$wbemFlagReturnImmediately=0x10$w

windows - 从NodeJs启动一个独立的进程

我目前正在使用NodeJs网络服务按需运行一些casper.js脚本。因为casper.js使用stdout作为返回Node的通信channel并且Node将casper作为子进程运行计划任务。这行得通,但现在我需要将此代码生产化,并且确实需要使其更能应对崩溃-即,如果它失败,我需要重新启动服务。据我所知,我的选择是......在linux机器上运行Node服务,然后当它作为守护进程运行时stdout应该可以工作以某种方式使Windows服务能够“看到”标准输出创建一个单独的Node服务器(在nssm下运行),可以监控服务并在失败时重新启动到目前为止,由于有额外的托管主机,我想尽可能避