Visualizzazione post con etichetta windows. Mostra tutti i post
Visualizzazione post con etichetta windows. Mostra tutti i post

giovedì, dicembre 28, 2017

Disabilitazione degli shortcuts di windows 10

Windows 10 ha esteso la quantita' di scorciatoie da tastiera rispetto alle precedenti versioni di windows. Può capitare che delle combinazioni di tasti che l'utente è abituato ad usare, o che alcuni programmi installati dall'utente utilizzano, vengano bloccate da quelle preimpostate da windows.
Personalmente trovo anche fastidioso, e un po' invadente, il fatto che tali impostazioni non siano opzionali, per quanto abilitate di default, e che per disabilitarle, occorra cercare e fare prove, nonché mettere le mani in impostazioni di sistema o registri di sistema, dove gli utenti meno esperti non sanno andare o dove potrebbero fare danni.

Tra l'altro, mi e' capitato piu' volte di dover rifare la disabilitazione di tali scorciatoie, perche' negli aggiornamenti e fix di windows (nonché ovviamente le reinstallazioni seguite a problemi col PC), tali scorciatoie vengono ripristinate come da originale.

Quindi la soluzione di creare un file "reg" che faccia in automatico tutte le necessarie disabilitazioni, per me e' di solito l'unica strada da seguire per un risultato duraturo.

Nel mio caso ho dovuto disabilitare le combinazioni WIN-S che richiama Cortana, e WIN-A che richiama il Centro Notifiche.

Basta quindi creare e salvare un file di testo (ad esempio "disabilitare.reg") col contenuto seguente e lanciarlo:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"DisabledHotkeys"="SA"

Qui come detto disabilito due scorciatoie, ma se ne può ovviamente disabilitare solo una o piuù di due secondo esigenze.

venerdì, maggio 30, 2014

Modalita' bozza (draft) in Word 2010

In Word 2003 visualizzavo per la maggior parte del tempo i documenti in modo "Normale", che evita di farmi vedere la formattazione del documento su carta, dato che i documenti non li stampo quasi mai. Su Word 2003, bastava salvare il documento con la vista "Normale" e alla riapertura ripresentava la stessa vista. Su Word 2010, la modalita' equivalente e' la bozza (draft). Solo che alla riapertura Word visualizzail documento in modalita' stampa, ovvero formattato a fogli. La ragione e' che Microsoft ha introdotto una nuova impostazione che va modificata. Andate quindi sul menu "File", scegliete "Opzioni", cliccate sulla sinistra su "Avanzate", sulla destra scrollate fino al menu "Generali", e poi abilitate il checkbox "permettere l'apertura di un documento in modo bozza" (sulla versione inglese: File -> Options -> Advanced -> General -> Allow opening a document in Draft view).

Ora i documenti salvati in modalita' bozza verranno riaperti nella stessa modalita'.

Potete trovare queste indicazioni in inglese cercando "how to set draft view as default in word 2010".

mercoledì, agosto 06, 2008

Office Visio: riquadro della guida in linea per i modelli

Puo' darsi che sia io che non guardo alcune applicazioni, come Office Visio (ma direi Microsoft Office in generale), con l'ottica corretta. Fatto sta che ogni tanto mi trovo con delle opzioni da cambiare e non riesco a trovare nell'help in linea come fare. Anche seguendo la logica e' difficile capire cosa fare. Il caso di oggi e' il riquadro della "Guida in linea per i modelli". Al primo utilizzo di Visio su questo computer, il programma mi ha chiesto se volevo vedere i modelli disponibili ogni volta che diventavano disponibili. Non sapendo di cosa si trattasse e immaginando che davvero me li facesse vedere solo quando disponibili, ho dato l'OK. Quindi si apre il riquadro sulla destra (quell'area dove c'e' anche il riquadro attivita' che io tengo sempre disabilitato) con la guida ai modelli. Ma non c'e' niente dentro. Quindi non mi interessa, almeno per ora. Bene, ma come facciamo per disabilitare quel riquadro adesso? Boh. Cercare nell'help e' difficile, specie quando come in questo caso, non si sa cosa chiedere di preciso. Devo averci perso un'ora, cercando in varie forme informazioni sul riquadro che riporta i modelli: nell'help locale, nell'help in linea, sul web sia in inglese che in italiano, sui gruppi di google in inglese e italiano. Troppa roba e fuori tema. Ho cercato nelle impostazioni delle barre, scontrandomi anche con la barra delle revisioni che anche se la disabiliti la prossima volta che apri te la ritrovi fra i piedi, ho provato con le reimpostazioni alle condizioni iniziali, ma non e' cambiato nulla.

