Articles of 进程

如何确定一个System.Diagnostics.Process是32位还是64位?

我试过了: process.MainModule.FileName.Contains("x86") 但它引发了一个x64进程的exception: Win32Exception:只有ReadProcessMemory或WriteProcessMemory请求的一部分完成

如何从32位WOW进程获取Program Files文件夹path(不是Program Files(x86))?

我需要从32位WOW进程获取本地(而不是WOW)程序文件目录的path。 当我将CSIDL_PROGRAM_FILES(或CSIDL_PROGRAM_FILESX86)传递到SHGetSpecialFolderPath时,它将返回WOW(Program Files(x86))文件夹path。 如果可能的话,我宁愿避免使用环境variables。 我想比较一下从registry中读取的一些值,如果这些值指向我的应用程序的WOW或本地版本的path,那么我的代码会执行某些操作,如果没有,则会执行其他操作。 要找出我的应用程序的本地和WOW版本的预期,我需要得到的path“程序文件(x86)”和“程序文件”。

有没有一种方法来识别Windows命令提示符而不pipe文件名或位置?

我正在编写一个程序,以便在用户运行命令提示符时立即跟踪和终止(如果可能,则使用regedit)。 这是为了阻止用户运行我宁愿他们没有的命令。 我已经编写了一些代码,用于查看进程何时启动,并使用QueryFullProcessImageName检查其名称。 问题是,如果有人要重命名命令提示符,那么我不能再通过进程名称检测到它。 我检测命令提示符的方式目前是“\ cmd.exe”,但显然这不是很安全。 下面发布是我的代码。 为了简洁,我删除了所有错误检查。 请让我知道,如果你需要更清晰。 谢谢! TCHAR exeName[MAX_PATH]; DWORD exeNameSize = MAX_PATH; //the pid comes into the function as a parameter HANDLE handle = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, 0, pid); if (handle) { if (QueryFullProcessImageName(handle, 0, exeName, &exeNameSize)) { tstring name = exeName; /* badProcs would contain the path identifiers such as "\\cmd.exe" or […]

如何使用pid从Python中终止进程?

我想在Python中写一些简短的脚本,如果不是已经开始其他的terminal和应用程序(Linux),将启动子stream程中的另一个Python代码。 所以它看起来像: #!/usr/bin/python from subprocess import Popen text_file = open(".proc", "rb") dat = text_file.read() text_file.close() def do(dat): text_file = open(".proc", "w") p = None if dat == "x" : p = Popen('python StripCore.py', shell=True) text_file.write( str( p.pid ) ) else : text_file.write( "x" ) p = # Assign process by pid / pid from int( […]

无法在PowerShell上导入MSOnline(Connect-MsolService错误)

我有这个问题,无法find任何答案。 问题是我试图使用Azure cdmlets通过c#代码连接到O365,但是我无法获得connect-msolservice 。 “尝试在Office 365中运行pipe理Windows PowerShell cmdlet”时出现“无法识别该术语”错误“

为什么OS不能使用整个64位进行寻址? 为什么只有48位?

我正在阅读“了解Linux内核”。 分页为64位体系结构 正如我们在前面的章节中看到的那样,32位微处理器通常使用两级分页。 但是,两级分页不适用于采用64位体系结构的计算机。 让我们用思维实验来解释为什么: 首先假设一个4 KB的标准页面大小。 由于1 KB覆盖2 10个地址的范围,因此4 KB覆盖2 12个地址,所以偏移字段为12位。 这会在表格和目录字段之间分配最多52位的线性地址。 如果我们现在决定只使用64位中的48位来寻址(这个限制使我们有一个舒适的256 TB地址空间!) ,其余的48-12 = 36位将不得不在表和字段字段之间拆分。 如果我们现在决定为这两个字段中的每一个保留18位,则每个进程的Page Directory和Page Table都应该包含2 18个条目,即超过256,000个条目。 “如果我们现在决定只使用64位中的48个寻址”。 为什么? &为什么只有48位? 为什么不是其他号码? 那么,我只是一个普通的PC用户和程序员。 它只是很难相信,32位寻址,即每个进程的4GB(2GB / 3GB更加正确)地址空间是一个限制。 如果你真的遇到这个限制。 请给我举个例子。 这个窗口的限制是什么? 我知道虚拟内存!=物理内存和处理器地址引脚与虚拟内存无关。 这是一个完全不同的问题。 如何知道处理器的地址引脚数(=地址总线的大小)。 http://ark.intel.com处理器的规格不包含此规格。 回答: 第一个问题见Paul Betts的答案是合理的。

如何检查32位或64位Internet Explorer 10和11?

在IE10之前(比如IE9),我可以使用window.navigator.platform来检查IE是32bit还是64bit。 但对于IE10(IE11), window.navigator.platform总是返回32位。 当我从C:\ Program Files(x86)\ Internet Explorer打开IE11时,看到有一个进程IExplorer和另一个进程IExplorer*32 。 如果再打开一个选项卡,则创build另一个进程IExplorer*32 。 但是,从C:\ Program Files \ Internet Explorer打开IE10(IE11)时,情况也是如此。 所以,我不知道IE10和IE11是否都有32bit和64bit。 也许父框架是64位,每个标签是32位。 任何人都知道吗?

更改Python脚本的进程名称

Windows任务pipe理器列出“进程”选项卡中的所有正在运行的进程。 Python脚本的图像名称始终是python.exe或pythonw.exe ,或Python解释器的名称。 除了改变Python解释器的名字之外,有没有一种更改Python脚本的图像名称的好方法?

Windows 7 / Vista进程pipe理 – 如何在长时间空闲时间后启动外部程序?

这是这个问题的后续行动。 基本上,我有一个Python脚本应该启动另一个程序(.exe)通过一个计时器约2-6小时后。 一切工作正常,只要我testing一个短暂倒计时或只要计算机是“活跃”(= userinput之前,屏幕上)之前定时器到期或只要没有其他程序在同一时间工作(一个Excel VBA脚本在我的情况)。 在Windows 7上,长时间倒计时和运行Excel,外部程序不会打开。 没有任何错误消息和任何其他(python内部)命令之后,他们应该执行。 我使用x=subprocess.Popen([program,args],flags)命令,并尝试几乎所有可能的标志(Shell,buffersize,creationflags,stdout等)和选项(调用),但其行为总是如上所述。 现在,当我尝试通过VBA打开外部程序时,我注意到了一个类似的行为,所以我不认为它是一个特定于Python的,而是一个Windows特定的问题。 此外,我尝试了与Windows Vista的另一台PC上,它出乎意料地(如果这是重要的64位)。 我已经尝试通过SetThreadExecutionState提高进程优先级或防止空闲状态,并禁用了所有我知道的节能function,但目前为止没有任何改变。 有没有人有一个想法? 非常感谢,我慢慢地感到沮丧…

程序如何删除自己的可执行文件

有没有办法可以运行的进程可以删除自己的可执行文件? 例如,我做一个控制台应用程序(单个EXE),做了一些任务后,它以某种方式删除EXE文件。 我必须发送一个单一的文件给某人。 我希望在完成预定的任务后将其删除。 有没有在Windows中做到这一点