Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба 6 Сп.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
84.99 Кб
Скачать

Міністерство науки і освіти,молоді та спорту України

ДВНЗ “Донецький національний технічний університет”

Кафедра асу

Звіт

З лабораторної роботи № 6

з дисципліни Системне програмування

Варіант № 7

Виконав:

студент гр.КСД-09

Збиковський О.Є.

Перевірили:

Омельченко А.А.

Васяєва Т.О.

Донецьк, 2011

Лабораторная работа №6

Управление процессами в Win32

Цель работы: изучить возможности создания программных комплексов из автономных программ и основные способы обмена данными между процессами в Win32.

Ход работы:

Написать программу, которая позволяет управлять курсором одного приложения клавиатурой другого приложения.

Сервер:

#include <windows.h>

#include <windowsx.h>

#include <commdlg.h>

#include <stdio.h>

#include <string.h>

#include "resource1.h"

#define ID_BUTTON2 5000

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

HINSTANCE hIns;

HWND hDlg = NULL;

DWORD WINAPI Thread(LPVOID);

HWND hwnd;

HWND label;

void OnTimer(HWND,UINT);

BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);

char sec[20]="1";

HWND hmsg;

int i=0;

HANDLE hFile1;

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow)

{

WNDCLASS wc;

MSG msg;

char ClassName[]="First Window";

DWORD ThreadId;

char Title[]="Window";

memset (&wc,0,sizeof(wc));

hIns = hInst;

wc.lpfnWndProc=(WNDPROC)WndProc;

wc.hInstance=hInst;

wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);

wc.hCursor=LoadCursor(NULL,IDC_HAND);

wc.lpszClassName=ClassName;

wc.hbrBackground=GetStockBrush(LTGRAY_BRUSH);

wc.lpszMenuName = "MENU1";

RegisterClass(&wc);

hwnd=CreateWindow(ClassName,Title, WS_OVERLAPPEDWINDOW,150,150,500,500,HWND_DESKTOP,NULL,hInst,NULL);

HWND button2=CreateWindow("button","Выход",WS_VISIBLE|WS_CHILD,300,20,200,25,hwnd,(HMENU)ID_BUTTON2,hInst,NULL);

label=CreateWindow("static","",WS_CHILD | WS_VISIBLE | WS_TABSTOP,600, 20, 230, 20,hwnd, (HMENU)(501),(HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

ShowWindow(hwnd, SW_SHOWMAXIMIZED);

SetTimer(hwnd,1,1000,NULL);

CreateThread(NULL,NULL, Thread,NULL,NULL,&ThreadId);

while(GetMessage(&msg,NULL,0,0))

DispatchMessage(&msg);

return 0;

}

LRESULT CALLBACK WndProc(HWND hwnd,UINT msg, WPARAM wParam, LPARAM lParam)

{

switch(msg){

HANDLE_MSG(hwnd,WM_TIMER,OnTimer);

case WM_COMMAND:

//Диалог

if(wParam==ID_40001){

DialogBox(hIns, MAKEINTRESOURCE(IDD_DIALOG5), hwnd, DlgProc);

break;

}

//Выход

if(wParam==ID_BUTTON2){

PostQuitMessage(0);

}

//Выход

if(wParam==ID_40004)

{

PostQuitMessage(0);

}

//Процесс

if(wParam==ID_40012)

{

STARTUPINFO si;

PROCESS_INFORMATION pi;

//обнуляем память

ZeroMemory( &si, sizeof(si) );

si.cb = sizeof(si);

//обнуляем память

ZeroMemory( &pi, sizeof(pi) );

if( !CreateProcess( NULL, "notepad.exe D:\\Zbikovskyy\\server.txt", NULL, NULL, FALSE,0, NULL, NULL, &si, &pi));

//закрываем процесс и поток

CloseHandle( pi.hProcess );

CloseHandle( pi.hThread );

}

return 0;

case WM_DESTROY:

PostQuitMessage(0);

return 0;

default:

return DefWindowProcW(hwnd,msg,wParam,lParam);

}

}

////Таймер////

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]