1 Commits
l2 .. l1
Author SHA1 Message Date
Суслов Роман 52899e12e6 L1 - v1.2 2023-10-22 16:22:21 +03:00
3 changed files with 54 additions and 160 deletions
-6
View File
@@ -1,6 +0,0 @@
<?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>
+54 -154
View File
@@ -1,11 +1,7 @@
#include <stdio.h> #include <stdio.h>
#include <windows.h> #include <windows.h>
#include <locale.h> #include <locale.h>
#include <unistd.h>
// Ëàáîðàòîðíàÿ ðàáîòà ¹ 2 - óñòðîéñòâà ðó÷íîãî ââîäà
// --- Èíôîðìàöèÿ î êëàâèàòóðå
int getLogicalDriveStrings() { int getLogicalDriveStrings() {
printf("- GetLogicalDriveStrings:\n"); printf("- GetLogicalDriveStrings:\n");
char buffer[4096]; // ñàì áóôåð äëÿ ñòðîêè char buffer[4096]; // ñàì áóôåð äëÿ ñòðîêè
@@ -49,8 +45,8 @@ int getVolumeInformation() {
long getFileSize(LPCSTR path) { long getFileSize(LPCSTR path) {
printf("- GetFileSize:\n"); printf("- GetFileSize:\n");
HANDLE hFile; HANDLE hFile;
DWORD fileSize; unsigned long long high;
unsigned long structLargeInt; unsigned long long low;
// Îòêðûòèå ôàéëà // Îòêðûòèå ôàéëà
hFile = CreateFile(path, hFile = CreateFile(path,
GENERIC_READ, GENERIC_READ,
@@ -59,15 +55,20 @@ long getFileSize(LPCSTR path) {
OPEN_EXISTING, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
NULL); NULL);
if (hFile == INVALID_HANDLE_VALUE) {
printf("Íå óäàëîñü îòêðûòü ôàéë\n");
CloseHandle(hFile);
return 1;
}
// Ïîëó÷åíèå ðàçìåðà ôàéëà // Ïîëó÷åíèå ðàçìåðà ôàéëà
structLargeInt = GetFileSize(hFile, NULL); low = GetFileSize(hFile, (LPDWORD) &high);
// Çàêðûòèå ôàéëà // Çàêðûòèå ôàéëà
CloseHandle(hFile); CloseHandle(hFile);
// Âûâîä ðàçìåðà ôàéëà // Âûâîä ðàçìåðà ôàéëà
printf("Ðàçìåð ôàéëà: %lu áàéò\n", structLargeInt); printf("Ðàçìåð ôàéëà: %llu\n", high << 32 | low);
return 0; return 0;
} }
int findNextFile() { int findNextFile() {
@@ -118,6 +119,11 @@ int compareFileTime(LPCSTR path_1, LPCSTR path_2) {
OPEN_EXISTING, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
NULL); NULL);
if (file1 == INVALID_HANDLE_VALUE) {
printf("Íå óäàëîñü îòêðûòü ôàéë 1\n");
CloseHandle(file1);
return 1;
}
// âðåìÿ èçìåíåíèÿ ïåðâîãî ôàéëà // âðåìÿ èçìåíåíèÿ ïåðâîãî ôàéëà
GetFileTime(file1, NULL, NULL, &fileTime1); GetFileTime(file1, NULL, NULL, &fileTime1);
@@ -133,6 +139,11 @@ int compareFileTime(LPCSTR path_1, LPCSTR path_2) {
OPEN_EXISTING, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
NULL); NULL);
if (file2 == INVALID_HANDLE_VALUE) {
printf("Íå óäàëîñü îòêðûòü ôàéë 2\n");
CloseHandle(file2);
return 1;
}
// Ïîëó÷àåì âðåìÿ èçìåíåíèÿ âòîðîãî ôàéëà // Ïîëó÷àåì âðåìÿ èçìåíåíèÿ âòîðîãî ôàéëà
GetFileTime(file2, NULL, NULL, &fileTime2); GetFileTime(file2, NULL, NULL, &fileTime2);
@@ -182,31 +193,36 @@ int setLocalTime() {
return 0; return 0;
} }
void getFileAttributes(LPCSTR path){ int getFileAttributes(LPCSTR path){
DWORD fileAttributes = GetFileAttributes(path); DWORD fileAttributes = GetFileAttributes(path);
if (fileAttributes == INVALID_FILE_ATTRIBUTES)
{
printf("Îøèáêà îòêðûòèÿ ôàéëà.\n");
return 1;
}
if (fileAttributes & FILE_ATTRIBUTE_READONLY) { if (fileAttributes & FILE_ATTRIBUTE_READONLY) {
printf("\n/Read-only"); printf("\n/Read-only");
} }
if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) { if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) {
printf("\n/Hidden"); printf("\n/Hidden");
} }
if (fileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (fileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
printf("\n/Directory"); printf("\n/Directory");
}// è òàê äàëåå äëÿ äðóãèõ àòðèáóòîâ ôàéëà... }// è òàê äàëåå äëÿ äðóãèõ àòðèáóòîâ ôàéëà...
printf("\n"); printf("\n");
} }
int setFileAttributes(LPCSTR path) { int setFileAttributes(LPCSTR path, DWORD dwFileAttributes) {
printf("- SetFileAttributes:\n"); printf("- SetFileAttributes:\n");
// Góòü ê ôàéëó // Góòü ê ôàéëó
// Ñáðàñûâàåì àòðèáóòû ôàéëà // Ñáðàñûâàåì àòðèáóòû ôàéëà
SetFileAttributes(path, (DWORD) NULL); SetFileAttributes(path, (DWORD) 0);
// Òåêóùèå àòðèáóòû ôàéëà // Òåêóùèå àòðèáóòû ôàéëà
printf("\tÒåêóùèå àòðèáóòû ôàéëà ÄÎ çàìåíû: "); printf("\tÒåêóùèå àòðèáóòû ôàéëà ÄÎ çàìåíû: ");
getFileAttributes(path); getFileAttributes(path);
// Óñòàíàâëèâàåì àòðèáóòû ôàéëà // Óñòàíàâëèâàåì àòðèáóòû ôàéëà
DWORD newFileAttributes = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY; DWORD newFileAttributes = dwFileAttributes;
BOOL result = SetFileAttributes( path, (DWORD) newFileAttributes); BOOL result = SetFileAttributes( path, (DWORD) newFileAttributes);
printf("\tÒåêóùèå àòðèáóòû ôàéëà ÏÎÑËÅ çàìåíû: "); printf("\tÒåêóùèå àòðèáóòû ôàéëà ÏÎÑËÅ çàìåíû: ");
@@ -254,147 +270,31 @@ int createFile() {
return 0; 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"); setlocale(LC_ALL, "Rus");
printf("\n----------------------------\n----------------------------\n----------------------------\n");
printf("--------------------------------------------------"); printf("\tÈíôîðìàöèÿ î äèñêàõ:\n");
printf("\n\t\t\t/ Èíôîðìàöèÿ î êëàâèàòóðå:\n"); // getLogicalDriveStrings();// + ïîëó÷åíèå áóêâ äèñêîâ
getKeyboardType(); // + ïîçâîëÿåò ïîëó÷èòü òèï êëàâèàòóðû è êîëè÷åñòâî ôóíêöèîíàëüíûõ êëàâèø // getVolumeInformation();// + ïîëó÷åíèå èíôîðìàöèè î ôàéëîâîé ñèñòåìå âûáðàííîãî ëîãè÷åñêîãî äèñêà
getKeyboardState(); // + ïîçâîëÿåò ïîëó÷èòü òåêóùåå ñîñòîÿíèå âñåõ êëàâèø (êëàâèàòóðû è ìûøè) printf("\n------------------------------------------\n");
printf("\tÈíôîðìàöèÿ î ôàéëàõ è äèðåêòîðèÿõ:\n");
printf("\n--------------------------------------------"); getFileSize("text.txt");// + ïîëó÷àåò ðàçìåð ôàéëà
printf("\n\t\t\t/ Èíôîðìàöèÿ î ìûøè:\n"); getFileSize("texàâïàâït.txt");// + ïîëó÷àåò ðàçìåð ôàéëà
getCursorPos(); // + óêàçûâàåò ïîëîæåíèå êóðñîðà ìûøè // findNextFile();// + ïîèñê ñëåäóþùåãî ôàéëà â ìåñòå ïîèñêà
getCaretBlinkTime(); // + ïîçâîëÿåò ïîëó÷èòü âðåìÿ ìåðöàíèÿ êàðåòêè // getWindowsDirectory();// + ïóòü ê îñíîâíîìó êàòàëîãó âèíäîâñ
getSystemMetrics(); // + ïîçâîëÿåò ïîëó÷èòü êîëè÷åñòâî êíîïîê ìûøè compareFileTime("text.txt", "text2.txt.");// + îïðåäåëåíèå êàêîé èç ôàéëîâ áîëåå íîâûé
printf("\n----------------------------\n");
printf("\n----------------------------------------------"); printf("\tÓïðàâëÿþùèå ôóíêöèè:\n");
printf("\n\t\t\t/ Óïðàâëÿþùèå ôóíêöèè:\n"); // setLocalTime();// + óñòàíîâèòü òåêóùóþ äàòó è âðåìÿ
// showCursor(); // - ïîêàçûâàåò è ñêðûâàåò êóðñîð printf("\tÂâåäèòå íóæíûé àòðèáóò äëÿ óñòàíîâêè ôàéëó: 1 - òîëüêî äëÿ ÷òåíèÿ, 2 - ñêðûòûé, 3 - àðõèâíûé\n");
// swapMouseButton(); // + ïîçâîëÿåò ïîìåíÿòü ôóíêöèè êíîïîê ìåæäó ñîáîé int chislo = 0;
// setCaretBlinkTime(); // +- ïîçâîëÿåò çàäàòü âðåìÿ ìåðöàíèÿ êàðåòêè scanf("%d", &chislo);
// setCursorPos(); // + ïîçâîëÿåò çàäàòü ïîçèöèþ êóðñîðà if (chislo == 1 || chislo == 2 || chislo == 3)
// systemParametersInfo(); // + äëÿ óñòàíîâêè ñêîðîñòè ïåðåìåùåíèÿ êóðñîðà setFileAttributes("text3.txt", chislo);// + óñòàíîâêà ôàéëîâûõ àòðèáóòîâ
printf("\nÄëÿ âûõîäà íàæìèòå Enter\n"); else {
scanf("%c"); printf("Óêàçàí íåâåðíûé íîìåð àòðèáóòà\n");
}
// createFile();// + ñîçäàòü/îòêðûòü ôàéë
// CopyFile("text.txt", "text3.txt", 0);// ñêîïèðîâàòü ôàéë
} }
BIN
View File
Binary file not shown.