标签: windows-process

最大化另一个进程'Window in .NET

我有一个处理.net(proc.MainWindowHandle)中另一个进程的主窗口.如何最大化.net内部的窗口?

.net windows-process

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

从32位进程获取64位进程的命令行字符串

下面的代码非常适合从32位应用程序获取32位进程的命令行字符串,从64位应用程序获取64位进程,从64位应用程序获取32位进程.如果我尝试从32位应用程序使用64位进程,这将会中断.原因是PROCESS_BASIC_INFORMATION和地址大小的结构大小差异.所以这是我的问题 -

1)在进程黑客(http://processhacker.sourceforge.net/forums/viewtopic.php?f=15&t=181)中使用wow64函数的建议似乎不起作用并且失败并出现以下错误 -

从A68291A0004028E0读取ProcessParameters地址时出现NtWow64ReadVirtualMemory64错误:8000000D

有没有人试过这个并且可以成功获取信息?我在他们的论坛上发布了同样的问题.

2)是否有其他方法可以查询可以可靠地用于x86和x64的peb信息?

int get_cmdline_from_pid( DWORD dwPid, char** cmdLine )
{
    DWORD dw, read;
    HANDLE hProcess;
    NtQueryInformationProcess* pNtQip;
    PROCESS_BASIC_INFORMATION pbInfo;
    UNICODE_STRING cmdline;
    WCHAR* wcmdLine;

    *cmdLine = NULL;

    hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwPid );
    if( !hProcess )
        return FALSE;

    pNtQip = (NtQueryInformationProcess*) GetProcAddress(GetModuleHandle("ntdll.dll"), 
                                                    "NtQueryInformationProcess");
    if(!pNtQip)
        return FALSE;

    pNtQip(hProcess, PROCESSBASICINFOMATION, &pbInfo, sizeof(pbInfo), NULL);

    #ifdef _WIN64
        ReadProcessMemory(hProcess, pbInfo.PebBaseAddress + 0x20, &dw, sizeof(dw), 
                         &read); 
    #else
        ReadProcessMemory(hProcess, pbInfo.PebBaseAddress + 0x10, &dw, sizeof(dw), 
                          &read); 
    #endif

    #ifdef _WIN64 …
Run Code Online (Sandbox Code Playgroud)

c windows winapi windows-process

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

VB6应用程序停止响应

我有一个用VB6编写的程序,它读取一个长文本文件并执行很长时间的操作.我也实现了进度条,但我的问题是,在我的程序说"没有响应"之后,它在任务完成时再次开始响应.

如何删除此"无响应"问题?

vb6 windows-process

5
推荐指数
1
解决办法
3305
查看次数

C# git 命令行过程

我们的组织使用 VisualStudioOnline、GitHub 和 BitBucket 作为各种存储库。我一直在尝试在 C# 中找到一种方法来定期自动执行pull来自各个存储库的更改。git我尝试启动这样的过程,然后重定向标准输入/输出。

var p = new Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = @"C:\Program Files (x86)\Git\bin\sh.exe",
        RedirectStandardInput = true,
        UseShellExecute = false,
        RedirectStandardOutput = true,
        Arguments = "--login -i"
    }
};

p.Start();

using (var so = p.StandardOutput)
{
    using (var si = p.StandardInput)
    {
        if (si.BaseStream.CanWrite)
        {
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在块内部,我可以执行git如下命令:

  • si.WriteLine("cd \"P:/code/testapp\"");它将git shell 导航到该目录
  • si.WriteLine("git rev-parse HEAD"); 这将为我提供该位置存储库的最新哈希值。

我可以看到 bash shell 中返回的哈希值,也可以通过标准输入读取它,如下所示var …

c# command-prompt git-config windows-process git-bash

5
推荐指数
0
解决办法
3157
查看次数

"程序没有响应"是什么意思?

这条消息意味着什么,是否有一个API来"响应"Microsoft Windows状态查询?

我正在寻找技术答案.谢谢 :)

windows winapi windows-process

3
推荐指数
1
解决办法
1799
查看次数

Windows:获取正在运行的进程的版本

我想概述正在使用的所有程序以及正在使用的该软件的版本.我不需要知道确切的版本号(虽然它会很好),但只能说两件事是不同的版本(或版本).

因为我对每个程序都一无所知,所以我需要以通用的方式完成.怎么可以这样做?

windows versioning winapi windows-process

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

如何使用C#结束进程

我试图在C#中结束一个进程,我现在的代码是这样的:

foreach (var process in Process.GetProcessesByName("chromedriver.exe"))
{
    process.Kill();
}
Run Code Online (Sandbox Code Playgroud)

在任务管理器中,处理图像名称:

chromedriver.exe*32

我没有结束这个过程......需要什么?或者这甚至可能吗?

c# process windows-process

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