如何用C++实现对系统进程的控制

2020-11-22 15:42:35 字数 5198 阅读 6912

1楼:匿名用户

加个timer,每秒动作一次,然后getlocaltime判断时间是否与指定时间相等,如果相等就exit

2楼:匿名用户

楼上的真是无可挑剔 不错 很有意义 写的太好了

用c++创建进程

3楼:琦猪闯红灯

#include

#include

#include

dword winapi fun1proc(lpvoid ipparameter);

dword winapi fun2proc(lpvoid ipparameter);

void main()

dword winapi fun1proc(lpvoid ipparameter)

dword winapi fun2proc(lpvoid ipparameter)

4楼:电视与沙发

你这个是线程不是进程!

求**~操作系统 进程控制实验 语言c++ 要求如下 5

5楼:匿名用户

**很简单的,其实就是考查出队入队的队列应用。

创建进程入队、结束进程出队、进程阻塞入队、激活进程出队、调度进程入队出队、时间片到入队出队。

求教高手 如何用c++实现关闭某一进程中的一个句柄

6楼:匿名用户

1、创建成功后,processinfo里面会有这个进程的句柄(handle),可以用来关闭该进程。

需要将processinfo或者processinfo.hprocess保存成成员变量或者其他,用以其他函数使用。

2、processinfo的详细信息:

process_informationprocessinfo;

typedefstruct_process_informationprocess_information,*lpprocess_information;

7楼:董翔宇复活者

先用findwindowex查找到指定的句柄,然后再关闭

8楼:匿名用户

获得句柄名 closehandle()

如何用c++**与进程

9楼:

dev c这个ide&编译器吧,其实就是gcc的一个windows版本而已

具体你还要用windows的sdk,就是加载比如说openprocess函数打开进程,terminateprocess杀死进程之类的,参考visual c的操作文章和msdn

c++如何实现注销进程(除了系统进程都能杀掉)

10楼:匿名用户

terminateprocess(process,0);调用该api函数就可以实现~` 没什么好神秘的~!

11楼:匿名用户

system("taskkill /f /im **.exe")强制结束**.exe进程

c++程序怎么实现鼠标控制

12楼:匿名用户

可以用一系列的api实现:

::getcursorpos,获取当前鼠标的位置::setcursorpos,移动鼠标到某一位置mouse_event,鼠标动作,单击等,如mouse_event(mouseeventf_leftdown|mouseeventf_leftup,0,0,0,0);是在当前位置单击一次

应用的实例如下:

#include

void main()

实现把鼠标移动到x=10,y=10这个位置,然后单击一下。

求**~操作系统 进程管理实验 语言c++ 要求如下:

13楼:匿名用户

四、实验思路和设计

1、进程管理

(1)程序流程图

由学生自行完成。

(2)主要程序**

//pcb结构体

struct pcb *hready=null,*hblock=null,*p; //hready,hblock分别为指向就绪和阻塞队列

typedef struct pcb pcb;

int m,n,r,a,b,c,h=0,i=1,time1inteval; //m为要模拟的进程个数,n为初始化进程个数

//r为可随机产生的进程数(r=m-n)

//a,b,c分别为a,b,c三类资源的总量

//i为进城计数,i=1…n

//h为运行的时间片次数,time1inteval为时间片大小(毫秒)

//建立一个pcb结构体型的空链表

pcb *increat(void)

//从链表起始地址开始输出该链表的内容

void disp(pcb *head)

while(p1!=null); //不断输出进程的信息,直到链尾!

} //if

else

form1->memo1->lines->add(str2);

}//将进程插入到链尾(包括就绪队列和阻塞队列)

pcb *insert(pcb *head,pcb*pcb) //带两个指针形参:队列指针和当前进程pcb

else

p1->next=pi;

pi->next=null;

}return(head);

}//对进程进行初始化,建立就绪队阻塞队列。

void input()

//if

else //如果资源不符合所需要求,则写入阻塞队列队尾

//if

str1+=" 当前进程状态:";

str1+=(p->state);

str1+="\r\n";

str1+="\r\n";

}//for

form1->memo1->lines->add(str1);

}//输出就绪队列和阻塞队列的信息

void outputall()

//运行就绪队列的头进程,运行一个时间片(fcfs),轮转一个时间片

pcb *running(pcb *head)

p1->state='r'; //进程状态由就绪转向运行

(p1->rtime)++; //已运行时间片数增加1

h++;

str4+="~~~~~~~~~~~~~~~~ 当前正在运行的进程id是: ";

str4+=inttostr(p1->id);

str4+=" ~~~~~~~~~~~~~~~~~~\r\n";

str4+="进程id 进程状态 a资源数 b资源数 c资源数 需要时间片 已运行时间片\r\n";

str4+=" ";

str4+=inttostr(p1->id);str4+=" ";

str4+=(p1->state);str4+=" ";

str4+=inttostr(p1->ra);str4+=" ";

str4+=inttostr(p1->rb);str4+=" ";

str4+=inttostr(p1->rc);str4+=" ";

str4+=inttostr(p1->ntime);str4+=" ";

str4+=inttostr(p1->rtime);str4+=" ";

form1->memo1->lines->add(str4);

if(p1->ntime==p1->rtime) //如果已经运行的时间片到达所需次数,该进程结束

else //如果已经运行的时间片未到达所需次数,该进程运行一个时间片后进入就绪队列尾

return(head);

}//检测当前资源数目是否满足阻塞队列里进程的需求

void testblock()

//if(p1==hblock)

else

//else

} //大if

else

//else

form1->memo1->lines->add(str5);

} //whlie

}//检测是否有新的进程产生,随机产生新进程

void testnew()

//if

else //进程不满足要求,进入阻塞队列

//else

}//if (t<=7)

form1->memo1->lines->add(str6);

}//if(r>0)

r--;

}//系统三类资源变化情况的显示

void rescore()

if(a<0)

if(a>=0&&aedit7->text=inttostr(a);}

if(b>b1)

if(b<0)

if(b>=0&&b<=b1)

if(c>c1)

if(c<0)

if(c>=0&&c<=c1)

}void __fastcall tform1::timer1timer(tobject *sender)

//先来先服务(fcfs)调度算法

void runfcfs()

else

}//将结果保存成txt文件

void __fastcall tform1::n8click(tobject *sender)

for(int i=0;imemo1->lines->count;i++)

fclose(fp);}}

//开始模拟按钮单击执行函数

void __fastcall tform1::button1click(tobject *sender)

//清除屏幕按钮单击执行函数

void __fastcall tform1::button2click(tobject *sender)

//运行的主函数

void runmain()

14楼:匿名用户

li hua often plays football