Ctrl shift brisanje ne radi. Onemogućivanje ctrl-alt-delete, alt-tab, Start i drugih kombinacija

Ovo je besplatan prijevod članka sa stranice tamas.io o programskom onemogućavanju i omogućavanju Windows prečaca pomoću C#. Nedavno sam i sam trebao slične funkcije u svom programu i iznenadio sam se kada sam otkrio da u RuNetu nema ništa o tome, a općenito se o tome vrlo malo govorilo na Internetu. Dakle, ako ste zainteresirani ili potrebni kao što sam ja bio - dobrodošli!

Ovaj sam članak napisao 2007. i još uvijek lebdi internetom i spominje se u raznim raspravama, uključujući StackOverflow i DotNetSpider, pa sam ga odlučio ponovno objaviti. To je već tada bilo relevantno i nije testirano na Windows 7, zbog činjenice da u to vrijeme jednostavno nije fizički postojalo.
Prije nego što nastavite čitati, imajte na umu da vas ovaj članak ne potiče na izradu zlonamjernih aplikacija. Dostavljeni kod možete koristiti u obrazovne svrhe ili za zabavu.

Nakon što sam malo istražio onemogućavanje tipki i prečaca, saznao sam da postoji nekoliko načina za promjenu ponašanja prethodno spomenutih kombinacija tipki.

Ne brinite, nećemo ih ovdje pokriti, ali pokazat ću vam kako s njima raditi.

Koristimo mogućnosti uređivanja registra C# za postavljanje/promjenu pravila grupe za niz tipki CTRL-ALT-DEL. Pogledajmo što možete učiniti bez pisanja ijedne retke koda. Otvorite Start -> Run i upišite gpedit.msc. Idite na: Konfiguracija korisnika > Administrativni predlošci > Sustav > Opcije CTRL+ALT+DELETE. Ovdje možete postaviti akciju koja će se pokrenuti pritiskom na ovu kombinaciju na standardni način. Dvaput kliknite na "Ukloni upravitelja zadataka". Promjena ove postavke mijenja vrijednost u Software\Microsoft\Windows\CurrentVersion\Policies\System i DisableTaskMgr bit će postavljena na 1.

Sada je zadatak postao jasniji.

Važno, nemojte preskočiti ovaj redak:

Korištenje Microsoft.Win32;

Metoda koju sam napisao izgleda ovako:

Public void KillCtrlAltDelete() ( RegistryKey regkey; string keyValueInt = "1"; string subKey = @"Software\Microsoft\Windows\CurrentVersion\Policies\System"; try ( regkey = Registry.CurrentUser.CreateSubKey(subKey); regkey.SetValue ("DisableTaskMgr", keyValueInt); regkey.Close(); ) catch (Exception ex) ( MessageBox.Show(ex.ToString()); ) )

Stoga smo se pobrinuli za promjenu vrijednosti kombinacije CTRL-ALT-DEL. Pogledajmo ostale kombinacije. Možda mislite da je komplicirano, ali jednostavno je poput guljenja krušaka. Kako onemogućiti ALT + F4? Samo 5 redaka koda:

Privatni void Form1_FormClosing(pošiljatelj objekta, FormClosingEventArgs e) ( e.Cancel = true; base.OnClosing(e); )

Fino. O ostalima sam morao dosta čitati i sada će biti teško navesti točno one članke koji su mi pomogli da to shvatim, ali od svih njih 15-ak je sadržavalo barem neke korisne informacije. Dat ću vam metodu koja se zove udica. Isječak koda koristi LowLevelKeyboardProc koji:

LowLevelKeyboardProc procedura je softverski definirana ili bibliotečki definirana procedura poziva funkcije koja se koristi zajedno s funkcijom SetWindowsHookEx. Sustav poziva ovu funkciju svaki put kada se događaj unosa s tipkovnice sprema staviti u red čekanja na ulaznoj niti. Unos s tipkovnice može proći kroz upravljački program ili kroz pozive funkciji keybdevent. Ako se poziv dogodio putem keybdevent poziva, tada je "ubačen". Međutim, WHKEYBOARDLL hook nije umetnut u drugi proces. Umjesto toga, kontekst se prebacuje na drugi proces na kojem je kuka instalirana i pozvana u izvornom obliku. Zatim se kontekst vraća na aplikaciju koja je uzrokovala događaj.

I opet, ne zaboravite:

Korištenje System.Runtime.InteropServices; koristeći System.Security.Principal; koristeći System.Diagnostics;

Evo svega ostalog što bi vam moglo zatrebati:

