Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Постановка задачі. 1. Змінити призначення лівої та правої кнопок мишки за допомогою функції SwapМouseButton.

Читайте также:
  1. I этап. Постановка задачи
  2. III. Постановка темы урока.
  3. IV. Задачі
  4. IV. Задачі
  5. Алгоритм вирішення задачі
  6. Аналіз задачі.
  7. Визначення початкового рішення транспортної задачі.
  8. Вирішити задачі
  9. Вирішити задачі
  10. Вирішити задачі

1. Змінити призначення лівої та правої кнопок мишки за допомогою функції SwapМouseButton.

2. Відновити значення порога мишки та її швидкість переміщення за допомогою функції SystemParametersInfo.

3. Декілька разів змінити на екрані вигляд курсора функцією SetCursor та зробити його невидимим за допомогою функції ShowCursor.

4. Зафіксувати координати переміщення мишки в заданих межах за допомогою функції SystemParametersInfo.

4. Зафіксувати час переміщення мишки в заданих межах за допомогою функції SystemParametersInfo.

5. Змінити час реакції системи на подвійне натискання кнопки за допомогою функції SetDoubleClickTime.

6. Заблокувати функціонування мишки за допомогою функції BlockInput.

7. Отримати інформацію про кількість кнопок мишки за допомогою GetSystemMetrіcs.

8. При керуванні мишкою використати функцію TrackMouseEvent.

9. Використати архів координат про переміщення мишки за допомогою функції GetMouseMovePointsEx.

10. Синтезувати переміщення мишки та натискання на її кнопки за допомогою функції mouse_event.

 

Література: Рисований О.М. Системне програмування [Текст]: підручник для студентів напрямку “Компютерна інженерія” вищих навчальних закладів. Видання друге: виправлено та доповнено – Х.: “Слово”, 2011. – 944 с.

 

Постановка задачі

Написати головну програму, яка за допомогою меню та кнопок керує іншими діями, заданими в варіантах завдання. Надати можливість виведення назв файлів програм та примусового їх завершення. Варіанти завдань такі (узгоджуються з викладачем):

1. Читання файлу з інтернету та його виконання не більше 3 разів та програми калькулятора (calc.exe) не більше 2 разів. Програма з інтернету виконується 15 секунд, а програма calc.exe виконується 30 секунд;

2. Завершити процес explorer.exe, а потім запустити його. Виконати дії з маніпуляцією цієї програми (наприклад, виконати такі дії декілька разів);

3. Передати повідомлення з однієї програми в дві інші;

4. Запуск однієї програми, створеної особисто та програми калькулятора (calc.exe). Особисто створена програми виконується 15 секунд, а програма calc.exe виконується 20 секунд;

5. Запуск двох програм, створених особисто та якої-небудь програми з системної папки, наприклад для Windows XP: С:\Windows\system32 та їх завершення через різні інтервали часу;

6. Запуск однієї програми, створеної особисто не більше 3 разів та програми калькулятора (calc.exe) не більше 4 разів. Особисто створена програми виконується 10 секунд, а програма calc.exe виконується 20 секунд;

7. Запуск однієї програми, створеної особисто не більше 4 разів та програми налагоджувача (OllyDbg.exe) не більше 3 разів. Обмежити час їх виконання.

8*. Примусове завершення системних процесів;

9*. Завершення довільного процесу, а також всіх процесів, які породжені ним і його дочірніми процесами.

 

Приклад 22.2. Створення програми запуску зовнішньої програми.

Лістінг 34.1. Програма запуску зовнішньої програми:

.686; директива визначення типу мікропроцесора

.model flat,stdcall; завдання лінійної моделі пам’яті та угоди ОС Windows

option casemap:none; відмінність малих та великих літер

include \masm32\include\windows.inc; файли структур, констант …

include \masm32\macros\macros.asm

uselib kernel32, user32; макрос з підключеними бібліотеками

.data

buff db 100 dup(?)

; programname db "c:\windows\system32\calc.exe",0

programname db "1-1.exe",0

titl db 'Level 0',0

mask1 db 'My ProcID = %i (decimal)',0

startInfo dd?

processInfo PROCESS_INFORMATION <>; інф. про процес і його первинну нитку

.code

start:

invoke CreateProcess, ADDR programname, 0,0,0,FALSE,\

NORMAL_PRIORITY_CLASS, 0,0, ADDR startInfo, ADDR processInfo

invoke GetCurrentProcessId; витягує псевдодескриптор для поточного процесу

invoke wsprintf, addr buff, addr mask1, eax

invoke MessageBox,NULL,addr buff, addr titl, MB_ICONINFORMATION+180000h

invoke ExitProcess,0

end start; закінчення програми з ім’ям start

 

Результат виконання програми наведено на рис. 34.1.

 

 
 

 

 


Програма з іменем 1-1.asm наведена в лістингу 34.2.

Лістинг 34.2. Програма з іменем 1-1.asm, яку запускають як зовнішню:

.686; директива визначення типу мікропроцесора

.model flat,stdcall; завдання лінійної моделі пам’яті та угоди ОС Windows

option casemap:none; відмінність малих та великих літер

include \masm32\include\windows.inc; файли структур, констант …

include \masm32\macros\macros.asm

uselib kernel32,user32

.data

st1 db "Процесс активный",0; буфер виведення повідомлення

titl db "Просто MessageBox",0

.code; директива визначення даних

start:

invoke MessageBox,0 \; АРІ-функція виведення вікна консолі

addr st1, \; адреса рядка, яка містить текст повідомлення

addr titl, \; адреса рядка, яка містить заголовок повідомлення

MB_ICONINFORMATION+180000h; вигляд вікна

invoke ExitProcess, 0; повернення керування ОС Windows та визволення ресурсів

end start; директива закінчення програми з іменем start

 

В якості прикладу можна створити декілька однакових програм з різними іменами. В кожній програмі в секції даних записані імена файлів, які вона викликає й виконує з цього списку. Таким чином, одна програма викликає наступну.

Наприклад, програма з іменем Proc1 містить рядок

programname db "1-1.exe",0

Програма з іменем Proc2 містить рядок

programname db " Proc1.exe",0

Програма з іменем Proc3 містить рядок

programname db " Proc2.exe",0

В такій послідовності при запуску програми Proc3.ехе буде виконана програма Proc2.ехе, яка викликає програму Proc1.ехе. А програма Proc1.ехе вже викликає програму 1-1.exe.

 

Якщо необхідно запускати програму декілька раз, то треба вставити лічильник.

 

Приклад 22.2. Читання файлу з інтернету та його виконання.

 

Лістинг 34.4. Читання файлу з інтернету та його виконання:

.386

.model flat, stdcall

option casemap:none

include \masm32\include\windows.inc

include \masm32\macros\macros.asm

uselib kernel32, user32, urlmon, shell32

.code

start:

invoke URLDownloadToFile, 0, chr$("http://kaimi.ru/hello_world.exe"), \

chr$("hello_world.exe"), 0, 0

invoke ShellExecute, 0, chr$("open"), chr$("hello_world.exe"), 0, 0, \

SW_SHOWNORMAL

invoke ExitProcess, 0

end start

 

Література: Рисований О.М. Системне програмування [Текст]: підручник для студентів напрямку “Компютерна інженерія” вищих навчальних закладів. Видання друге: виправлено та доповнено – Х.: “Слово”, 2011. – 944 с.

 




Дата добавления: 2014-12-18; просмотров: 91 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав