Ctrl shift delete nefunguje. Zakázanie kombinácií ctrl-alt-delete, alt-tab, Štart a iných

Toto je bezplatný preklad článku zo stránky tamas.io o programovom zakázaní a povolení klávesových skratiek systému Windows pomocou jazyka C#. Nedávno som sám potreboval podobné funkcie vo svojom programe a bol som prekvapený, keď som zistil, že v RuNet o tom nič nie je a vo všeobecnosti sa o tom na internete hovorí veľmi málo. Takže, ak máte záujem alebo takú potrebu ako ja - vitajte!

Tento článok som napísal v roku 2007 a stále sa vznáša po webe a spomína sa v rôznych diskusiách, vrátane StackOverflow a DotNetSpider, tak som sa rozhodol zverejniť ho znova. To už vtedy bolo relevantné a nebolo to testované na Windows 7, pretože to v tom čase jednoducho fyzicky neexistovalo.
Než budete pokračovať v čítaní, uvedomte si, že tento článok vás nenabáda na vytváranie škodlivých aplikácií. Poskytnutý kód môžete použiť na vzdelávacie účely alebo na zábavu.

Po malom prieskume o deaktivácii klávesov a skratiek som sa dozvedel, že existuje niekoľko spôsobov, ako zmeniť správanie vyššie uvedených klávesových kombinácií.

Nebojte sa, nebudeme sa im tu venovať, ale ukážem vám, ako s nimi pracovať.

Na nastavenie/zmenu skupinovej politiky pre sekvenciu klávesov CTRL-ALT-DEL používame možnosti úpravy registra C#. Pozrime sa, čo môžete urobiť bez napísania jediného riadku kódu. Otvorte Štart -> Spustiť a zadajte gpedit.msc. Prejdite na: Konfigurácia používateľa > Šablóny pre správu > Systém > Možnosti CTRL+ALT+DELETE. Tu sa dá nastaviť akcia, ktorá sa spustí stlačením tohto komba štandardným spôsobom. Dvakrát kliknite na „Odstrániť správcu úloh“. Zmenou tohto nastavenia sa zmení hodnota v Software\Microsoft\Windows\CurrentVersion\Policies\System a DisableTaskMgr bude nastavená na 1.

Teraz je úloha jasnejšia.

Dôležité, nepreskakujte tento riadok:

Používanie Microsoft.Win32;

Metóda, ktorú som napísal, vyzerá takto:

Public void KillCtrlAltDelete() (reg. kľúč RegistryKey; string keyValueInt = "1"; string subKey = @"Software\Microsoft\Windows\CurrentVersion\Policies\System"; skúste (regkey = Registry.CurrentUser.CreateSubKey(subKey); regkeye.SetV ("DisableTaskMgr", keyValueInt); regkey.Close(); ) catch (Exception ex) ( MessageBox.Show(ex.ToString()); ) )

Postarali sme sa teda o zmenu hodnoty kombinácie CTRL-ALT-DEL. Pozrime sa na zvyšok kombinácií. Možno si myslíte, že je to zložité, ale je to také jednoduché ako lúskanie hrušiek. Ako vypnúť ALT + F4? Len 5 riadkov kódu:

Private void Form1_FormClosing(object sender, FormClosingEventArgs e) ( e.Cancel = true; base.OnClosing(e); )

Dobre. O zvyšku som musel veľa čítať a teraz bude ťažké presne pomenovať tie články, ktoré mi pomohli prísť na to, no zo všetkých bolo asi 15, ktoré obsahovali aspoň nejaké užitočné informácie. Dám vám metódu nazývanú hák. Útržok kódu používa LowLevelKeyboardProc, ktorý:

Procedúra LowLevelKeyboardProc je procedúra volania funkcie definovaná softvérom alebo knižnicou používaná v spojení s funkciou SetWindowsHookEx. Systém volá túto funkciu vždy, keď sa udalosť vstupu klávesnice chystá zaradiť do frontu na vstupnom vlákne. Vstup z klávesnice môže prechádzať cez ovládač alebo prostredníctvom volaní funkcie keybdevent. Ak sa volanie uskutočnilo prostredníctvom volania keybdevent, potom bolo „vložené“. Hák WHKEYBOARDLL sa však nevloží do iného procesu. Namiesto toho sa kontext prepne na iný proces, v ktorom sa hák nainštaluje a zavolá v pôvodnej podobe. Potom sa kontext prepne späť na aplikáciu, ktorá udalosť spôsobila.

