Dezactivare afisare caseta de eroare in Windows

Categorii: Windows

26-Sep-2016 11:57 - 623 vizionari

Este bine sa iti cunosti dusmanul si sa-l transformi in aliat, dar uneori este suficient sa-l ignori.

Aparitia unei erori intr-un program de calculator nu poate fi evitata.

Dar daca programul afiseaza o eroare dupa cateva zile de functionare continua, inseamna ca programul este stabil si eroarea poate fi din cauze externe.

Luna aceasta am reinstalat cateva servere windows si m-am gandit sa public solutia mea de furnizare a solutiilor software robuste.

Nu sunt un geniu informatic, dar sunt autodidact si cine considera solutia utila, sa o foloseasca, pentru ca eu o public pentru mine, sa o gasesc mai usor cand am nevoie.

Serverul de windows porneste cu autologon (cmd: control userpasswords2) pe contul sub care se ruleaza serviciile software: tiparire etichete, programe python xml-rpc, generare fisiere de comunicatie cu SAP (paleti scanati), importare fisiere de comunicatie din SAP (ordine de productie), sesiuni de conectare cu scanere mobile, back-up SQL periodic, supraveghere periodica procese si marimi analogice, generare periodica la cateva minute grafice jpg sau png pentru serverul de web, orice alt program care nu poate rula ca serviciu windows, sau care ruleaza mai bine in consola (fereastra neagra de cmd.exe).

Aproape orice program (chiar si fisiere de comenzi .bat sau .cmd) poate rula ca serviciu windows sub contul de sistem sau de utilizator dedicat, dar eu prefer sa-l rulez interactiv si sa vad pe ecran posibilele erori de functionare care apar.

Problema cu executia interactiva a programelor (cand programul este pornit dupa ce utilizatorul s-a logat in serverul sau workstatia de windows) este ca, in caz de eroare a programului, sistemul windows afiseaza o eroare si continuarea executiei programului parinte (programul care a pornit pe programul care a dat eroare) este suspendata, iar executia lui se continua dupa ce utilizatorul confirma ca a vazut eroarea.

Aceasta este executia interactiva si nu este dorita intr-un server.

Caseta de dialog care anunta eroarea in windows:

python crash windows 7 python crash windows 8 python crash windows 10 python crash windows server 2008 python crash windows server 2012

Pentru mine programul parinte care executa un program ce poate sa dea eroare, este un script .cmd care porneste programul potrivit, apoi, dupa ce programul s-a terminat, scrie undeva in log ca programul s-a terminat neasteptat, asteapta o vreme si reporneste programul:


@echo off
SET LOG=log-program.txt
SET Variabile_Necesare=Valori_Necesare_Program
:start
    porneste_programul.exe
    echo %DATE% - %TIME% Programul s-s oprit neasteptat >> %LOG%
    rem asteapta 10 secunde, apoi reia executia programului
    wait 10
goto start

Cand dezactivez facilitatea windows de raportare a erorii printr-o caseta de dialog, permit programului parinte sa reporneasca imediat programul care a dat eroare.

In imaginile de mai sus este afisat ca programul python.exe a dat eroare, dar este o eroare generata artificial pentru teste.

Programul python folosit de mine pentru teste este:


import ctypes

def crash():
        '''
        crash the Python interpreter...
        '''
        i = ctypes.c_char('a')
        j = ctypes.pointer(i)
        c = 0
        while True:
                j[c] = 'a'
                c += 1
        j


raw_input ("Gata de crash? Apasa ENTER.")
crash()

Metoda de dezactivare a afisarii casetei de eroare pe Windows este foarte complicata si este specifica fiecarei versiune de Windows.

Aceasta demonstreaza idiotenia si inconsecventa creatorilor sistemului Windows si idiotenia utilizatorilor de Windows.

Pentru ca si eu fac parte dintre idiotii care folosesc Windows (am probleme enervante (buguri/design interfata/stabilitate) cu Win 10 pe un laptop si orice alt windows nu are suport si nici drivere pentru laptop) si pentru ca am renuntat sa tot dau zeci de click-uri, sau, mai nou, sa dau cautare ce vreau sa fac si sa ghicesc ce trebuie sa aleg din lista, am creat doua fisiere .reg care merg pe orice Windows 7, Windows 8, Windows 10 (Windows 9 nici nu a existat) si Server Windows  2008, 2012 si, probabil, 2016.

Dezactivare raportare eroare:


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting]
"ConfigureArchive"=dword:00000001
"DisableArchive"=dword:00000000
"Disabled"=dword:00000000
"DisableQueue"=dword:00000000
"DontSendAdditionalData"=dword:00000000
"DontShowUI"=dword:00000001
"ForceQueue"=dword:00000000
"LoggingDisabled"=dword:00000000
"MaxArchiveCount"=dword:000001f4
"MaxQueueCount"=dword:00000032

Reactivare raportare eroare:


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting]
"ConfigureArchive"=dword:00000001
"DisableArchive"=dword:00000000
"Disabled"=dword:00000000
"DisableQueue"=dword:00000000
"DontSendAdditionalData"=dword:00000000
"DontShowUI"=dword:00000000
"ForceQueue"=dword:00000000
"LoggingDisabled"=dword:00000000
"MaxArchiveCount"=dword:000001f4
"MaxQueueCount"=dword:00000032

Sper sa considerati solutia utila.



Ultimele pagini: RSS

Alte adrese de Internet

Categorii

Istoric



Contorizari incepand cu 9 iunie 2014:
Flag Counter

Atentie: Continutul acestui server reprezinta ideile mele si acestea pot fi gresite.