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( […]