Javni statički extern int SetWindowsHookEx(int ​​​​idHook, LowLevelKeyboardProcDelegate lpfn, int hMod, int dwThreadId); public static extern int UnhookWindowsHookEx(int ​​​​hHook); javni delegat int LowLevelKeyboardProcDelegate(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); public static extern int CallNextHookEx(int ​​​​hHook, int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); public const int WH_KEYBOARD_LL = 13; /*potreban kod za onemogućavanje startnog izbornika*/ private static extern int FindWindow(string className, string windowText); privatni statički extern int ShowWindow(int hwnd, int naredba); private const int SW_HIDE = 0; private const int SW_SHOW = 1; public struct KBDLLHOOKSTRUCT ( public int vkCode; public int scanCode; public int zastavice; public int vrijeme; public int dwExtraInfo; ) public static int intLLKey; public int LowLevelKeyboardProc(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam) ( bool blnEat = false; switch (wParam) ( slučaj 256: slučaj 257: slučaj 260: slučaj 261: //Alt+Tab, Alt+Esc, Ctrl+Esc , Windows ključ, blnEat = ((lParam.vkCode == 9) && (lParam.flags == 32)) | ((lParam.vkCode == 27) && (lParam.flags == 32)) | ((lParam. vkCode == 27) && (lParam.flags == 0)) | ((lParam.vkCode == 91) && (lParam.flags == 1)) | ((lParam.vkCode == 92) && (lParam.flags == 1)) | ((lParam.vkCode == 73) && (lParam.flags == 0)); break; ) if (blnEat == true) ( ​​​​return 1; ) else ( return CallNextHookEx(0, nCode, wParam, ref lParam); ) ) public void KillStartMenu() ( int hwnd = FindWindow("Shell_TrayWnd", ""); ShowWindow(hwnd, SW_HIDE); ) private void Form1_Load(object sender, EventArgs e) ( intLLKey = SetWindowsHookEx( WH_KEYBOARD_LL, LowLevelKeyboardProc, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()).ToInt32(), 0); )
Očito, možete programski vratiti sve vrijednosti ponovnim omogućavanjem svih kombinacija:
public static void ShowStartMenu() ( int hwnd = FindWindow("Shell_TrayWnd", ""); ShowWindow(hwnd, SW_SHOW); ) public static void EnableCTRLALTDEL() ( try ( string subKey = @"Software\Microsoft\Windows\CurrentVersion\ Policies\System"; RegistryKey rk = Registry.CurrentUser; RegistryKey sk1 = rk.OpenSubKey(subKey); if (sk1 != null) rk.DeleteSubKeyTree(subKey); ) catch (Exception ex) ( MessageBox.Show(ex.ToString) ()); ) ) private void Form1_FormClosing(object sender, FormClosingEventArgs e) ( UnhookWindowsHookEx(intLLKey); )

U svoje osobno ime, dodati ću da u .NET4 kod izgleda ovako:

IntLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()).ToInt32(), 0);

Ne radi. Morate napisati nešto poput:

Var inst = LoadLibrary("user32.dll").ToInt32(); intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, inst, 0);

Pa, na početku AddHooks strukturnog koda, među ostalim uvozima, učinite:

LoadLibrary: public static extern IntPtr LoadLibrary(string lpFileName);

Nadam se da prijevod nije bio loš i da će nekome koristiti.

Unatoč činjenici da su mnogi već prešli na Windows 10, ja i dalje ostajem na 7. I sam sam se neki dan suočio s problemom pokretanja računala kada sam vidio upozorenje s notornom kombinacijom tipki Ctrl+Alt+Delete. Kad se pritisne, sve se ponavlja iznova i iznova.

Nakon što sam to popravio, odlučio sam napisati članak/upute o tome kako se riješiti ove greške, zašto se računalo ne pali, piše Ctrl+Alt+Del.

Razlozi za ovu notornu grešku BOOTMGR

Ako uđete u bit poruke, možete pojasniti da se pogreška javlja zbog kompresije datoteke BOOTMGR.
Zbog toga se Windows ne može pokrenuti, kao što pokazuju poruke koje se pojavljuju.

Nakon pritiska na tipke računalo se restartuje, ali vrlo često kada se uključi računalo ispiše Ctrl+Alt+Del.

Cjelokupna osnova ove pogreške je da je opcija kompresije informacija omogućena na tvrdom disku, što pomaže u uštedi prostora na mediju.

Kako biste bili sigurni da se nikada nećete susresti s takvim problemom, vrijedi provjeriti je li opcija "smanji disk radi uštede prostora" označena.