A ešte raz, nezabudnite:

Používanie System.Runtime.InteropServices; pomocou System.Security.Principal; pomocou System.Diagnostics;

Tu je všetko ostatné, čo by ste mohli potrebovať:

Verejná statická externá int SetWindowsHookEx(int ​​​​idHook, LowLevelKeyboardProcDelegate lpfn, int hMod, int dwThreadId); public static extern int UnhookWindowsHookEx(int ​​​​hHook); verejný delegát 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; /*kód potrebný na vypnutie ponuky štart*/ private static extern int FindWindow(string className, string windowText); private static extern int ShowWindow(int hwnd, príkaz int); private const int SW_HIDE = 0; private const int SW_SHOW = 1; public struct KBDLLHOOKSTRUCT ( public int vkCode; public int scanCode; príznaky public int; public int time; public int dwExtraInfo; ) public static int intLLKey; public int LowLevelKeyboardProc(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam) ( bool blnEat = false; switch (wParam) ( case 256: case 257: case 260: case 261: //Alt+Tab, Alt+Esc, Ctrl , Windows Key, 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(odosielateľ objektu, EventArgs ey) ( intLLK SetWindowsHookEx( WH_KEYBOARD_LL, LowLevelKeyboardProc, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()).ToInt32(), 0); )
Je zrejmé, že môžete programovo vrátiť všetky hodnoty opätovným povolením všetkých kombinácií:
public static void ShowStartMenu() ( int hwnd = FindWindow("Shell_TrayWnd", ""); ShowWindow(hwnd, SW_SHOW); ) public static void EnableCTRLALTDEL() ( try ( string subKey = @"Software\Microsoft\Windows\CurrentVersion\ Policy\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(odosielateľ objektu, FormClosingEventArgs e) ( UnhookWindowsHookEx(intLLKey); )

Vo svojom mene dodám, že v .NET4 kód vyzerá takto:

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

Nefunguje. Musíte napísať niečo ako:

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

Na začiatku kódu štruktúry AddHooks, okrem iného importu, urobte:

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

Dúfam, že preklad nedopadol príliš zle a bude pre niekoho užitočný.

Napriek tomu, že mnohí už prešli na Windows 10, ja stále zostávam na 7. A nedávno som sám čelil problému so spustením počítača, keď som videl upozornenie s notoricky známou kombináciou kláves Ctrl+Alt+Delete. Po stlačení sa všetko opakovalo znova a znova.

Po oprave som sa rozhodol napísať článok/návod, ako sa tejto chyby zbaviť, prečo sa počítač nezapne, píše Ctrl+Alt+Del.

Dôvody tejto notoricky známej chyby BOOTMGR

Ak sa ponoríte do podstaty správy, môžete objasniť, že chyba sa vyskytuje v dôsledku kompresie súboru BOOTMGR.
Z tohto dôvodu nie je možné spustiť systém Windows, ako to naznačujú zobrazené správy.

Po stlačení kláves sa počítač reštartuje, no veľmi často pri zapnutí počítača vypíše Ctrl+Alt+Del.

Celý základ tejto chyby spočíva v tom, že na pevnom disku je povolená možnosť kompresie informácií, čo pomáha šetriť miesto na médiu.

Aby ste sa uistili, že sa s takýmto problémom nikdy nestretnete, stojí za to skontrolovať, či je začiarknutá možnosť „zmenšiť disk, aby sa ušetrilo miesto“.

Ak je, tak ho treba odstrániť, inak v praxi zistíte, o aký problém ide.
Bohužiaľ, toto je chyba špecialistov Microsoftu, štartovací systém nedokáže obísť kompresiu systémového disku.

Ďalším dôvodom tohto problému môže byť, že systémový disk je „buggy“ v dôsledku chýb ovládača alebo je na ňom poškodený. V takejto situácii bude najlepším riešením výmena disku.

Ako môžem odstrániť ctrl+alt+del pri zavádzaní systému Windows

Teraz sa pokúsme zistiť, čo robiť, ak sa pri spustení počítača zobrazí výzva na stlačenie Ctrl+Alt+Del?

Vývojári neposkytli funkciu „komprimovania“ súboru podľa pokynov systému.
Z tohto dôvodu sa možnosť obnoviť súbor zobrazí iba vtedy, ak má používateľ inštalačný disk s pôvodnou verziou.

Najprv musíte vložiť disk do jednotky a pokúsiť sa reštartovať systém.

Ak sú pokusy neúspešné, mali by ste prejsť do systému BIOS a nastaviť prehrávač diskov CD ako spúšťacie zariadenie.

Po niekoľkých minútach by sa malo objaviť okno s výzvou na výber jazyka.
Vyberte ruský jazyk a kliknite na „Ďalej“; po zobrazení „Obnovenie systému“ musíte kliknúť na „Pokračovať“.

Potom by sa malo začať vyhľadávanie operačného systému nainštalovaného v počítači. Budete musieť vybrať systém.
Kliknite na Windows 7, potom na „Ďalej“, malo by sa zobraziť okno s rôznymi metódami obnovenia, vyberte „príkazový riadok“.

Po zobrazení čierneho okna doň napíšte v určenom poradí:
C: → stlačte Enter

bootrec /fixmbr → stlačte Enter

Ak je potrebné potvrdenie, znova stlačte tlačidlo Enter.

Teraz zostáva len získať inštalačný disk a reštartovať systém.

Ak sa všetko vykoná podľa pokynov, chyba zmizne.

Ale možno to takto dopadne, alebo skôr nevyjde vôbec. Ak máte v počítači dáta a potrebujete ich uložiť, existuje len jedna cesta von: nainštalovať systém bez formátovania disku na starý. Po takejto inštalácii najskôr zozbierajte potrebné údaje a potom znova nainštalujte, tentoraz však múdro a naformátujte disk.

masaker33 25-10-2010 09:59

Zdravím milá komunita!
V skutočnosti bola téma včera preusporiadaná mojím priateľom. Jednou zo sťažností priateľa bolo, že „klávesnica nie je nejako správne nakonfigurovaná“, najmä CTRL + ALT + DEL. Údajne istý jeho kamarát predtým nahradil túto kombináciu inou, na ktorú môj priateľ príhodne zabudol.
Ani po preinštalovaní systému však CTRL+ALT+DEL nefunguje bezpečne. Povedzte mi, znalí ľudia, kde je tu problém?
P.S. Preinštalovanie som urobil, samozrejme, nie kvôli týmto tlačidlám. Prekvapilo ma, že trápenie so zapnutím dispečera zostalo v novom systéme.

Leonid Iľjič 25-10-2010 10:10

závisí od nastavení prihlásenia: ak je heslo vypnuté, potom sa zobrazí okno s tlačidlami „uzamknutie“ atď. sa nezobrazí.

masaker33 25-10-2010 10:28

Heslo je vypnuté. A čo, kombinácie tlačidiel sú nakonfigurované v tomto okne?

Leonid Iľjič 25-10-2010 10:59

Kombinácie nie sú nikde nakonfigurované. ak povolíte heslo, bude to, čo chcete.

badydoc 25-10-2010 11:58

1. a ak stlačíte CTRL+ALT+DEL na obrázku BIOSu, reštartuje sa počítač?
1a - ak nie, problém je v klávesnici
1b - ak áno, problém je vo Windowse.

flipper-s 25-10-2010 15:38

Ak sa nemôžete prihlásiť do dispečera? potom zrejme zostal vírus zo starého systému. Ktorá to blokuje.
U mňa sa vypne po páde Windowsu alebo po hĺbkovej antivírusovej kontrole.

Kush-tengri 25-10-2010 17:09

Preinštalovali ste od začiatku? S preformátovaním systémového oddielu? Alebo „na rovinu“ k predchádzajúcemu?

Frank59 25-10-2010 19:03

=
CTRL+SHIFT+ESC
Skús to!

masaker33 25-10-2010 21:20

citácia: Pôvodne poslal flipper-s:

Ak sa nemôžete prihlásiť do dispečera? potom zrejme zostal vírus zo starého systému.


citácia: Pôvodne poslal Kush-tengri:

Preinštalovali ste od začiatku? S preformátovaním systémového oddielu?


Áno presne. Jednotka D však nebola naformátovaná.

flipper-s 25-10-2010 22:40

citat: Jednotka D nebola naformátovaná.

Sú tam systémové priečinky? System Volume Information – ako napríklad toto?
Najdôležitejší zberateľ vírusov a zdroj chýb.
Ak zostane, skúste ho vymazať alebo premenovať (z Life-CD). A znova nainštalovať.

Dobrý deň. Konečne som si sadla k napísaniu môjho prvého tohtoročného článku. Nejako som sa počas takých dlhých novoročných sviatkov cítila úplne uvoľnene, dokonca už prešiel aj jeden pracovný týždeň a úspešne sme ho prežili. Teraz som tiež prihlásený na turnaj BFCL Cup #7 a hoci je nepravdepodobné, že sa dostaneme aspoň do štvrťfinále (môj tím nie je až tak hlúpy), ale tréningy prebiehajú a na turnaj je už len málo času. stránky. Ale prestaňte sa ospravedlňovať, píšem práve teraz a je to dobré.

Podstata problému je teda jednoduchá: nejakým spôsobom sa do vášho počítača dostal vírus, už ste ho odstránili pomocou Dr.Web CureIT alebo Kasperskiy LiveCD, ale v systéme už boli vykonané nejaké nepríjemné zmeny, napríklad „alebo tam nie je ani možnosť otvoriť správcu úloh. A ak som už písal o prvom prípade, teraz vám poviem o druhom. Vo všeobecnosti po zbavení sa vírusu vždy odporúčam urobiť. A tiež vám odporúčam, aby ste to urobili skôr, ako začnete postupovať podľa pokynov.

Obnova pomocou Editora zásad skupiny

Nevhodné pre základné verzie Win8 a Win 7.

Táto metóda nie je univerzálna, pretože Microsoft obmedzil inštaláciu Editora zásad skupiny na základné a najjednoduchšie domáce verzie svojich operačných systémov. Ak ale máte Win8 pro, Win7 Home Premium alebo vyššiu edíciu, tak je pre vás vhodná. Napriek tomu je to pohodlnejší spôsob.


Obnovenie cez Editor databázy Registry

Táto metóda je univerzálna.

To je všetko. Dúfam, že tento článok bol pre vás užitočný. Kliknutím na jedno z tlačidiel nižšie o ňom povedzte svojim priateľom. Prihláste sa tiež na odber aktualizácií stránok zadaním svojho e-mailu do poľa napravo alebo sa prihláste do skupiny na VKontakte.

Otázka: Kombinácia kláves Alt+tab nefunguje vo Win10


Dobrý deň.

Esencia:
1.nainštaloval aktualizáciu hry (oficiálny klient).
2.reštartoval systém.
3.hra v okne.
4. nefunguje kombinácia alt+tab (prepínanie medzi oknami nielen v hre, ale v celom systéme)
5. Tiež som zistil, že nefunguje kombinácia kláves alt+shift
6. alt+tab - kombinácia má novú funkciu (pohyb po riadkoch alebo hlavičkách v aktívnom okne (neprepína ani okná))

Ako som sa snažil liečiť:
1. zmenil klávesovú skratku na prepnutie jazyka (ctrl+shift - funguje)
2. vrátil klávesovú skratku na prepínanie jazykov. (alt+shift - nefunguje)
3. win+space - funguje
4. stiahol si najnovšiu aktualizáciu pre win10 - nepomohlo
5. vrátil systém na niekoľko dní späť - vrátenie nefungovalo kvôli nejakej chybe

otázka:
Povedzte mi, ako zariadim, aby kombinácia klávesov alt+shift a alt+tab fungovala ako predtým?

odpoveď: Som strašne nešikovný), ale ukázalo sa, že mám najväčší problém s noobom) kláves ALT je naozaj pokazený) toto vidím prvýkrát)

