L2 - v1.0
This commit is contained in:
parent
b9aa0294f6
commit
8b58ef014d
6
.idea/encodings.xml
generated
Normal file
6
.idea/encodings.xml
generated
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/main.c" charset="windows-1251" />
|
||||
</component>
|
||||
</project>
|
162
main.c
162
main.c
@ -1,7 +1,11 @@
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <locale.h>
|
||||
#include <unistd.h>
|
||||
|
||||
// Лабораторная работа № 2 - устройства ручного ввода
|
||||
|
||||
// --- Информация о клавиатуре
|
||||
int getLogicalDriveStrings() {
|
||||
printf("- GetLogicalDriveStrings:\n");
|
||||
char buffer[4096]; // ñàì áóôåð äëÿ ñòðîêè
|
||||
@ -250,23 +254,147 @@ int createFile() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// --- Информация о клавиатуре
|
||||
void getKeyboardType(){
|
||||
printf("\t- getKeyboardType()\n");
|
||||
BYTE typeValue;
|
||||
typeValue = GetKeyboardType(0);
|
||||
printf("- Информация о клавиатуре:\n");
|
||||
switch (typeValue) {
|
||||
case 1:
|
||||
printf("83-клавишная клавиатура для IBM PC/XT -совместимых компьютеров\n");
|
||||
break;
|
||||
case 2:
|
||||
printf("102-клавишная клавиатура Olivetti\n");
|
||||
break;
|
||||
case 3:
|
||||
printf("IBM PC/AT -совместимая клавиатура (84клавиши)\n");
|
||||
break;
|
||||
case 4:
|
||||
printf("Расширенная IBM-клавиатура (101- или 102 клавиши)\n");
|
||||
break;
|
||||
case 5:
|
||||
printf("Клавиатура Nokia 1050\n");
|
||||
break;
|
||||
case 6:
|
||||
printf("Клавиатура Nokia 9140\n");
|
||||
break;
|
||||
case 7:
|
||||
printf("Японская клавиатура\n");
|
||||
break;
|
||||
default:
|
||||
printf("Видимо клавиатуры не существует\n");
|
||||
break;
|
||||
}
|
||||
printf("Число функциональных клавиш = %d\n", GetKeyboardType(2L));
|
||||
} // позволяет получить тип клавиатуры и количество функциональных клавиш
|
||||
void getKeyboardState(){
|
||||
printf("\n\t- getKeyboardState()\n");
|
||||
BYTE keyState[256] = {0};
|
||||
|
||||
int main() {
|
||||
// Получение состояния всех клавиш
|
||||
GetKeyboardState(keyState);
|
||||
|
||||
// Вывод номеров нажатых клавиш в консоль
|
||||
printf("На момент запуска программы были нажаты клавиши под номерами:\n");
|
||||
for (int i = 0; i < 256; i++) {
|
||||
if (keyState[i] & 0x80) {
|
||||
printf("Клавиша %d\n", i);
|
||||
}
|
||||
}
|
||||
} // позволяет получить текущее состояние всех клавиш (клавиатуры и мыши)
|
||||
// --- Информация о мыши
|
||||
void getCursorPos(){
|
||||
printf("\t- getCursorPos()\n");
|
||||
POINT cp;
|
||||
GetCursorPos(&cp);
|
||||
printf("Текущая позиция курсора: (%ld, %ld)\n", cp.x, cp.y);
|
||||
} // указывает положение курсора мыши
|
||||
void getCaretBlinkTime(){
|
||||
printf("\n\t- getCaretBlinkTime()\n");
|
||||
printf("Время мерцания каретки - %dмс\n", GetCaretBlinkTime());
|
||||
} // позволяет получить время мерцания каретки
|
||||
void getSystemMetrics(){
|
||||
printf("\n\t- getSystemMetrics()\n");
|
||||
printf("Количество кнопок мыши: %d\n", GetSystemMetrics(SM_CMOUSEBUTTONS));
|
||||
} // позволяет получить количество кнопок мыши
|
||||
// --- Управляющие функции
|
||||
void showCursor(){
|
||||
printf("\t- showCursor()\n");
|
||||
printf ("Сейчас курсор исчезнет на 3 сек\n");
|
||||
// CHAR age;
|
||||
// scanf("%c", &age);
|
||||
// sleep(1);
|
||||
ShowCursor(FALSE);
|
||||
// scanf("%c", &age);
|
||||
sleep(3);
|
||||
ShowCursor(TRUE);
|
||||
printf ("Курсор вернулся\n");
|
||||
} // показывает и скрывает курсор
|
||||
void swapMouseButton(){
|
||||
printf("\n\t- swapMouseButton()\n");
|
||||
printf ("Сейчас на 5 секунд основные кнопки мыши поменяются местами\n");
|
||||
SwapMouseButton (1);
|
||||
sleep(5);
|
||||
SwapMouseButton (0);
|
||||
printf ("Кнопки мыши вернулись на свои места\n");
|
||||
} // позволяет поменять функции кнопок между собой
|
||||
void setCaretBlinkTime(){
|
||||
printf("\n\t- setCaretBlinkTime()\n");
|
||||
UINT blinkTime = GetCaretBlinkTime();
|
||||
UINT blinkTime_old = GetCaretBlinkTime();
|
||||
printf ("Сейчас на 5 секунд каретка будет мерцать быстрее\n");
|
||||
SetCaretBlinkTime(blinkTime / 20);
|
||||
sleep(5);
|
||||
SetCaretBlinkTime (blinkTime_old);
|
||||
printf ("Каретка снова мерцает как обычно\n");
|
||||
sleep(5);
|
||||
} // позволяет задать время мерцания каретки
|
||||
void setCursorPos(){
|
||||
printf("\n\t- setCursorPos()\n");
|
||||
printf("Сейчас курсор установится в нулевую позицию\n");
|
||||
INT y = 0, x = 0;
|
||||
sleep(2);
|
||||
SetCursorPos(x,y);
|
||||
printf("Курсор установлен в нулевую позицию\n");
|
||||
} // позволяет задать позицию курсора
|
||||
void systemParametersInfo(){
|
||||
printf("\n\t- systemParametersInfo()\n");
|
||||
PVOID mouseSpeed;
|
||||
PVOID mouseSpeed_new = (PVOID) 1;
|
||||
// Получаем информацию о настройках мыши
|
||||
SystemParametersInfo(SPI_GETMOUSESPEED, 0, &mouseSpeed, 0);
|
||||
// Проверяем результат выполнения функции
|
||||
printf("Текущая скорость мыши: %d\n", mouseSpeed);
|
||||
printf("Сейчас скорость мыши сильно уменьшится на 3 секунды\n");
|
||||
sleep(1);
|
||||
SystemParametersInfo(SPI_SETMOUSESPEED, 0, mouseSpeed_new, 0);
|
||||
sleep(3);
|
||||
SystemParametersInfo(SPI_SETMOUSESPEED, 0, mouseSpeed, 0);
|
||||
printf("Скорость мыши восстановлена\n");
|
||||
} // для установки скорости перемещения курсора
|
||||
|
||||
void main() {
|
||||
setlocale(LC_ALL, "Rus");
|
||||
printf("\n----------------------------\n");
|
||||
printf("\tИнформация о дисках:\n");
|
||||
getLogicalDriveStrings();// + получение букв дисков
|
||||
getVolumeInformation();// + получение информации о файловой системе выбранного логического диска
|
||||
printf("\n------------------------------------------\n");
|
||||
printf("\tИнформация о файлах и директориях:\n");
|
||||
getFileSize("text.txt");// + получает размер файла
|
||||
findNextFile();// + поиск следующего файла в месте поиска
|
||||
getWindowsDirectory();// + путь к основному каталогу виндовс
|
||||
compareFileTime("text.txt", "text2.txt.");// + определение какой из файлов более новый
|
||||
printf("\n----------------------------\n");
|
||||
printf("\tУправляющие функции:\n");
|
||||
setLocalTime();// + установить текущую дату и время
|
||||
setFileAttributes("text3.txt");// + установка файловых атрибутов
|
||||
createFile();// + создать/открыть файл
|
||||
CopyFile("text.txt", "text3.txt", 0);// скопировать файл
|
||||
|
||||
printf("--------------------------------------------------");
|
||||
printf("\n\t\t\t/ Информация о клавиатуре:\n");
|
||||
getKeyboardType(); // + позволяет получить тип клавиатуры и количество функциональных клавиш
|
||||
getKeyboardState(); // + позволяет получить текущее состояние всех клавиш (клавиатуры и мыши)
|
||||
|
||||
printf("\n--------------------------------------------");
|
||||
printf("\n\t\t\t/ Информация о мыши:\n");
|
||||
getCursorPos(); // + указывает положение курсора мыши
|
||||
getCaretBlinkTime(); // + позволяет получить время мерцания каретки
|
||||
getSystemMetrics(); // + позволяет получить количество кнопок мыши
|
||||
|
||||
printf("\n----------------------------------------------");
|
||||
printf("\n\t\t\t/ Управляющие функции:\n");
|
||||
// showCursor(); // - показывает и скрывает курсор
|
||||
// swapMouseButton(); // + позволяет поменять функции кнопок между собой
|
||||
// setCaretBlinkTime(); // +- позволяет задать время мерцания каретки
|
||||
// setCursorPos(); // + позволяет задать позицию курсора
|
||||
// systemParametersInfo(); // + для установки скорости перемещения курсора
|
||||
printf("\nДля выхода нажмите Enter\n");
|
||||
scanf("%c");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user