Ako jest, onda ga treba ukloniti, inače ćete u praksi saznati o kakvom se problemu radi.
Nažalost, ovo je nedostatak Microsoftovih stručnjaka; sustav za pokretanje ne može zaobići kompresiju diska sustava.

Drugi razlog za ovaj problem može biti da je sistemski disk "buggy" zbog grešaka kontrolera ili da postoji oštećenje na njemu. U takvoj situaciji zamjena diska bit će najbolje rješenje.

Kako mogu ukloniti ctrl+alt+del prilikom dizanja Windowsa

Pokušajmo sada shvatiti što učiniti ako kada pokrenete računalo traži da pritisnete Ctrl+Alt+Del?

Programeri nisu osigurali funkciju "komprimiranja" datoteke prema uputama sustava.
Zbog toga se opcija vraćanja datoteke pojavljuje samo ako korisnik ima instalacijski disk koji sadrži izvornu verziju.

Prvo morate umetnuti disk u pogon i pokušati ponovno pokrenuti sustav.

Ako su pokušaji neuspješni, trebali biste otići u BIOS i postaviti CD player kao uređaj za pokretanje.

Nakon nekoliko minuta trebao bi se pojaviti prozor s upitom da odaberete jezik.
Odaberite ruski jezik i kliknite "dalje", nakon što se pojavi "vraćanje sustava", morate kliknuti "nastavi".

Nakon toga bi trebala započeti potraga za OS-om instaliranim na računalu. Morat ćete odabrati sustav.
Pritisnite Windows 7, zatim "dalje", trebao bi se pojaviti prozor s različitim metodama oporavka, odaberite "naredbeni redak".

Nakon što se pojavi crni prozor, upišite u njega navedenim redoslijedom:
C: → pritisnite Enter

bootrec /fixmbr → pritisnite Enter

Ako je potrebna potvrda, ponovno pritisnite tipku Enter.

Sada preostaje samo nabaviti instalacijski disk i ponovno pokrenuti sustav.

Ako je sve učinjeno prema uputama, greška će nestati.

Ali možda će uspjeti ovako, ili bolje rečeno neće uspjeti, samo tada. Ako ste imali podatke na računalu i trebate ih spremiti, postoji samo jedan izlaz: instalirajte sustav bez formatiranja diska na stari. Nakon takve instalacije prvo prikupite potrebne podatke, a zatim ponovno instalirajte, ali ovaj put mudro i formatirajući disk.

pokolj33 25-10-2010 09:59

Pozdrav draga zajednica!
Zapravo, temu je jučer promijenio moj prijatelj. Jedna od pritužbi prijatelja bila je da "tipkovnica nekako nije ispravno konfigurirana", posebno CTRL+ALT+DEL. Navodno je neki njegov prijatelj tu kombinaciju prethodno zamijenio drugom, koju je moj prijatelj prigodno zaboravio.
Međutim, čak ni nakon ponovne instalacije sustava, CTRL+ALT+DEL ne radi sigurno. Recite mi upućeni gdje je tu problem?
p.s. Napravio sam reinstalaciju, naravno, ne zbog ovih gumba. Iznenadilo me da je problem s uključivanjem dispečera ostao u novom sustavu.

Leonid Iljič 25-10-2010 10:10

ovisi o postavkama prijave: ako je lozinka onemogućena, zatim prozor s gumbima za zaključavanje itd. neće se pojaviti.

pokolj33 25-10-2010 10:28

Lozinka je onemogućena. I što, kombinacije gumba su konfigurirane u ovom prozoru?

Leonid Iljič 25-10-2010 10:59

Kombinacije nisu nigdje konfigurirane. ako omogućite lozinku onda će biti ono što želite.

badydoc 25-10-2010 11:58

1. i ako pritisnete CTRL+ALT+DEL na BIOS slici, računalo se ponovno pokreće?
1a - ako ne, onda je problem u tipkovnici
1b - ako da, onda je problem u Windowsima.

peraja-s 25-10-2010 15:38

Ako se ne možete prijaviti u dispečer? onda je očito ostao virus iz starog sustava. Što ga blokira.
Kod mene se isključuje nakon pada Windowsa ili nakon dubokog antivirusnog skeniranja.

Kuš-tengri 25-10-2010 17:09

Jeste li ponovno instalirali ispočetka? S ponovnim formatiranjem sistemske particije? Ili "na vrhu" prethodnog?

Frank59 25-10-2010 19:03

=
CTRL+SHIFT+ESC
Probaj!

pokolj33 25-10-2010 21:20

citat: Izvorno objavio flipper-s:

Ako se ne možete prijaviti u dispečer? onda je očito ostao virus iz starog sustava.


