StudyDocs.ru Logo

Курсовая.docx


Зміст


Вступ Графічний інтерфейс – основна причина неймовірно стрімкого росту популярності персональних комп’ютерів. У сучасному світі, майже кожна людина, не зважаючи на вік та освіту, може керувати електронною обчислювальною машиною.Тож в чому секрет такої ефективності та простоти? Завдяки системі вводу, що найпопулярніша і досі, персональний комп’ютер тісно ввійшов у наші життя. Миша у долоні та курсор на екрані – все, що потрібно для повноцінної роботи чи розваг.Курсор – графічний покажчик, який можна переміщати за допомогою маніпуляторів по екрану, тим самим взаємодіючи з графічним інтерфейсом.Ще зі старих версій Windows минулого століття, піктограму курсору можна змінювати у налаштуваннях. Але, відповідно до теми роботи, я спробую створити програму для заміни курсору самостійно.


Теоретична частина Курсор – це графічний покажчик, що призначений для зручної взаємодії з графічним інтерфейсом. Він представляє собою bitmap піктограму, що зберігається у файлі зі спеціальною структурою. Зображення курсорів має растровий формат. Це означає, що їх розмір фіксований. Для зміни розміру курсору, робиться окремий файл, зазвичай 32х32 чи 48х48 пікселя.Курсори поділяють на 2 типи: статичні (*.cur) та анімаційні (.ani). Останні, мають важливий інтерактивний ефект, що дозволяє користувачу «відчувати» поведінку комп’ютера. Крім того, на слабких чи дуже навантажених машинах, анімаційний курсор може служити індикатором завантаженості системи: якщо анімація програється нерівномірно – комп’ютер перевантажений.defaultcrosshairhelpmovepointerprogresstextwaitn-resizene-resizee-resizese-resizes-resizesw-resizew-resizenw-resizeДля кожного статусу графічного інтерфейсу, існує окрема піктограма курсора. Майже для всіх операційних систем сімейства Windows, їх набір однаковий:


Також, існує курсор для командно-текстового інтерфейсу, що позначає поточне місце для вводу. В класичному варіанті, він виглядає як блимаючий символ «_». Текстовий графічний курсор схожий на командний, хоч і відрізняється за принципом роботи. Тому, у більшості текстових редакторів, особливо з нахилом до програмування, тип текстового курсора перемикається за допомогою кнопки Insert на клавіатурі. Набір стандартних системних курсорів операційних систем сімейства Windows зберігається у директорії C:\Windows\Cursors. Їх каталог з попереднім переглядом знаходиться у налаштуваннях:
Набори курсорів розподілені за тематичними схемами, що дозволяє швидко змінити загальний стиль. Також, через інтерфейс налаштування Windows, можна вибрати власний курсор, змінити розмір стандартного, прибрати чи додати тінь.

Якщо з комп’ютером працює людина, якій важко спостерігати переміщення курсора, у системі передбачено налаштування «відображати слід»:

Не зважаючи на те, що основний маніпулятор для курсора була та залишається миша, у сучасних версіях Windows існує курсор адаптований до сенсорного вводу стилусом чи пальцем, на планшетній поверхності, чи на сенсорному екрані.


















Створення власного курсораОпераційні системи сімейства Windows, використовують декілька основних піктограм для відображення різних станів системи: робота з текстом, переміщення, звичайний режим, очікування та «програма не відповідає».

У цій роботі буде використана лише одна піктограма для курсора «звичайний» такого вигляду:У своїй роботі я використаю безкоштовний курсор з бібліотеки oformi.net. Ви також можете намалювати власний курсор використовуючи різні програми з Інтернету.








Розробка програмиПотрібна проста реалізація простої задачі. Тому, для створення програми, що просто змінює системний курсор, я вибрав мову програмування Visual Studio C#.
Проста для освоєння мова з простою інтеграцією системних бібліотек, .NET Framework та графічним інтерфейсом підходить якнайкраще.
Опис моделі програми
Графічний інтерфейс складається із двох кнопок: для зміни курсора і для повернення стандартного. Перша кнопка визиває системну функцію, що завантажує файл курсора с дику D та ставить його замість попередньої піктограми курсора «звичайний» у екосистему програми. Тобто, ми змінюємо курсор для нашої програми.Друга кнопка робить ту саму процедуру, але на відміну від першої, завантажує файл курсора з стандартної директорії: C:\Windows\Cursors. Мається на увазі, що до запуску програми, ОС була налаштована на стандартний курсор стандартного розміру.Я використав код з
, в якому був написаний клас для виклику і загрузки курсора.
































Код програми
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Reflection;
namespace CursorChanger{ public partial class Form1 : Form { static class NativeMethods { public static Cursor LoadCustomCursor(string path) { IntPtr hCurs = LoadCursorFromFile(path); if (hCurs == IntPtr.Zero) throw new Win32Exception(); var curs = new Cursor(hCurs); // Note: force the cursor to own the handle so it gets released properly var fi = typeof(Cursor).GetField("ownHandle", BindingFlags.NonPublic | BindingFlags.Instance); fi.SetValue(curs, true); return curs; } [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] private static extern IntPtr LoadCursorFromFile(string path); }
public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
this.Cursor = NativeMethods.LoadCustomCursor(@"D:\Arrow.cur"); }
private void button2_Click(object sender, EventArgs e) { this.Cursor = NativeMethods.LoadCustomCursor(@"C:\Windows\Cursors\aero_arrow.cur"); } }

}
РезультатКурсор змінився на стандартний. Програма завантажила файл стандартного курсору з системної директорії.Курсор змінився на вибраний. Програма завантажила файл с диску D і замінила ним стандартний курсор.




ВисновокВикористовуючи стандартні бібліотеки Windows, мені вдалося змінити стандартний курсор на власноруч створений. Програма знаходить файл курсору, що знаходиться у вказаному місці та ставить його замість стандартного до першого перезавантаження ОС.За бажанням, можна розширити можливості програми, навчивши її вибирати файл та тип курсору через інтерфейс, але її мінімалістична версія теж добре виконує своє завдання на операційних системах сімейства Windows.



Використана література:
https://msdn.microsoft.com/ru-ru/library/system.web.ui.webcontrols.button.click(v=vs.110).aspx
Використаний авторський код:
http://www.cyberforum.ru/csharp-beginners/thread235927.html#post1331490