相关疑难解决方法(0)

读取另一个进程的命令行参数(Win32 C代码)

我需要能够列出传递给其他正在运行的进程的命令行参数(如果有的话).我已经在系统上运行了进程的PID,所以基本上我需要确定传递给给定PID XXX的进程的参数.

我正在研究用于管理流程Python模块的核心部分.代码在C中编写为Python扩展,并将由更高级别的Python库包装.这个项目的目标是避免依赖于第三方库,例如pywin32扩展,或者在命令行上调用'ps'或taskkill等丑陋的黑客,所以我正在寻找一种在C代码中执行此操作的方法.

我已经用Google搜索了一些,并找到了一些简短的建议,使用CreateRemoteThread()将自己注入其他进程,然后运行GetCommandLine(),但我希望有人可能有一些工作代码示例和/或更好的建议.

更新:我在CodeProject上找到了使用NtQueryProcessInformation的完整工作演示代码和解决方案:http://www.codeproject.com/KB/threads/GetNtProcessInfo.aspx - 这是不理想的,因为"不支持"直接从中剔除信息NTDLL结构,但我会忍受它.感谢大家的建议.

更新2:我通过更多谷歌搜索来挖掘不使用C++代码的C版本,并且更直接/更简洁地指出了这个问题.有关详细信息,请参见http://wj32.wordpress.com/2009/01/24/howto-get-the-command-line-of-processes/.

谢谢!

c python winapi

9
推荐指数
2
解决办法
1万
查看次数

检查是否在记事本中打开了文本文件

如何查找是否在记事本中打开特定的.txt文件?

我试过这里提到的解决方案

有没有办法检查文件是否正在使用?

但它们适用于Word和pdf文件,但不适用于在记事本中打开的txt文件.

这是我写的代码.

public bool IsFileOpen(string strFileName)
{
    bool retVal = false;
    try
    {
        if (File.Exists(pstrFileName))
        {
            using (FileStream stream = File.OpenWrite(pstrFileName))
            {
                try
                {    
                }
                catch (IOException)
                {
                    retVal = true;
                }
                finally
                {
                    stream.Close();
                    stream.Dispose();
                }
            }
        }
    }
    catch (IOException)
    { //file is opened at another location 
        retVal = true;
    }
    catch (UnauthorizedAccessException)
    { //Bypass this exception since this is due to the file is being set to read-only 
    }
    return retVal;
} 
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么.

我的要求: …

c# file-io file winforms

2
推荐指数
1
解决办法
3531
查看次数

标签 统计

c ×1

c# ×1

file ×1

file-io ×1

python ×1

winapi ×1

winforms ×1