citat: Izvorno objavio Kush-tengri:

Jeste li ponovno instalirali ispočetka? S ponovnim formatiranjem sistemske particije?


Da točno. Međutim, D pogon nije bio formatiran.

peraja-s 25-10-2010 22:40

citat: Pogon D nije formatiran.

Postoje li ondje sistemske mape? System Volume Information - ovako na primjer?
Najvažniji sakupljač virusa i izvor pogrešaka.
Ako ostane, pokušajte ga izbrisati ili preimenovati (sa Life-CD-a). I ponovo instalirajte.

Dobar dan. Napokon sam sjeo da napišem svoj prvi ovogodišnji članak. Nekako sam se osjećala potpuno opušteno u tako dugim novogodišnjim praznicima, čak je jedan radni tjedan već prošao i uspješno smo ga preživjeli. Sada sam također prijavljen za BFCL Cup#7 turnir, i iako je malo vjerojatno da ćemo doći barem do četvrtfinala (nije da je moj tim tako štreberski), treninzi su u tijeku i malo je vremena ostalo za mjesto. Ali prestani se opravdavati, upravo sada pišem i dobro je.

Dakle, bit problema je jednostavna: nekako je virus dospio na vaše računalo, već ste ga uklonili pomoću Dr.Web CureIT ili Kasperskiy LiveCD, ali neke neugodne promjene već su napravljene u sustavu, na primjer, “ili tamo nije čak ni mogućnost otvaranja upravitelja zadataka. I ako sam već pisao o prvom slučaju, sada ću vam reći o drugom. Općenito, nakon što se riješite virusa, uvijek preporučujem da to učinite. Također preporučujem da to učinite prije nego počnete slijediti upute.

Oporavak putem uređivača pravila grupe

Nije prikladno za osnovne verzije Win8 i Win 7.

Ova metoda nije univerzalna, budući da je Microsoft ograničio instalaciju Group Policy Editor-a na osnovne i najjednostavnije home verzije svojih operativnih sustava. Ali ako imate Win8 pro, Win7 Home Premium ili novije izdanje, onda je prikladan za vas. Ipak, to je praktičniji način.


Vraćanje putem uređivača registra

Ova metoda je univerzalna.

To je sve. Nadam se da vam je ovaj članak bio koristan, kliknite jedan od gumba u nastavku da biste o njemu obavijestili svoje prijatelje. Također se pretplatite na ažuriranja stranice unosom svoje e-pošte u polje s desne strane ili pretplatom na grupu na VKontakteu.

Pitanje: kombinacija tipki Alt+tab ne radi u Win10


Dobar dan.

Suština:
1.instalirao ažuriranje za igru ​​(službeni klijent).
2.ponovno pokretanje sustava.
3.igra u prozoru.
4. kombinacija alt+tab ne radi (prebacivanje između prozora, ne samo u igri, već u cijelom sustavu)
5. Također sam otkrio da kombinacija tipki alt+shift ne radi
6. alt+tab - kombinacija ima novu funkciju (kretanje po linijama ili zaglavljima u aktivnom prozoru (ne mijenja ni prozore))

Kako sam pokušao liječiti:
1. promijenio tipkovni prečac za promjenu jezika (ctrl+shift - radi)
2. vratio tipkovni prečac za promjenu jezika. (alt+shift - ne radi)
3. win+space - radi
4. skinuo najnovije ažuriranje za win10 - nije pomoglo
5. vratio sustav na nekoliko dana - vraćanje nije uspjelo zbog neke vrste greške

Pitanje:
Recite mi, kako mogu učiniti da kombinacija tipki alt+shift i alt+tab radi kao prije?

Odgovor: Užasno sam nevješt) ali ispada da imam najveći noob problem) tipka ALT je stvarno pokvarena) ovo je prvi put da ovo vidim)

Dodano nakon 20 sekundi
Hvala svima koji su proveli vrijeme na lameru)

Pitanje: Prečaci na tipkovnici prestali su raditi


Problem je sljedeći dan, prečaci na tipkovnici ctrl+c, ctrl+v itd. ne rade. Također, svi gornji brojevi 1234567890 u kombinaciji sa shiftom ne rade, ne mogu promijeniti jezik s lijevim alt+shiftom, moram ga promijeniti s desnim.
Spojio sam drugu tipkovnicu na računalo i problem je ostao.
kako sve vratiti7
7- u ovom slučaju upitnik

Odgovor: Hvala svima puno, razlog je bio u programu ProgDVB!

Pitanje: kombinacija tipki Win + E prestala je raditi


Pozdrav, od jučer mi ne radi kombinacija Win + E. Zna li netko u čemu je problem? Hvala unaprijed.

