View Single Post
Old 27-01-2023, 12:06   #18
HW2021
Senior Member
 
Iscritto dal: Nov 2021
Messaggi: 1030
@Svelgen

Ti sbagli alla grande, se ne capisci qualcosa di programmazione scaricati da internet lo strumento Spy++ almeno che non hai una versione di Visual Studio installata e in questo caso già dovresti averlo nel tuo computer perché fa parte della suite di Visual Studio (comunque sia è gratuito e lo trovi facilmente in internet)

Avvia Spy++ e analizza il menu start di windows 11 e scoprirai che è composto sempre dalle medesime classi di finestre, questo significa che è solo una questione estetica e che in realtà il menu start è sempre il medesimo di quello che era disponibile in Windows XP, Vista, Windows 7, Windows 10 ... e medesime sono le relative WindowProcedure()

In generale la maggior parte credono che ad ogni nuova versione di Windows Microsoft modifica completamente e totalmente il suo codice sorgente e invece non è così, ha sempre perfezionato ciò che già esisteva ma il kernel è sempre il medesimo salvo ottimizzazioni, ciò che invece si trova di nuovo sono i servizi accessori che Windows stesso offre ... L'unica vera rivoluzione ci fu con Windows Vista ( ovviamente presente anche in tutte le successive versioni di Windows) in cui Microsoft fece in modo che la parte del Kernel riguardante l'interfaccia grafica (in breve GUI) venisse processato tonalmente dalla GPU liberando per sempre il Processore da questo fardello che tra l'altro è quello che fino a Windows XP richiedeva maggior risorse CPU

Per esempio nel penultimo aggiornamento mensile non so bene per quale motivo ha ritoccato un punto del codice del kernel precisamente la parte di codice che riguarda l'invocazione delle API SearchWindow() e SearchWindowEX() che ha comportato la possibilità che in certe condizioni Windows si perde l'handle delle finestra relativa all'applicazione; di fatto dopo il penultimo aggiornamento mensile ho notato in effetti che qualche volta mi capita di avviare un'applicazione, di ridurla ad icona e poi riaprendola non viene visualizzata la finestra, per ovviare a questo problema devo aprire il task manager e forzare il termine dell'applicazione così che riavviandola la relativa finestra viene visualizzata questo perché ad ogni avvio di un'applicazione con finestra viene assegnato un unico handle a tale finestra a cui Windows fa riferimento ogni volta che bisogna ridisegnare la finestra stessa (evento Paint nella corrispondente WindowProcedure(), ogni finestra ha una sua WindowsProcedure() ...); insomma volendo usare la terminologia di chi programma in C/C++ l'handle è un puntatore alle locazioni di memoria dove è memorizzata la struttura della finestra relativa all'applicazione, questo cambia ogni volta che si avvia l'applicazione ma mentre l'applicazione è in esecuzione il relativo handle è ovviamente per quanto detto fisso e immutabile

Oggi ho ricevuto l'aggiornamento cumulativo mensile KB5022360 e guarda caso tra le magagne risolte vi è proprio la perdita dell'handle di una finestra associata ad un'applicazione ovvero l'errore conseguente all'invocazione delle API SearchWindow() e SearchWindowEx() che in determinate situazioni ritornano un handle errato. Ho fatto dei test per verificare che il problema è stato effettivamente risolto e sembra che sia stato risolto
HW2021 è offline   Rispondi citando il messaggio o parte di esso
 
1