Pridané po 20 sekundách
Ďakujem všetkým, ktorí strávili čas na lameri)

Otázka: Klávesové skratky prestali fungovať


Problém je na druhý deň, nefungujú klávesové skratky ctrl+c, ctrl+v atď. Taktiež nefungujú všetky horné čísla 1234567890 v kombinácii so shiftom, jazyk neviem zmeniť ľavým alt+shift, musím ho zmeniť pravým.
Pripojil som k počítaču ďalšiu klávesnicu a problém zostal.
ako získať všetko späť 7
7- v tomto prípade otáznik

odpoveď: Všetkým veľmi pekne ďakujeme, dôvod bol v programe ProgDVB!

Otázka: Kombinácia klávesov Win + E prestala fungovať


Dobrý deň, od včera prestala fungovať kombinácia Win + E. Neviete niekto v čom je problém? Vopred ďakujem.

odpoveď: Riešenie niektorých bežných problémov s klávesnicou:
Klávesnica vôbec nefunguje.
**Windows nerozpozná klávesnicu alebo niektoré klávesy.
Niektoré klávesy sa zaseknú.
Znaky na klávesnici sa nezhodujú so znakmi, ktoré sa zobrazujú na monitore.
Klávesy SHIFT, CTRL, ALT alebo Windows nefungujú podľa očakávania.

