#include <windows.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "resource.h"
#include<math.h>
#include<iostream.h>
//********************变量定义**************************************
HWND handle1,handle2;
PROCESS_INFORMATION piNote,piCalc,l;
STARTUPINFO siNote,siCalc;
//********************资源窗口定义**************************************
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)
{
HWND hwnd ;
MSG Msg ;
WNDCLASS wndclass ;
wndclass.style = 0;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor( NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH);
wndclass.lpszMenuName = "MENU" ;
wndclass.lpszClassName = "窗口" ;
if( !RegisterClass( &wndclass))
{
MessageBeep(0) ;
return FALSE ;
}
hwnd = CreateWindow("窗口",
"进程操作",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL) ;
ShowWindow( hwnd, nCmdShow) ;
UpdateWindow(hwnd);
while( GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage( &Msg) ;
DispatchMessage( &Msg) ;
}
return Msg.wParam;
}
//********************资源窗口消息处理**************************************
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDCHUANGJIAN1:
handle1=FindWindow(NULL,"未定标题 - 记事本");
if(handle1==NULL){
::CreateProcess(NULL,
"C:\\WINNT\\NOTEPAD.exe",
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,
NULL,
NULL,
&siNote,
&piNote);
}
else {
MessageBox(NULL,
TEXT("记事本进程已经创建!!!"),
TEXT("抱歉!!!"),
MB_OK|MB_ICONINFORMATION);
}
break;
case IDCHEXIAO1:
handle1=FindWindow(NULL,"未定标题 - 记事本");
if(handle1!=NULL){
TerminateProcess(piNote.hProcess,0);
//SendMessage(handle1,WM_DESTROY,0,0);
}
else{
MessageBox(NULL,
TEXT("记事本进程还未创建!!!"),
TEXT("抱歉!!!"),
MB_OK|MB_ICONINFORMATION);
}
break;
case IDCHUANGJIAN2:
handle2=FindWindow(NULL,"计算器");
if(handle2==NULL){
::CreateProcess(NULL,
"C:\\WINNT\\system32\\calc.exe",
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,
NULL,
NULL,
&siCalc,
&piCalc);
}
else {
MessageBox(NULL,
TEXT("计算器进程已经创建!!!"),
TEXT("抱歉!!!"),
MB_OK|MB_ICONINFORMATION);
}
break;
case IDCHEXIAO2:
handle2=FindWindow(NULL,"计算器");
if(handle2!=NULL){
TerminateProcess(piCalc.hProcess,0);
SendMessage(handle2,WM_DESTROY,0,0);
}
else{
MessageBox(NULL,
TEXT("计算器进程还没创建!!!"),
TEXT("抱歉!!!"),
MB_OK|MB_ICONINFORMATION);
}
break;
case IDEXIT:
SendMessage(hwnd,WM_DESTROY,0,0);
TerminateProcess(piNote.hProcess,0);
break;
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}