Раздели на сайта
Избор на редактора:
- Създаване на пряк път на работния плот за съученици
- Ако обувките не пасват на Aliexpress: правилните действия в този случай Продуктът Aliexpress е с правилния размер
- Спор на AliExpress Присъединете се към спора на AliExpress
- 3 разпределени информационни бази
- Мениджър на съдържанието - отговорности, заплата, обучение Недостатъци и предимства на работата като специалист по съдържание
- Как да се предпазите от скрит майнинг във вашия браузър?
- Възстановяване на парола в Ask
- Как да включите камерата на лаптоп
- Защо музиката не се възпроизвежда във VKontakte?
- Как да увеличите размера на диск C за сметка на диск D, без да губите данни
реклама
Нека използваме нашия стар работещ скенер добре. Изработка на камера от стар плосък скенер Как да използваме стар скенер |
Хората най-често изхвърлят неща, които все още могат да бъдат използвани, макар и не по предназначение. Понякога е горчиво да видиш неща, които са напълно функционални и се изхвърлят в кошчето. Един пример за производство е сглобяването на лампа от стар скенер със собствените си ръце. За направата на домашна лампа беше използван стар скенер Mustek 6000p; Windows пъти 95, скенерът изисква достъп в реално време и следователно модерни системиУжасно бавен е, сканирането на страница отнема 4-5 минути. Това е вътре в скенера, добре, с изключение на мотора за издърпване на сканиращия елемент. Осветителят от сканиращата каретка е обикновена флуоресцентна лампа със студен катод (CCFL), подобна на тези, използвани в подсветката на LCD матрици. Борд от каретата. От лявата страна можете да видите високоволтовия инвертор, който се използва за захранване на лампата на скенера. В левия ъгъл е интегрираният стабилизатор 7812, обозначен като Q8, от който е лесно да се разбере от кои писти се захранва инверторът. На входа му при включен скенер има около 14 волта, но лампата не свети, как да го пусна? Няма много пътеки, водещи до секцията на платката с инвертора от конектора, който свързва платката на каретката с основната платка, така че нека приемем, че транзисторът Q5 съдържа превключвател, който стартира лампата. С помощта на пинсети затваряме резистора R3, свързан към основата на транзистора, към + мощност и... нека бъде светлина! След като разберем какво е какво, ще отрежем всички ненужни неща, ще запоим резистор-джъмпер между R3 и захранването ... ... и щифтове за собствения захранващ конектор на принтера. Нека вземем такава чиста инверторна платка, нека я проверим отново. Това, разбира се, не е достатъчно за осветяване на работното място, но можете да направите подсветка в някое чекмедже, подобно на лампата в хладилника. Също толкова възрастна мишка, на същата възраст като скенера, работи добре като донор на тяло. Превключвателят ще бъде рийд ключ с нормално затворени контакти. Сглобени. Жалко, че бутоните не носят никакво функционално натоварване =) Закрепваме лампата и тялото с двустранна лента. На вратата има магнит твърд дискна същата лента. Не особено естетически, но върши работата. Повече от достатъчно за осветяване на малко пространство Любезни хора ми дадоха този доста стар скенер, Mustek 6000p, устройство от времето на Windows 95 и големи бели пластмасови кутии. Като рядкост не е с голяма стойност, но би било жалко да го изхвърлите, без да погледнете вътре). Осветителят от сканиращата каретка е обикновена флуоресцентна лампа със студен катод (CCFL), подобна на тези, използвани в подсветката на LCD матрици. Борд от каретата. От лявата страна виждаме инвертор с високо напрежение; време е да се опитаме да запалим лампата. В левия ъгъл е интегрираният стабилизатор 7812, обозначен като Q8, от който е лесно да се разбере от кои писти се захранва инверторът. На входа му при включен скенер има около 14 волта, но лампата не свети, как да го пусна? Няма много пътеки, водещи до секцията на платката с инвертора от конектора, който свързва платката на каретката с основната платка, така че нека приемем, че транзисторът Q5 съдържа превключвател, който стартира лампата. С помощта на пинсети затваряме резистора R3, свързан към основата на транзистора, към + мощност и... нека бъде светлина! След като разберем какво е какво, ще отрежем всички ненужни неща, ще запоим резистор-джъмпер между R3 и захранването ... ... и щифтове за собствения захранващ конектор на принтера. Нека вземем такава чиста инверторна платка, нека я проверим отново. Това, разбира се, не е достатъчно за осветяване на работното място, но можете да направите подсветка в някое чекмедже, подобно на лампата в хладилника. Също толкова възрастна мишка, на същата възраст като скенера, работи добре като донор на тяло. Превключвателят ще бъде рийд ключ с нормално затворени контакти. Сглобени. Жалко, че бутоните не носят никакво функционално натоварване =) Закрепваме лампата и тялото с двустранна лента. На вратата има магнит от харда на същата лента. Не особено естетически, но върши работата. Повече от достатъчно за осветяване на малко пространство Внимателният читател ще забележи, че на снимката на платката в тялото на мишката вече има джъмпер вместо стабилизатор - вече няма нужда от него, инверторът се захранва от домашен сървър, който стои на същия шкаф. За това как да използвате стар скенер заедно със сървър на Debian за сканиране при натискане на бутон и дори с автоматично сортиране.Защо е необходимо това?Това е подходящо за всеки, който не е доволен от купчините хартия на работното място. Например:
Как да си представя това?Да, много просто. Сложих листчето в скенера, натиснах бутона и зачаках. звуков сигналза края на сканирането и обработката, извади лист хартия, ако е необходимо - GOTO 10.И какво стана с мен?Гладко работеща система, която също позволява групово сканиране и автоматично сортиране в папки, регистриране и други проблеми - това, което напишете в скрипта, ще се случи.Веднъж ми подариха скенер Epson Perfection 1200U. Обикновен скенер, свързан през USB, доста стар, но с добра резолюция. Исках да го свържа към компютъра си - и ето проблема: проектиран е за 110 волта. Добре, по-късно извадих трансформатора и го свързах. Работи, но само под Windows XP - за Windows 7 няма драйвери и не се очакват. На работния ми компютър Windows 7 x64 - и така, като глупак, стартирах виртуалната машина всеки път, когато трябваше да сканирам нещо, а наблизо нямаше друг скенер. *Място за горчиви съжаления за безскрупулни производители* Времето минаваше, работният компютър беше сменен по заповед на небрежна чаша чай, шибан крак. Взето решение за нов компютъринсталирайте Debian, защото е по-познат. И тогава отново дойде моментът, когато беше необходимо да се сканира нещо и то спешно. Свързвам скенера - и работи, въпреки че има някакво напрежение с ICM профилите. Явно някой е бил алчен да ги дари за отворен код или за мен е било достатъчно просто да ги намеря и да ги инсталирам - не си направих труда да го разбера, исках да спя твърде много. Най-важното е, че можете удобно да сканирате всичко. Чакайте, какво ще стане, ако се свържете със сървър без GUI и стартирате scanimage? Хм, работи. клас! И така, на тялото на скенера има бутон. Тя никога не е можела да използва Windows, нула емоции. Тук обаче също. Търсене в Google откри два проекта - scanbuttond и scanbd. Първият е стар, последният комит беше през 2006 г., но веднага беше открит в хранилищата. Реших да оставя втория за по-късно, причината е проста - по време на компилация постоянно изскачаха някои проблеми от различен вид и въпреки че всеки от тях беше решен в няколко реда в конзолата, имаше доста тях, така че се отказах и исках да спя. Ще използвам scanbuttond, но ако е уместно, мисля, че няма проблем да добавите всички скриптове малко под scanbd. Въпросът, разбира се, е доколко е проблем... Но за сега - scanbuttond. Първи стъпки с scanbuttondИнсталирам scanbuttond от хранилищата, стартирам scanbuttond, гледам в /var/log/daemon.log, натискам бутона, sleepbuttond щастливо уведомява, че бутонът е натиснат и след това освободен. Готино!Какво следва? Тогава всичко е просто. Първо редактирайте /etc/default/scanbuttond и разрешете демона да стартира заедно със системата и го стартирайте с командата service scanbuttond start. Какви скриптове ще се наричат? Първият е initscanner.sh.example (преименувайте, граждани, не се стеснявайте, премахнете this.example), той се извиква всеки път, когато е свързан скенер, и основно (доколкото мога да преценя) е интерфейс за свързване различни патерици, а понякога - сигнали и сеч. Вторият скрипт е по-интересен; той се извиква директно при натискане на бутона. Нарича се buttonpressed.sh.example и последната част от името отново е излишна. Този скрипт се извиква всеки път, когато се щракне върху бутона. Това е мястото, където трябва да поставите всички тези различни команди за сканиране и т.н. Е, създадох два скрипта за обработка на кликвания върху бутони. Първият е в BASH. Когато се натисне бутон, scanbuttond предава контрола на този скрипт, като посочва номера на бутона и името на скенера като $1 и $2. Има един скенер, един бутон - не е нужно да обръщам внимание на аргументите (все още искам да спя), но го запомних за по-късно. Първият скрипт - buttonpressed.sh - извиква scanimage с предварително зададени параметри, прехвърля готовото изображение в TIFF в папка в домашната директория, преобразува tiff в jpg и след това извиква втория скрипт. Вторият скрипт на Python избира име за изображението въз основа на заетите имена. Първият скрипт е buttonpressed.sh #!/bin/sh #По-голямата част от скрипта беше грубо откраднат от някого #Въпреки това, няма значение, # името на демона DAEMON=scanbuttond # сигурно създайте временен файл, за да избегнете атаки в условия на състезание и да заспивате TMPFILE=`mktemp / tmp/ $DAEMON.XXXXXX` # файл за заключване LOCKFILE="/tmp/$DAEMON.lock" # дестинация на крайния файл с изображение (променете, за да съответства на вашата настройка) DESTFOLDER="/home/user/Scans/" DESTINATION=$DESTFOLDER "изображение .tiff" # премахване на временен файл при прекъсване на прихващане "rm -f $TMPFILE" 0 1 15 # функция: създаване на заключващ файл с PID на сканиращия бутон mk_lock() ( pidof $DAEMON > $LOCKFILE ) # функция: премахване на временни и заключващи файлове clean_up () ( test -e $LOCKFILE && rm -f $LOCKFILE rm -f $TMPFILE ) # функция: проверете дали съществува заключен файл и отпечатайте съобщение за грешка с помощта на logger chk_lock() ( if [ -e $LOCKFILE ]; тогава # Друга операция по сканиране в ход logger "scanbuttond: опит за стартиране на операция по сканиране, докато друга е в ход" exit 1 fi ) # функция: действителната команда за сканиране (промяна, за да съответства на вашия сън) scan() ( #параметри за сканиране, избрани от мен под моя скенер произволно, за да сканира по-добре черно-бели документи scanimage --format=tiff --resolution 300 --mode Gray --gamma-correction "Печат с висок контраст" > $DESTINATION convert $DESTINATION $DESTFOLDER"image. jpg" logger "Име на файл: " `python /etc/scanbuttond/convert_scan.py` rm $DESTINATION ) chk_lock mk_lock сканиране clean_up Втори скрипт - convert_scan.py import os име на файл = "image.jpg" директория = "/home/user/Scans" os.chdir(директория) опитайте: имена на файлове = освен KeyError: имена на файлове = брояч = 1 име на нов_файл = "scan_000.jpg" докато име на нов_файл в имена на файлове: име на нов_файл = "scan_"+str(counter).zfill(3)+".jpg" counter += 1 print new_filename os.rename(filename, new_filename) За да го използваме, променяме променливата DESTFOLDER в първия скрипт и директорията във втория. Започнах да пускам всичко. Ръчното стартиране на първия скрипт работи с гръм и трясък. Но ако натиснете бутона, няма проблем. Едва докато сънената ми глава веднага разбрах, че проблемът беше в разрешенията, фактът беше, че изходът от скриптовете не се показваше никъде и реших само да стартирам scanbuttond на преден план и да погледна; изход в 5 сутринта. Накратко, проблемът е, че в режим на демон всички скриптове се стартират от санирания потребител, точно както самия демон по принцип. Какви стъпки трябва да се предприемат? Да приемем, че scanbuttond се стартира от потребителя saned, папката за съхраняване на снимки е /home/user/Scans и в допълнение към всичко останало потребителят трябва да има достъп до папката. usermod -aG saned потребител #добавяне на потребител към съществуваща група saned chown -R потребител:saned /home/user/Scans #Присвояване на собственика на папката към санираната група chmod -R 770 /home/user/Scans# Set необходими правакъм папка Резултатът е, че скенерът работи с бутон, всички снимки се поставят в домашната директория, но това, което трябваше да се сканира, никога не беше сканирано. Накратко, както винаги, вместо да реша проблема, написах автоматично решение. Както винаги искам да спя. Но аз искам повече!а именно: >pybssort list default /home/user/Scans/ >pybssort add math Math >pybssort list default /home/user/Scans/ math /home/user/Scans/Math/ >pybssort set math Директорията за сканиране по подразбиране вече е /home/user /Scans/Math/ >pybssort dir /home/user/scans/Math/ >pybssort add phys Physics Директорията за сканиране по подразбиране вече е /home/user/Scans/Physics/ >pybssort set phys Директорията за сканиране по подразбиране вече е /home/user/ Scans/Physics/ >pybssort dir /home/user/Scans/Physics/ >pybssort списък по подразбиране /home/user/Scans/ math /home/user/Scans/Math/ phys /home/user/Scans/Physics/ >pybssort sleep Добре, позволявам ви да спите... Не, чакайте, довършете статията си! >pybssort del math OK >pybssort списък по подразбиране /home/user/Scans/ phys /home/user/Scans/Physics/ Командите list, add, del, set са предназначени за промяна на папката за сканиране. Командата dir - за показване на папка, използвана директно в скриптове. какъв е смисълътМожете да промените папката за сканиране по всяко време с една команда в конзолата. Освен това всеки потребител може да направи това - ако това е нежелателно, просто трябва да промените разрешенията за папката на базата данни. Можете да създавате контексти, да ги преглеждате - всичко това с една команда.
Хм, как да наречем всички тези по подразбиране, физика, математика? Реших да ги нарека контексти, тъй като сканирането на тест по алгебра има смисъл само в папка, наречена Математика, статиите за здравословен сън най-добре заспиват в контекста на папката Сън и т.н. Какво стана накрая? Проста програма на Python. Изводът е следният: всички контексти се съхраняват в базата данни SQLite и програмата ги извлича от там, ако е необходимо. Текущият активен контекст обикновено се съхранява в отделен файл в обикновен текст; според мен беше някак глупаво да се създаде таблица с една колона и да се бърника с нея. Има основен набор от функции за работа с тези контексти, функция за започване на работа от нулата (създава таблица и папки), можете да ограбите крави... най-накрая можете да спите... Вземам функции за работа с базата данни от web.py framework, върху който разработвам малките си проекти. Какво трябва да направите, за да инсталирате? Отбелязвам, че трябва да се стартира като root за първи път, тъй като това е необходимо за създаване на папки в /var/lib за съхраняване на базата данни там. След първото стартиране root не се изисква. Можете да редактирате пътя до папката в началото на скрипта, но гледайте разрешенията - бедните здрави ще плачат горчиви сълзи от невъзможността да получат достъп до вашата папка. Не искаш да го разстройваш, нали? Как може да се свърже със съществуващи скриптове? Да, просто в първия скрипт трябва да вмъкнете „pybssort dir“ вместо твърдо кодираната DESTINATION, а във втория скрипт трябва да подадете същата променлива като аргумент на командния ред. Първи сценарий ... # дестинация на крайния файл с изображение (променете, за да съответства на вашата настройка) DESTFOLDER=`pybssort dir` DESTINATION=$DESTFOLDER"image.tiff" ... # функция: действителната команда за сканиране (променете, за да съответства на вашата настройка) сканиране () ( scanimage --format=tiff --resolution 300 --mode Gray --gamma-correction "Печат с висок контраст" > $DESTINATION convert $DESTINATION $DESTFOLDER"image.jpg" logger "Име на файл: " `python /etc/ scanbuttond/convert_scan.py $DESTFOLDER` rm $DESTINATION ) ... Втори сценарий import os import sys #необходим за получаване на аргумента... директория = sys.argv За да отстраните грешки в собствените си скриптове, съветвам ви да изпълните следната последователност от команди във вашата работна среда: service scanbuttond stop sudo -u saned scanbuttond -f & tail -f /var/log/messages & tail -f /var/log/ daemon.log & Критики и за трите скрипта, изпълнение, красота на кода, отстъпи, правопис, дизайн на тема, лоши практики в кода и логиката, уместност на решението, възможни допълнения, адекватност на автора и други неща са добре дошли. Този BASH скрипт наистина ми допадна след известно време - просто не можеше да се побере при нормална обработка на грешки. Отказах се и пренаписах скрипта на Python. В крайна сметка работи още по-добре. Предимствата са обработка на грешки + нормални регистрационни файлове, аудио сигнали и привидно красив код =) Наличен Readme съдържа информация за инсталиране. При мен всичко работи безупречно... Е, ако нещо не работи, моля да ме уведомите =) Първо, кратко въведение. Един ден дойде време за почистване на работа, разчистване на остатъците от стари кутии от монитори, принтери, кутии и т.н. И докато сортирах тези развалини, два стари страхотни скенера UMAX 1200S и според мен 600S хванаха вниманието ми. След като бързо разглобих първите 1200, извадих всичко повече или по-малко полезно оттам, а именно: закаленият щифт, по който вървеше комплексът на скенера с лампата, микросхемата и самия сензор за сканиране със система от огледала. След като извадих всички вътрешности, реших да разбера какво е ценно там. Не знам технологията от онези години, но сканиращият сензор изглеждаше позлатен както отвън, така и отвътре. Златото не ме съблазни, анализът на скенера продължи. Към лампата беше свързана захранваща верига, от която два проводника излизаха от конектора, което силно ме изкуши да я свържа към някакъв източник DC. За щастие предишната кутия съдържаше няколко захранвания от суичове, монитори и кой знае какво още. След като сортирах целия боклук и изхвърлих излишното, започнах да тествам. Като начало беше избрано захранване от 5 волта и 2 ампера. След като свързах лампата, видях, че светна, но не напълно. Няколко сантиметра в далечната част на лампата бяха тъмни. Време е за 9-волтово захранване с 2,2 ампера. (този по-горе) Знаейки, че скенерът работи от захранване 12V 2A и знаейки горещия характер на лампата, както и факта, че тя не е предназначена за постоянна работа, не съм избрал б.п. повече мощност, особено след като яркостта беше достатъчна за мен. И така, когато се прибрах, намерих приложение на тези лампи - да осветяват пространството под масата. Дълго време се дразнех от факта, че под масата, пълзейки до компютъра, трябваше да взема фенерче и в същото време възникнаха няколко проблема както с батериите за него, така и с това, че едната ръка беше заета и Трябваше да се разсейвам, гледайки къде свети фенерчето. Беше решено да окачите лампата под масата, мястото беше маркирано и инструментите бяха изложени. Оказа се много удобно, че стандартният рефлектор на лампата от скенера е подвижен и има собствен монтаж. Дойде време да създадете кутия за захранващата верига на лампата, за да не виси голо и грозно. За целта взехме бяла плакатна пластмаса с дебелина 6 мм и долна манекенна заготовка от макара с заготовки. Необходимите инструменти бяха: Dremel с режещ диск, кръгла пила, две малки свредла (в моя случай шестограм), нож за хартия със сменяеми остриета, поялник и отвертки. Наличните бяха: конектор за необходимото захранване, двойнозалепваща лента, два малки винта и един дълъг винт с гайка. Не забравяйте да сложите предпазни очила и за предпочитане респиратор, да се захващаме за работа. Ще се върна малко назад, ясно е за какво са очилата, но ще обясня малко целта на респиратора. Факт е, че Dremel се върти до 33 хиляди оборота в минута и прахът от работата с него се оказва доста фин. И за да не вдишвате непознат прах, имате нужда от респиратор След като напълно обърка всичко работно мястои след като направихме две парчета пластмаса идентични, пристъпваме към изрязване на отвор за захранващия конектор с помощта на нож и молив. За да направите това, вземаме същата бяла пластмаса и изрязваме два малки правоъгълника, правим дупки със свредла, първо малки, след това по-големи, но дупките не трябва да са точно в центъра, т.к. тогава крепежните елементи няма да позволят на лампата да се върти; те трябва да бъдат направени с леко изместване надолу. След това го затегнете с винтове и залепете двустранна лента към външната основа на получените монтажни равнини. Вмъкваме конектора на лампата в неговата захранваща верига, а веригата в нашата домашна кутия и бавно я завиваме, но не напълно. След това от страната на гайката залепваме четири малки парчета двустранна лента, така че по-късно да можете бързо и лесно да я премахнете. Също така нямах бутон за превключване, той ще бъде запоен към bp кабела. по-късно. Ако някой не иска да се забърква така (просто трябваше да разбера как Dremel работи с различни материали), той може да намери всяка подходяща кутия и да фиксира диаграмата в нея. Ако искате да имате подсветка във вашия случай, мога да ви посъветвам да се свържете към всяка 12V линия с необходимото съпротивление. Можете също да опитате да използвате лампа без рефлектор (освен това всъщност не е рефлектор, а по-скоро демпфер, тъй като не е рефлектор, а бял и черен). Но за да направите това, трябва да сте изключително внимателни в краищата на лампата, тъй като проводниците, запоени в стъклото, са доста дебели и могат да бъдат счупени или стъклото може да се спука на тези места. Има специални гумирани държачи по ръбовете на лампата; бих препоръчал да използвате някои от вашите собствени крепежни елементи върху тях. Лампата работи около 40 минути с моя б.п. Практически не загряваше, нито рефлектора, нито гумените ленти отстрани. Ако напрежението, подадено към лампата, е по-голямо от 9V, лампата най-вероятно ще прегрее и вероятно ще се повреди. Ако решите да го използвате без рефлектор, въпреки че ще освети всичко наоколо, ще ви свети и в очите, което някак си не ми се стори достатъчно. Също така искам да ви предупредя за трансформатора на захранващата верига на лампата. Не знам какъв ток произвежда и какво представлява, но ако доближите пръста си или друга част от тялото до контактите му, се появява електрическа дъга, която например изгори шарка на моя пръст. Разстоянието до контактите може да бъде до два милиметра. И така, готовият вариант... Любезни хора ми дадоха този доста стар скенер, Mustek 6000p, устройство от времето на Windows 95 и големи бели пластмасови кутии. Като рядкост не е с голяма стойност, но би било жалко да го изхвърлите, без да погледнете вътре). Осветителят от сканиращата каретка е обикновена флуоресцентна лампа със студен катод (CCFL), подобна на тези, използвани в подсветката на LCD матрици. Борд от каретата. От лявата страна виждаме инвертор с високо напрежение; време е да се опитаме да запалим лампата. В левия ъгъл е интегрираният стабилизатор 7812, обозначен като Q8, от който е лесно да се разбере от кои писти се захранва инверторът. На входа му при включен скенер има около 14 волта, но лампата не свети, как да го пусна? Няма много пътеки, водещи до секцията на платката с инвертора от конектора, който свързва платката на каретката с основната платка, така че нека приемем, че транзисторът Q5 съдържа превключвател, който стартира лампата. С помощта на пинсети затваряме резистора R3, свързан към основата на транзистора, към + мощност и... нека бъде светлина! След като разберем какво е какво, ще отрежем всички ненужни неща, ще запоим резистор-джъмпер между R3 и захранването ... ... и щифтове за собствения захранващ конектор на принтера. Нека вземем такава чиста инверторна платка, нека я проверим отново. Това, разбира се, не е достатъчно за осветяване на работното място, но можете да направите подсветка в някое чекмедже, подобно на лампата в хладилника. Също толкова възрастна мишка, на същата възраст като скенера, работи добре като донор на тяло. Превключвателят ще бъде рийд ключ с нормално затворени контакти. Сглобени. Жалко, че бутоните не носят никакво функционално натоварване =) Закрепваме лампата и тялото с двустранна лента. На вратата има магнит от харда на същата лента. Не особено естетически, но върши работата. Повече от достатъчно за осветяване на малко пространство Внимателният читател ще забележи, че на снимката на платката в кутията на мишката вече има джъмпер вместо стабилизатор - вече не е необходим, инверторът се захранва от домашен сървър, който се намира на същия шкаф. |
Прочетете: |
---|
Нов
- Ако обувките не пасват на Aliexpress: правилните действия в този случай Продуктът Aliexpress е с правилния размер
- Спор на AliExpress Присъединете се към спора на AliExpress
- 3 разпределени информационни бази
- Мениджър на съдържанието - отговорности, заплата, обучение Недостатъци и предимства на работата като специалист по съдържание
- Как да се предпазите от скрит майнинг във вашия браузър?
- Възстановяване на парола в Ask
- Как да включите камерата на лаптоп
- Защо музиката не се възпроизвежда във VKontakte?
- Как да увеличите размера на диск C за сметка на диск D, без да губите данни
- Причини за неизправности на дънната платка Ако чипсетът на дънната платка изгори