Pridané po 31 minútach
A ďalej; skúšal si pripojiť inú klávesnicu? Ak nie, skúste to (či to funguje alebo nie).

Otázka: Klávesová skratka pre každého v doméne


Dobré popoludnie ľudia.
Toto je problém, na ktorý sa pýtali: je potrebné, aby všetci používatelia na všetkých počítačoch, ktoré sú v doméne, použili danú kombináciu kláves na spustenie pripojenia RDP, to znamená, že používateľ prišiel, zapol počítač, zadal údaje, odišiel na ich plochu a potom stlačil napríklad ctrl+alt +q a voila, RDP pripojenie k serveru sa spustilo, ako keby klikol na jeho skratku na ploche, ale nemali by tam byť žiadne skratky. Mám podozrenie, že to treba urobiť prostredníctvom skupinovej politiky, ale nenašiel som tam nič o klávesových skratkách, prosím, pomôžte mi, milí ľudia) Radič domény je prirodzene Win2008r2; používatelia na ich počítačoch majú win7

odpoveď: alebo jednoducho vezmite softvér na vytváranie klávesových skratiek a nasaďte ho všade.
ako alternatívna možnosť - jednoduchý démon na nejakom autoite (alebo prihlasovací skript s nekonečnou slučkou alebo zodpovedajúca služba), ktorý po určitých kliknutiach spustí RDP-shka

