我有一个处理.net(proc.MainWindowHandle)中另一个进程的主窗口.如何最大化.net内部的窗口?
下面的代码非常适合从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) 我有一个用VB6编写的程序,它读取一个长文本文件并执行很长时间的操作.我也实现了进度条,但我的问题是,在我的程序说"没有响应"之后,它在任务完成时再次开始响应.
如何删除此"无响应"问题?
我们的组织使用 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 …
这条消息意味着什么,是否有一个API来"响应"Microsoft Windows状态查询?
我正在寻找技术答案.谢谢 :)
我想概述正在使用的所有程序以及正在使用的该软件的版本.我不需要知道确切的版本号(虽然它会很好),但只能说两件事是不同的版本(或版本).
因为我对每个程序都一无所知,所以我需要以通用的方式完成.怎么可以这样做?
我试图在C#中结束一个进程,我现在的代码是这样的:
foreach (var process in Process.GetProcessesByName("chromedriver.exe"))
{
process.Kill();
}
Run Code Online (Sandbox Code Playgroud)
在任务管理器中,处理图像名称:
chromedriver.exe*32
我没有结束这个过程......需要什么?或者这甚至可能吗?
winapi ×3
windows ×3
c# ×2
.net ×1
c ×1
git-bash ×1
git-config ×1
process ×1
vb6 ×1
versioning ×1