(clicka l'immagine per ingrandire)

Poi in un menu che doveva servire a fare piu' o meno la cosa opposta a quella che volevo fare io, spiegavano dove andare per abilitare le visualizzazioni di alcuni contenuti in linea. Quindi ho seguito le istruzioni. Dicono di andare sul menu "in linea": non so se sono i traduttori che fanno casino o se siamo noi utenti che dobbiamo allargare le nostre visioni, ma in questo caso la guida in linea non era quella "on line", ma quella locale sempre a disposizione (forse "in linea" qui significa solo "sempre disponibile"). Nel riquadro attivita' comunque c'e' questa guida in linea e cliccando "Impostazioni contenuto in linea" (l'ultima voce in basso nella figura) si arriva a un riquadro dove c'e' anche un "ceck box" per l'abilitazione dellafunzionalita' che mi interessava, ovvero "Mostra automaticamente Guida in linea per i modelli se disponibile". Tolto il check, il riquadro e' finalmente sparito.

venerdì, maggio 30, 2008

Socket error: “The I/O operation has been aborted because of either a thread exit or an application request”


In aprile 2008 mi sono ritrovato a scrivere una piccola applicazione multithreaded (in C++), che utilizza i socket (TCP/IP). Il problema in oggetto mi e’ accaduto nel momento in cui l’applicazione dopo aver accettato una richiesta di connessione, e attivato un nuovo thread (quello che nei dettagli sotto chiamo THREAD2) che passa a un altro thread gia’ attivo (piu’ sotto chiamato THREAD1) l’handle del nuovo socket, attiva una ricezione non bloccante (overlapped) e poi termina. Non mi era mai capitato un caso del genere ma non ho saputo interpretare immediatamente il messaggio di errore e capire quale fosse la causa. Per di piu’ sul web ho trovato solo il solito pattume che non mi e’ stato affatto utile per capire il problema (e’ questa la ragione principale per cui sto scrivendo). La causa, come apparra’ forse evidente leggendo, e’ che la ricezione appena attivata, viene interrotta dall’uscita del thread. Gia’, ma il mio problema era: cosa c’entra il thread col canale? Il canale infatti continuava a restare attivo e veniva gestito nell’altro thread e funzionava correttamente in quanto scambiava messaggi senza problemi. In certe situazioni pero’ andava in errore. Le situazioni in cui andava in errore erano quelle in cui il thread terminava prima che il chiamante avesse fatto in tempo a mandare il primo messaggio, cioe’ facendo riferimento ala figura, prima che A (nel ruolo di client chiamante) potesse mandare a M un messaggio e quindi far “terminare” la ricezione appena attivata. Insomma io non sono uno che riesce ad arrivare a livello del kernel di windows nelle analisi, ma si deduce che la ragione e’ che una ricezione non bloccante e il processo che l’ha generata, sono tra loro legati a livello di sistema operativo, e se il processo termina la ricezione va in errore. Quindi per risolvere ho semplicemente bloccato l'uscita del thread condizionandola al completamento della prima ricezione. Ovviamente poi l'evento su cui e' rimasto in attesa non viene resettato ne' automaticamente ne' manualmente in modo che poi la segnalazione che qualcosa va ricevuto dal canale resti attiva e al momento opportuno verra' gestita.


Se vi interessa qualche dettaglio in piu’ sul contesto in cui mi e’ capitato il problema lo riporto qui di seguito. Questa parte non aggiunge pero’ nulla per la comprensione del problema sopra descritto, quindi la potete tranquillamente saltare, se non vi interessa.

L’applicazione che ho scritto e’ un po’ particolare perche’ sta in mezzo tra un programma che chiamiamo per comodita’ “A” che fa da server e accetta delle chiamate da un PC remoto sul quale girano due applicazioni, una applicazione client “B” e una applicazione server “C”. L’applicazione B fa la chiamata iniziale, il server A la riceve e per eseguire la richiesta deve “parlare” (e quindi fare una chiamata nel ruolodi client) con l’applicazione C. Per farlo deve fare una chiamata verso lo stesso PC dove sta B. Qui entra in gioco l’applicazione di cui sopra che chiameremo per comodita’ “M”. L’applicazione B in realta’ chiama M, anziche’ chiamare direttamente A, e quando A deve chiamare C in realta’ chiama sempre M (che a sua volta e’ quindi sia un socket client che un socket server). M invece di aprire un nuovo canale verso C, riutilizza lo stesso canale che gia’ e’ attivo tra B e A e manda i messaggi diretti a C su quel canale. In realta’ tra B e M la chiamata non e’ diretta, ma c’e’ un piccolo router che entra in gioco proprio in questo momento poiche’ vedendo il mesasggio diretto a C glielo gira e quindi B resta al di fuori della comunicazione perche’ non lo riguarda (cosi’ come C restera’ fuori dalla comunicazione, nel senso che i messaggi non gli verranno girati, pur rimanendo collegato al router, quando tali messaggi saranno diretti a B). La comunicazione inizialmente stabilita tra B e A, viene gestita da un thread in M (che per comodita’ chiameremo THREAD1) che gira i messaggi in arrivo da B verso A e viceversa. L’applicazione M, nel momento in cui arriva la chiamata da A verso C, attiva la ricezione sul canale stabilito con A, e questo processo lo esegue in un thread (THREAD2) che parte all’arrivo della chiamata da A e termina nel momento in cui la ricezione (mediante funzione ReadFile) sul nuovo canale e’ stata attivata; esso termina perche’ tale canale verra’ aggiunto alla lista di canali gestiti dal THREAD1 e quindi THREAD2 ha terminato il suo compito. THREAD1 pensera’ quindi a girare i messaggi provenienti da B (client) verso A (server) e quelli provenienti da A (client) verso C (server). Il problema in oggetto mi e’ accaduto nel momento in cui il THREAD2 e’ terminato.

venerdì, febbraio 22, 2008

Come disabilitare la Information bar di Internet Explorer 6


Non so voi, ma io sono piuttosto infastidito dalla "information bar" di Microsoft internet explorer 6.

Anzi piu' che infastidito. Soprattutto per la visualizzazione dei miei XML. Possibile che un browser sia cosi' idiota da bloccare come non sicuro un semplice file di testo oltretutto scritto da me? Che diavolo di contenuto attivo ha un file di testo? Che pericolo mi crea visualizzare alcuni tag XML? Mi sembra che le norme sulla sicurezza talvolta siano partorite da menti malate e che non sanno quello che stanno facendo. Se usassi le stesse norme in bicicletta oltre all'airbag e al casco integrale, dovrei anche condurre la bicicletta a mano per pericolo di correre a oltre 10 Km/h e di farmi la bua.

Non trovavo il tempo di cercare un modo per togliermela di torno. Ma oggi ero deciso. L'help dell'explorer non e' un vero help, e' un generatore di nervosismo: non solo ti dice, come parlasse a un bambino che ha bisogno di essere rassicurato perche' non trova piu' la sua mamma, guarda che puoi disabilitare la utilissima information bar ma noi non te lo raccomandiamo perche' protegge la tua navigazione, ma:
  • ti dice che la puoi disabilitare
  • non ti dice come farlo
  • ti dice che dovrai disabilitarla per ogni tipo di messaggio
Dopo un po' di vane ricerche (si trova una sacco di pattume a riguardo) ho trovato un sito che finalmente (ma per una ragione del tutto diversa) spiegava con poche immagini come fare. Sono certo che alcune persone gia' sanno come fare ma io, a parte che uso explorer il meno possibile e quindi non lo conosco benissimo, non lo sapevo e quindi adesso che lo so, voglio mettere a disposizione l'informazione a chi ne ha bisogno.

In pratica e' molto semplice, basta
  • aprire il browser
  • andare sulle "opzioni internet" dal menu "strumenti"
  • andare sul tab "avanzate"
  • scrollare fino alla sezione sicurezza che sta in fondo
  • cliccare sul check box che dice di permettere al contenuto attivo di girare sul computer (sul mio browser che e' in inglese e' la seconda voce e riporta la scritta "Allow active content to run in files on My Computer")
A questo punto la barra non dovrebbe piu' presentarsi, almeno per questa ragione. La barra purtroppo ha diversi usi e quindi diversi posti dove va gestita o disabilitata. A me per ora basta questo.
Eventualmente lasciate un commento se volete aggiungere qualcosa o segnalare problemi.