草庐IT

初识进程

全部标签

windows - 通常从提升的进程执行进程

是否有某种方法可以从提升的方式以非提升的方式启动流程。我的设置启动提升,当它完成时,它只会启动主应用程序。由于设置已提升,因此主进程也会提升,这是不可取的。最好的解决方案是什么? 最佳答案 这是个问题,Vista/Win7似乎没有API来获取调用CreateProcessAsUser()所需的非特权用户token。我发现的唯一解决方案涉及使用任务调度程序来启动程序。我觉得这不太实用。我想到的一个简单的解决方案是使用一个小型的非提升的辅助进程。它可以依次启动提升的设置过程并等待该过程的确认以启动非提升的设置过程。握手非常简单,可以使用

windows - 用于检测不死进程的 NtQueryInformationProcess 替代方案?

我想检测何时有人在不通知调试器的情况下终止暂停的调试进程。(例如,到达控制台应用程序中的断点,并关闭应用程序的控制台窗口。)进程进入类似僵尸的状态,并且在调试器释放它之前无法进一步交互。当通过NtQueryInformationProcess收集有关进程的信息时,此状态似乎设置了PROCESS_EXTENDED_BASIC_INFORMATION::IsProcessDeleting标志,但标志、结构和函数在MSDN上实际上未记录并标记为“请勿使用”。测试这个标志可靠吗?我可以使用更好的“官方”API吗?(是的,我知道IsProcessDeleting也会在进程正常关闭(惊讶,惊喜)时

windows - 在继续批处理脚本之前如何等待服务/进程启动?

我正在编写一个Windows批处理脚本来卸载一些软件。但是,我需要等待卸载程序完成后才能重新启动服务,然后才能继续下一次卸载。我可以让脚本等待卸载程序完成使用:-for/f"usebackq"%%Min('tasklist/nh/fi"imagenameeq%process_1%"')doifnot%%M==%ignore_result%goto1但我终其一生都无法弄清楚如何让脚本等待服务启动,然后再继续执行脚本并运行更多卸载。我愿意接受任何建议。 最佳答案 如何避免使用中间文件FOR/F"usebackqtokens=1,4"%%

windows - Windows 中每个进程/线程的最大互斥数

在Asp.net应用程序中,每个进程/线程的最大互斥数是否有限制?以防万一目标操作系统是:WindowsXPPro、server2003/2008和不久的将来的Windows7。通常网站部署在应用程序池中。 最佳答案 该限制与进程可以拥有的句柄数限制基本相同。这是一个相当大的数字:16,777,216。当然,实际限制要低得多,并且取决于您有多少可用的非分页池,这并没有那么大。如果您担心这个限制,那是您的程序出了问题。请记住,临界区通常会延迟任何内核对象的创建,这意味着如果争用很少,您可以拥有大量内核对象。

windows - 创建一个防弹工作进程(在 windows 上)

我编写了一个pdf查看器,它使用各种用C编写的库。此C代码可能很容易被利用。而且要检查的线路太多了。我将不得不假设此代码可能包含可利用的错误。关键是C代码非常简单。一端输入字节流,另一端输出位图(也是字节流)。受谷歌浏览器的启发,我正在考虑创建一个单独的进程来进行解码和页面渲染。理想情况下,这应该在一个绝对无权执行任何操作的进程中执行,除了读取它拥有的一个输入流,并在另一端输出到字节流(一些未压缩的位图)。我认为进程不应该做的是:任何磁盘访问打开套接字内存使用量有限与其他进程访问共享内存加载其他dll...还有什么吗?这可能吗?这在某处有描述吗? 最佳答案

c++ - 如何获取远程(即不在我的进程内)线程的堆栈跟踪?

假设我正在编写一个调试器。如何在Windows系统上构建堆栈跟踪?我不需要列举符号等等;只是堆栈上各种函数调用的地址。我已经有了具有VM_READ访问权限的线程句柄。 最佳答案 比利,DBGHELP.DLL是你的friend。各种usefulfunctions对于那些希望执行调试器之类的事件的人...您可以在其中找到像StackWalk64这样的好东西和其他允许您指定要操作的目标进程的程序。当然,您可能需要确保您的调试器进程本身已被授予SeDebugPrivilege。玩得开心! 关于c

windows - Explorer.exe CPU 使用率随非 Explorer 进程增加?

我有一个在Windows资源管理器中运行的程序。通常,如果没有其他程序在运行,它将使用2-3%的CPU(因此explorer.exe将在资源监视器中显示2-3%)。当我的程序未运行而另一个不会增加explorer.exeCPU使用率的程序正在运行时(例如FireFox),explorer.exeCPU使用率可以忽略不计。但是,当我的程序和另一个程序(如上所述)同时运行时,explorer.exe的CPU使用率将增加到8-10%。我注意到在Windows资源管理器中运行的其他程序也会发生同样的事情。有人知道为什么会这样吗?它是Windows固有的东西还是有其他程序可能导致这种情况?P.S

c++ - 使用 pthread_win32 增加进程优先级

环境:WinXP、VisualC++我正在使用pthread_win32库来在我的程序中实现线程,我想将我的进程(程序)优先级提高到HIGH_PRIORITY_CLASS。库中是否有允许这种操作的函数?否则,是否可以将SetPriorityClass函数与`pthread_win32一起使用,或者我必须使用win线程以确保某种兼容性? 最佳答案 你可以获得一个本地线程句柄来调用SetPriorityClass与pthread_getw32threadhandle_np. 关于c++-使用

c++ - 创建附加到控制台但具有重定向标准 IO 句柄的进程

我有一个命令行应用程序,它根据用户提供的脚本执行其他程序。一些执行的子进程是cmd.exe运行各种.cmd脚本。一些.cmd脚本使用titleWindowsshell命令设置控制台窗口标题。这就是问题所在。如果用户请求记录子进程的输出,我使用标准句柄的管道来获取子进程的输出。然而,这似乎使子进程无法附加到我的应用程序运行所在的控制台,因此title命令停止工作,停止更改控制台窗口标题。是否可以创建一个具有重定向标准句柄但仍附加到父进程控制台的进程,以便title命令起作用? 最佳答案 显然,要将子进程附加到父控制台,所需要做的就是不

c++ - Windows 中 code::blocks (C++) 中父/子进程的大多数准系统示例

1)我正在寻找一个非常简单的示例,分别包含两个函数(Parent、Child),它们将创建一个子进程,然后将子进程连接到父进程(父进程可以访问子进程中的变量).请让示例尽可能简单,因为我很确定Windows代码是有意设计得尽可能复杂和困惑的。2)或者,我也愿意考虑替代WINAPI调用来创建父/子进程(只要它与Windows兼容)。编译器是code::blocks,操作系统是Vista。如果可能的话,最好与其他操作系统兼容(我知道WINAPI不是,但这是我知道的唯一方法)。如果这些函数与unix函数(例如fork)有相似之处,那就太好了。3)对于一个更难的替代方案,我怎样才能以这样的方式