CE创建进程和线程
创建进程:
HWND hWnd = NULL;
PROCESS_INFORMATION pi = {};
if(NULL==hWnd)
{
hWnd=FindWindow(NULL,_T("关闭电源")); //查找窗口进程
}
if(hWnd == INVALID_HANDLE_VALUE || hWnd == NULL)
{ //创建进程,成功返回非0值,失败返回FALSE
if (CreateProcess(_T("\\Windows\\power_off.exe"), //可执行文件的路径和名字 NULL, //命令行参数 NULL, //不支持设为NULL NULL, //不支持设为NULL FALSE, //不支持设为FALSE 0, //控制进程创建的附加参数 NULL, //不支持设为NULL NULL, //不支持设为NULL NULL, //不支持设为NULL &pi)) //返回的进程和相关信息
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
else
{ RETAILMSG(, (TEXT("[PWR]cannot precess power_off.exe \r\n")));
}
}
CloseHandle(hWnd); //关闭进程
PROCESS_INFORMATION结构体:
typedef struct_PROCESS_INFORMATION{
HANDLE hProcess; //返回新进程的句柄
HANDLE hThread; //返回主线程的句柄
DWORD dwProcessId; //返回一个全局进程标识符。该标识符用于标识一个进程。从进程被创建到终止,该值始终有效。
DWORD dwThreadId; //返回一个全局线程标识符。该标识符用于标识一个线程。从线程被创建到终止,该值始终有效。
}PROCESS_INFORMATION;
调用ExitThread()函数使得主线程退出从而终止进程。
创建线程等待一个事件:
HANDLE m_TestEvent = CreateEvent(NULL,FALSE,FALSE,TEXT("TestEvent"));
DWORD Test_Thread()
{
DWORD dwResult;
)
{
dwResult = WaitForSingleObject(m_TestEvent, ); //等待m_TestEvent事件,300ms则超时进入下一次等待
if(dwResult == WAIT_TIMEOUT)
{
//m_TestEvent发生时触发的操作...
}
}
;
}
HANDLE TestThread = CreateThread( NULL, //不支持,设为NULL
, //线程栈大小,设为默认
(LPTHREAD_START_ROUTINE)Test_Thread,//指向线程的执行函数指针
NULL, //为线程传递一个应用程序的自定义的值
, //控制线程创建的附加参数
NULL //返回新创建线程的ID
);
调用ExitThread()或EerminateThread()函数都可使线程结束执行。
WinCE的优先级:

CE创建进程和线程的更多相关文章
- Java 多线程详解(二)------如何创建进程和线程
Java 多线程详解(一)------概念的引入:http://www.cnblogs.com/ysocean/p/6882988.html 在上一篇博客中,我们已经介绍了并发和并行的区别,以及进程和 ...
- Python创建进程、线程的两种方式
代码创建进程和线程的两种方式 """ 定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个 另一个自然也就会了. "" ...
- Android虚拟机器学习总结Dalvik虚拟机创建进程和线程分析
Dalvik调用一个成员函数时,虚拟机,假设发现,该成员函数是一个JNI办法,然后,它会直接跳转到其地址来运行.也就是说.JNI方法是直接在本地操作系统上运行的.而不是由Dalvik虚拟机解释器运行. ...
- Python基础进程和线程
一 背景知识 进程的概念起源于操作系统,是操作系统最核心的概念. 进程是对正在运行程序的一个抽象,操作系统的其他所有内容都是围绕进程的概念展开的.所以想要真正了解进程,必须事先了解操作系统,egon介 ...
- Python学习之GIL&进程池/线程池
8.6 GIL锁** Global interpreter Lock 全局解释器锁 实际就是一把解释器级的互斥锁 In CPython, the global interpreter lock, or ...
- java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器
多线程并发就像是内功,框架都像是外功,内功不足,外功也难得精要. 1.进程和线程的区别 一个程序至少有一个进程,一个进程至少有一个线程. 用工厂来比喻就是,一个工厂可以生产不同种类的产品,操作系统就是 ...
- Linux 进程与线程一(创建-关闭线程)
进程是一个实体.每一个进程都有他自己的内存地址段(heap,stack等等) 进程是执行中的程序. 程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体. 进程是操作系统中最基 ...
- Dalvik虚拟机进程和线程的创建过程分析
从前面Dalvik虚拟机的运行过程分析一文可以知道,Dalvik虚拟机除了可以执行Java代码之外,还可以执行Native代码,也就是C/C++函数. 这些C/C++函数在执行的过程中,又可以通过本地 ...
- python中socket、进程、线程、协程、池的创建方式和应用场景
进程 场景 利用多核.高计算型的程序.启动数量有限 进程是计算机中最小的资源分配单位 进程和线程是包含关系 每个进程中都至少有一条线程 可以利用多核,数据隔离 创建 销毁 切换 时间开销都比较大 随着 ...
随机推荐
- c语言问卷
1.你对自己的未来有什么规划?做了哪些准备? 答:关于未来我想从事设计网页.做小游戏或者app的工作,因为是金融服务外包方向,也许也会进入银行或者证券公司管理银行系统.让英语更近一层,可进入外企工作. ...
- kmod编译找不到函数kmod_log
编译报错: /usr/bin/ld: Warning: gc-sections option ignored libkmod/.libs/libkmod-util.a(libkmod-util.o): ...
- 惯性导航之MEMS加速度计原理
一 加速度计原理 1.1 加速度计由MEMS传感器与信号处理芯片组成. 1.2 MEMS加速度计工作原理 由上电容.中电容板(可移动).下电容板等组成:当加速度达到一定值后,中电容板会移动,与上.下电 ...
- testlink安装
今天安装了一下testlink,完全按照高峻博客里的做法,最后安装成功了 遇到的问题: 问题表现: 新安装TestLink,登录Testlink后,新建一个项目后,会出现如下提示: There are ...
- 生成模型(Generative)和判别模型(Discriminative)
生成模型(Generative)和判别模型(Discriminative) 引言 最近看文章<A survey of appearance models in visual object ...
- sql case when then else end
我们都知道SQL中适用case when then来转化数据库中的信息 比如 select (case sex when 0 then '男' else '女' end) AS sex from st ...
- EL和JSTL专题
EL简介 EL全名为Expression Language,它原本是JSTL 1.0为方便存取数据所自定义的语言.当时只能在JSTL标签中使用,如下: <c:out value="${ ...
- web前端教程之javascript创建对象的方法
今天给大家讲讲javascript基础教程中的javascript面向对象的技术,这一次我们深入的学习一下JavaScrip基于t面向对象之创建对象,关于面向对象的一些术语这里就不给大家介绍了,不了解 ...
- 《C++primer》v5 第5章 语句 读书笔记 习题答案
5.1 空语句只有一个";".如果什么也不想做可以使用空语句. 5.2 用花括号{}括起来的叫块,也叫复合语句.有多条语句作用在同一个作用域时,需要用花括号括起来. 5.3 降低了 ...
- iOS交互WebService(cxf框架)
公司后台java用的cxf框架,说是iOS.Android.web客户端都可以通用,但是我还是第一次遇到,所以做的时候遇到了不小的坑.下面总结下我开发中遇到的问题以及解决方案: 首先,后台提供了一份接 ...