草庐IT

【JavaEE】进程和线程

全部标签

c++ - "SendMessage"到 C++ 中的 3 个不同进程

我想将击键发送到多个进程。例如,如果我按“1”,那么我想将“1”发送到3个“记事本窗口”。首先,我想尝试向记事本发送击键,但在HWND上失败了://HANDLEhWin;HWNDwindowHandle=FindWindowA(NULL,"Notepad");//Can’tfindaproccess//Sendakeyif(windowHandle)//Thisonefails{while(true){if(GetAsyncKeyState(VK_F12)!=0){SendMessageA(windowHandle,WM_KEYDOWN,VK_NUMPAD1,0);Sleep(1000

.net - 如果某些进程需要分配超过 2 GB 的内存,会发生什么情况?

据我所知-Windows中的任何进程都会获得2GB的虚拟内存地址空间(在某些情况下为3GB)用于分配用途。在什么情况下进程将获得3GB而不是2GB?应用程序开发人员是否可以通过某种方式“要求”操作系统分配超过2/3GB的虚拟地址空间?如果进程需要超过3/2GB会怎样?(我猜系统会遇到一些“内存不足异常”——但有什么方法可以避免这种情况吗?)例如-如果进程是“MicrosoftSQLServer”,需要分配比2/3GB多得多的内存,会发生什么 最佳答案 一个32位进程有4GB地址空间,其中通常为硬件保留1GB,为Windows保留1G

c# - 检测进程的两个窗口

假设我有2个pdf文档,我已经用acrobatfinereader打开了它们。所以我有2个不同的窗口。但是当我使用这段代码时:foreach(ProcesspinProcess.GetProcesses(".")){try{Console.WriteLine("\r\n");Console.WriteLine("\r\nWindowTitle:"+p.MainWindowTitle.ToString());Console.WriteLine("\r\nProcessName:"+p.ProcessName.ToString());Console.WriteLine("\r\nWindo

windows - 如果 Windows 中存在进程,则终止

我只想在进程存在时终止进程,我想这样做是因为我有一个工具,只有在没有错误的情况下才会运行,我做了一些测试,当我试图终止一个进程时确实有错误不存在的过程。这是我用来终止进程的行:taskkill/f/IMnotepad.exe但我想验证它只在进程存在时执行。谢谢!!! 最佳答案 取自this问题,你应该试试这个代码:taskkill/f/imnotepad.exe/fi"memusagegt40"2>NUL|findstrSUCCESS>NUL&&iferrorlevel1(echoNotepadwasnotkilled)else(e

c++ - 在 windows 中使用互斥量进行进程间同步(win32 或 C++)

我想在两个进程之间建立线程同步。基本上一个线程在App1.exe中运行,第二个进程在App2.exe中运行。我如何在Windows中同步这两个线程。有人可以分享一些示例或链接吗。 最佳答案 可能性:WINAPIMutex是一种进程间同步机制。参见UsingMutexObjects概览。boost::mutex.首选此方法的一个原因是所提供的scoped_lock功能可确保释放锁定,无论范围如何退出(异常或多个return语句)。 关于c++-在windows中使用互斥量进行进程间同步(w

c++ - 如何多次顺序调用3个线程?

如何多次顺序调用3个线程?例如:在迭代1中,执行顺序应为“Thread0->thread1->thread2”,然后在迭代2中执行顺序应相同,即“Thread0->thread1->thread2”,依此类推。示例代码只执行一次3个线程。它不会进行第二次迭代。Thread0=CreateThread(NULL,0,ThreadProc0,NULL,CREATE_SUSPENDED,&ThreadID);Thread1=CreateThread(NULL,0,ThreadProc1,NULL,CREATE_SUSPENDED,&ThreadID);Thread2=CreateThread

c# - 其他进程的 GetKeyboardLayoutName?

基本上,我要做的是让GetKeyboardLayoutName返回其他进程的键盘ID(KLID)。默认情况下,它只返回我的应用程序窗口的键盘ID。我也尝试了GetKeyboardLayout但它不幸地返回了一个HKL(它接受其他另一个窗口的hwnd)。或者,如果有一种方法可以将HKL转换为KLID,那也很好,但我怀疑是否存在这样的事情。那么,我该如何实现呢?我希望能够将获得的KLID用作LoadKeyboardLayout函数的参数。 最佳答案 我只是把它留在这里,以防其他人需要知道每个代码代表什么。我花了几个小时手工制作这份lis

windows - 获取正在运行的进程列表

我在Windows机器上工作,想直接从R获取所有正在运行的进程的列表(基本上是进程ID和正在运行的程序的路径)。我知道Sys.getpid()获取当前R进程的进程ID,但是否也存在一些东西可以让我在机器上运行所有进程,就像我在Linux中使用top或ps-x 最佳答案 您可以使用任务列表:system2('tasklist',stdout=TRUE)[1]""[2]"Nomdel'imagePIDNomdelasessioNum‚rodesUtilisation"[3]"===============================

windows - 当前线程的 SetWindowsHookEx 返回 null

我在尝试为当前线程获取键盘钩子(Hook)时遇到问题。首先,我需要为所有线程获取键盘输入,所以我使用了:hHook=SetWindowsHookEx(WH_KEYBOARD_LL,mKeyboardProc,GetModuleHandle(NULL),0);这工作正常,但是当我尝试将dwThreadId参数(最后一个)设置为GetCurrentThreadId()时,SetWindowsHookEx返回NULL。可能是什么问题?谢谢。 最佳答案 WH_KEYBOARD_LL是一个全局钩子(Hook),如documentation中所

c++ - 非提升进程是否可以将文件复制到 protected 目录?

当它准备好复制文件时,它要求用户进行提升,我觉得没问题。需要进行复制的程序无法运行提升(它失去了许多重要的环境变量,我无法改变它的启动方式)。我的后备方案是让它生成一个具有提升的进程,该进程实际上执行文件复制,但我宁愿不必向我正在处理的内容添加另一个exe。 最佳答案 使用COMElevationMoniker实例化IFileOperationshell接口(interface),那么使用该接口(interface)完成的所有文件操作都将被提升,而无需提升调用进程,也不必创建单独的EXE/进程来处理文件访问。