Odgovor: Rješavanje nekih uobičajenih problema s tipkovnicom:
Tipkovnica uopće ne radi.
**Windows ne prepoznaje tipkovnicu ili neke tipke.
Neki ključevi se zaglave.
Znakovi na tipkovnici ne odgovaraju znakovima koji se pojavljuju na monitoru.
Tipke SHIFT, CTRL, ALT ili Windows ne rade kako se očekuje.

Dodano nakon 31 minute
I dalje; jesi li pokušao spojiti drugu tipkovnicu? Ako ne, pokušajte (radilo ili ne).

Pitanje: tipkovnički prečac za sve u domeni


Dobar dan ljudi.
Ovo je zadatak koji su postavili: potrebno je da svi korisnici, na svim računalima koja su u domeni, koriste zadanu kombinaciju tipki za pokretanje RDP veze, odnosno korisnik je došao, uključio računalo, unio podatke, otišao na njihovu radnu površinu, pa stisnuo npr. ctrl+alt +q i voila, pokrenula se RDP veza sa serverom, kao da je kliknuo na njegovu prečicu na radnoj površini, ali prečaca ne bi trebalo biti. Pretpostavljam da to treba učiniti putem pravila grupe, ali tamo nisam našao ništa o prečacima na tipkovnici, molim vas za pomoć, ljubazni ljudi) Kontroler domene je prirodno Win2008r2; korisnici na svojim strojevima imaju win7

Odgovor: ili jednostavno uzmite softver za kreiranje prečaca i postavite ga posvuda.
kao alternativna opcija - jednostavan demon na nekom autoitetu (ili skripta za prijavu s beskonačnom petljom ili odgovarajuća usluga), koji će pokrenuti RDP-shku nakon određenih klikova

Pitanje: Nakon amaterskog popravka, tipkovnički prečaci su prestali raditi


Bok svima.
Sve je počelo kada sam dobio neko sranje poput "Vaša kopija Windowsa nije originalna."
Našao sam neki nasumični vodič o tome kako to popraviti, gdje ste morali preuzeti neku vrstu w7lx bootloadera (čini se da nije virus xs). Ukratko, koristio sam ovaj bootloader, nakon čega se računalo restartalo i pojavio se izbornik s izborom što učitati: standardni Windows ili standardni Windows w7lx. Kad pritisnem tipku, računalo se ponovno pokreće, apsolutno bilo koju tipku. Pa, na kraju sam čekao samo 30 sekundi i učitao se Windows s oznakom w7lx.
Čini se da je sve popravljeno, ali sada mi al+tab ne radi, kontrola ne radi ispravno, ponekad se kontekstni izbornik zamrzne i ne ispadne, a ne mogu promijeniti veličinu stupaca u nikakve tablice, a ni datoteke ni ikone se uopće ne pomiču. Odnosno, kliknem na prečac na radnoj površini, on se izdvoji, pokušam ga povući i ne miče se. Provjerio sam čvor za viruse, ali nisam ih našao.
Pokušao vratiti sustav - nije pomogao
Pokrenuo sam se u sigurnom načinu rada - problem je ostao.
Uklonio bih Windowse, ali sad se nema što instalirati, pa moram riješiti problem bez ovoga
Što bi to moglo biti? Nisam mogao guglati adekvatne odgovore na internetu.

Odgovor: AVZ također nije ništa pronašao. Zlonamjerni programi - 0

Dodano nakon 12 minuta
Sve se popravilo jednostavnim čišćenjem tipkovnice. Nisam mislio da sam toliko kancerogen

Pitanje: Windows: dodijelite umetanje simbola prečacu na tipkovnici.


Pravo pitanje je: je li moguće nekako dodijeliti umetanje simbola kombinaciji tipki tako da radi u bilo kojem programu, slično kao što radi Alt+numerički kod?
Jer postoje likovi koji mi često trebaju, a unos preko Alta je dug i težak.

Odgovor: ╝╝+

Pitanje: Kako mogu prevesti tipkovni prečac ctrl+v u, na primjer, ctrl+z?


Zapravo, problem je sljedeći: tipke na mom laptopu su otkazale (razmaknica, I, m i, uh, del, strelica prema dolje, 6 na desnoj strani) i to je izazvalo velike poteškoće. Za sada sam trenutno uhvaćen u razmišljanju kako kombinaciju tipki ctrl+v prevesti u npr. ctrl+z, jer Stvarno mi treba lijepljenje i kopiranje teksta... I također, ako netko zna zašto se to sve dogodilo neka napiše (znam, ovo je druga tema).