Otázka: Po amatérskej oprave prestali fungovať klávesové skratky


Ahojte všetci.
Všetko to začalo, keď som dostal nejaké kecy typu „Vaša kópia systému Windows nie je originálna“.
Našiel som nejaký náhodný návod, ako to opraviť, kde ste si museli stiahnuť nejaký bootloader w7lx (nezdá sa, že by to bol vírus xs). Stručne povedané, použil som tento bootloader, po ktorom sa počítač reštartoval a vyskočila ponuka s výberom toho, čo sa má načítať: štandardný Windows alebo štandardný Windows w7lx. Keď stlačím kláves, počítač sa reštartuje, úplne ľubovoľný kláves. Nakoniec som počkal 30 sekúnd a načítalo sa Windows s označením w7lx.
Zdá sa, že všetko je opravené, ale teraz mi nefunguje al+tab, nefunguje správne ovládanie, niekedy kontextové menu zamrzne a nevypadne a nemôžem zmeniť veľkosť stĺpcov v žiadne tabuľky a ani súbory ani ikony sa vôbec nepohybujú. To znamená, že kliknem na odkaz na ploche, vynikne, pokúsim sa ho potiahnuť a ani sa nepohne. Skontroloval som uzol na vírusy, ale žiadne som nenašiel.
Pokúsil sa obnoviť systém - nepomohlo
Zaviedol som do núdzového režimu - problém zostal.
Odstránil by som Windows, ale odteraz nie je čo nainštalovať, takže musím problém vyriešiť bez tohto
čo by to mohlo byť? Na internete sa mi nepodarilo nájsť adekvátne odpovede.

odpoveď: AVZ tiež nič nenašlo. Škodlivé programy - 0

Pridané po 12 minútach
Všetko sa napravilo jednoduchým vyčistením klávesnice. Nemyslel som si, že som taký rakovinový

Otázka: Windows: priraďte vkladanie symbolov klávesovej skratke.


Skutočná otázka znie: je možné nejako priradiť vkladanie symbolov ku kombinácii kláves tak, aby to fungovalo v akomkoľvek programe, podobne ako funguje Alt + číselný kód?
Pretože tam sú znaky, ktoré často potrebujem a zadávať ich cez Alt je dlhé a náročné.

odpoveď: ╝╝+

Otázka: Ako môžem preložiť klávesovú skratku ctrl+v napríklad na ctrl+z?


V skutočnosti je problém tento: klávesy na mojom notebooku zlyhali (medzerník, I, m, a, uh, del, šípka nadol, 6 na pravej strane) a to spôsobilo veľké problémy. Momentálne ma chytá myšlienka, ako preložiť kombináciu klávesov ctrl+v napríklad na ctrl+z, pretože Naozaj potrebujem vložiť a skopírovať text... A tiež, ak niekto vie, prečo sa to všetko stalo, prosím napíšte (viem, toto je iná téma).