32 windows_32_ProcUse 进程使用

windows_32_ProcUse 进程使用

  1. // windows_32_ProcUse.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <windows.h>
  5. void Wait( )
  6. {
  7. //创建一个进程
  8. STARTUPINFO si = { 0 };
  9. PROCESS_INFORMATION pi = { 0 };
  10. si.cb = sizeof( si );
  11. CreateProcess( "C:\\Program Files\\Microsoft Games\\Minesweeper\\MineSweeper.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );
  12. printf( "Winmine is running\n" );
  13. //等候进程结束
  14. WaitForSingleObject( pi.hProcess, INFINITE );
  15. printf( "Winmine is stop\n" );
  16. }
  17. void Terminate( DWORD dwProcID)
  18. {
  19. //3、结束进程
  20. //ExitProcess
  21. //TerminateProcess
  22. HANDLE hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dwProcID );
  23. TerminateProcess( hProc, 0 );
  24. }
  25. void Create( )
  26. {
  27. //1、创建进程
  28. //WinExec 16位windows的东西,退伍了
  29. //ShellExecute 带有环境参数的命令行,尽量用这个
  30. //CreateProcess 执行一个EXE可执行文件,创建一个进程以及它的主线程
  31. STARTUPINFO si = { 0 };
  32. PROCESS_INFORMATION pi = { 0 };
  33. si.cb = sizeof( si ); //还得给它赋点值
  34. CreateProcess( "C:\\Program Files\\Microsoft Games\\Minesweeper\\MineSweeper.exe", NULL, NULL, NULL,
  35. FALSE, 0, NULL, NULL, &si, &pi );
  36. //输出信息
  37. printf( "Process Handle: %p\n", pi.hProcess );
  38. printf( "Process ID: %d\n", pi.dwProcessId );
  39. printf( "Thread Handle: %p\n", pi.hThread );
  40. printf( "Thread ID: %d\n", pi.dwThreadId );
  41. }
  42. int _tmain(int argc, _TCHAR* argv[])
  43. {
  44. Create( );
  45. Terminate( 8244 );
  46. Wait( );
  47. return 0;
  48. }

来自为知笔记(Wiz)

时间: 2024-10-10 13:00:43

32 windows_32_ProcUse 进程使用的相关文章

一个32位进程可以占用最大内存

这里说的内存是逻辑上的,也就是虚拟的.并不是物理上的内存空间.实际实现逻辑内存的时候如果物理内存不足就用辅存(硬盘).有的人自然要问:既然可以用辅存虚拟,那么每个进程不是想要多大虚拟内存就有多大么?实际不是这样,32位机决定了内存寻址空间最大只能是2的32次方,即4G 如果程序实际需要的内存大于虚拟内存(尽管没有达到4G),windows就会在右下脚出现一个黄色三角形里面有个感叹号.提示虚拟内存不足,要你设置虚拟内存为更大的值.如果不设置,或如你所说硬盘都不足4G就会自动终止进程终止不了就死机了

第一次作业:Linux 2.6.32的进程模型与调度器分析

1.前言 本文分析的是Linux 2.6.32版的进程模型以及调度器分析.在线查看 源码下载 本文主要讨论以下几个问题: 什么是进程?进程是如何产生的?进程都有那些? 在操作系统中,进程是如何被管理以及它们是怎样被调用的? 2.进程模型 2.1进程的概念 在我的理解中,一个程序就相当于一个进程,程序的启动意味着产生了一个新的进程,程序的关闭也就意味着一个进程的消亡. 那么专业定义应该是: 在计算中,进程是正在执行的计算机程序的一个实例. 它包含程序代码及其当前活动. 根据操作系统(OS),一个进

基于Linux 2.6.32的进程分析

前言 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统. 本文的分析全部基于Linux Kernel 2.6.32,源代码的链接地址:https://elixir.bootlin.com/linux/v2.6.32/source/fs 具体内容分为: 进程的概念 进程的建立 进程的转换 进程的调度 对于进程的理解 一.进程的概念 1.1什么是进程 大众对进程的理解基本上基于打开任务管理器所看到的正在执行的软件等

32位程序下调用64位函数——进程32位模式与64位模式切换

之前学习的32位进程中调用64位进程函数的知识整理一下,也就是32位模式与64位模式之间的切换. 相关博客:http://www.cnblogs.com/lanrenxinxin/p/4821152.html 这个博客中提到了github上的开源库,我在另一份开源项目中也看到了个库,可以切换32位至64位. 如果对这个功能具体实现比较感兴趣的朋友可以看看下面的内容. 我阅读了源码并进行了注释,算是对这个具体方法的分析和学习. 关键: 1.在x64下的进程,不管是32位或者是64位,实际上都映射了

32位程序注入64位DLL到64位进程

向其它进程注入DLL通常的做法是通过调用CreateRemoteThread这个API在目标进程内创建一个远程线程.用这个线程来调用LoadLibraryA或LoadLibraryW(下文统称LoadLibrary)以实现让目标进程载入指定的DLL文件. 使用CreateRemoteThread创建一个远程线程须要传入一个线程过程函数的地址,而且这个函数地址是须要在目标进程中有效的. 因为LoadLibrary是kernel32.dll的导出函数.所以对于执行在同一个系统上的同为32位的进程或同

64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考

最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的遇到了64位进程需要调用32位dll的问题.由于有一些32位dll没有源代码,无法重新编译为64位dll,所以只能想办法解决64位进程调用32位dll问题,这个问题让我很是挠头了几天. 相关资料:微软公司的官方网站针对这个问题描述如下:在64位的windows系统中,一个64位进程不能加载一个32位

dll文件32位64位检测工具以及Windows文件夹SysWow64的坑(很详细,还有自动动手编程探测dll)

阅读目录 dll文件不匹配导致数据库无法启动 究竟是System32还是SysWow64 区分dll文件32位64位的程序让我倍感迷惑 再次判断究竟是System32还是SysWow64——意想不到的坑 Program Files (x86)与Program Files 32位程序真的需要访问System32吗 32位程序与64位程序的区别总结 参考资料 自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program

一个由进程内存布局异常引起的问题

一个由进程内存布局异常引起的问题 前段时间业务反映某类服务器上更新了 bash 之后,ssh 连上去偶发登陆失败,客户端吐出错误信息如下所示:图 - 0 该版本 bash 为部门这边所定制,但实现上并没有改动原有逻辑,只是加入了些监控功能,那么这些错误从哪里来呢? 是 bash 的锅吗 从上面的错误信息可以猜测,异常是 bash 在启动过程中分配内存失败所导致,看起来像是某些情况下该进程错误地进行了大量内存分配,最后导致内存不足,要确认这个事情比较简单,动态内存分配到系统调用这一层上主要就两种方

微软的操作系统中让 32 位支持大于 4GB 的内存。

先给一个参考文献:The RAM reported by the System Properties dialog box and the System Information tool is less than you expect in Windows Vista or in Windows XP Service Pack 2 or later version 先说结论: 1.PAE允许操作系统在32位模式下使用大于4G的物理内存. 2.不管是否使用PAE,对于单个进程而言,32位系统下可见