Windows 10 Anniversary Update: problema di visualizzazione su display ad alta risoluzione (HiDPI)

by Administrator 13. October 2016 16:01

Ci risiamo! Se nel post

http://blog.sormanistudio.com/post/2016/05/08/problema-di-visualizzazione-su-display-ad-alta-risoluzione-hidpi.aspx

ho spiegato come risolvere i problemi di visualizzazione di alcuni programmi su display HiDPI, dopo l'aggiornamento dell'anniversario di Windows 10  il fix descritto è del tutto inefficace.

L'unico modo per il risolvere il problema è di modificare il Manifest dei file eseguibili dei programmi e ricompilare i file modificati.

In particolare

  1. Scaricare Resource Hacker, uno strumento per modificare e ricompilare gli eseguibili, da http://www.angusj.com/resourcehacker/ (io ho scelto per la soluzione portatile);
  2. Decomprimere l'archivio scaricato ed eseguire ResourceHacker.exe
  3. Aprire dal menù File l'eseguibile che si vuole modificare, ad esempio C:\Program Files\Adobe\Adobe Photoshop CS6\Photoshop.exe, dopo averne fatto una copia;
  4. Cliccare sulla cartella Manifest nel pannello di sinistra e quindi su 1:1033
  5. Sostituire tutto il testo con il testo copiato dal link http://pastebin.com/BZnKwU6a o con

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="amd64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>

6. Cliccare quindi sulla freccia verde per compilare il file e salvarlo sostituendo l'originale

7. Riavviare Windows


Tags:

Come tradurre Windows 10 in Italiano: problema su notebook Lenovo

by Administrator 31. July 2016 06:53

Qualsiasi edizione di Windows 10 può essere configurata per mostrare l'interfaccia in lingua Italiana: un'utile guida  si può ritrovare al seguente link:

https://turbolab.it/windows-10/guida-come-tradurre-windows-10-italiano-543

Ultimamente mi è capitato di aggiornare un notebook Lenovo a Windows 10: pur seguendo in modo scrupoloso la procedura di installazione, scegliendo nelle diverse configurazioni la lingua Italiana come lingua predefinita per il sistema e l'Italia come paese per le impostazioni del sistema, mi sono ritrovato Windows 10 con le interfacce in lingua Inglese.

Per risolvere l'inconveniente ho aperto il pannello di controllo e quindi Orologio e opzioni internazionali -> Lingua


Ho cliccato quindi su Opzioni relative all'Italiano e impostato la lingua come principale.

Per concludere ho riavviato il sistema.

Tags:

Windows 10

Errore nel Restore di un database MySQL da un backup compresso tramite cmd

by Administrator 29. July 2016 10:51

L'istruzione per ripristinare un backup di un db MySQL tramite console di comando è la seguente:

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -u username -p dbname < C:\backup.sql.bz2

in cui username è l'utente associato al db, dbname è il nome del database in cui effettuare il restore e backup.sql.bz2 è il nome del backup compresso ".bz2".

Eseguendo direttamente il comando si ottiene il seguente errore:

ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected...

Per superare l'errore è sufficiente decomprimere il backup (ad esempio tramite 7-zip) e rieseguire il restore

Tags:

Cambiare la root password in MySQL

by Administrator 28. July 2016 06:17

Nel caso in cui fosse necessario modificare la root password di MySQL, ovvero la pw dell'utente root@localhost, vi consiglio di seguire le seguenti istruzioni:

1) arrestare il servizio MySQL;
2) salvare la seguente query
SET PASSWORD FOR root@localhost=PASSWORD('newpass');
dove "newpass" è la nuova password, nel file di testo C:\mysql-init.txt;
3) aprire cmd con privilegi amministrativi e portarsi nella directory BIN della cartella di installazione di MySQL digitando (ad esempio)
cd C:\Program Files\MySQL\MySQL Server 5.6\bin
4) eseguire l'istruzione
mysqld with ---init-file=C:\\mysql-init.txt

5) riavviare il servizio MySQL


Tags:

MySQL

Mirror su windows server 2008

by Administrator 16. May 2016 13:45

Creare un sistema mirror (RAID1 di tipo software) su windows server 2008

  • Aprire Server manager -> Archiviazione -> Gestione del disco
  • Selezionare il volume "Riservato per il sistema", tasto destro e quindi "aggiungi mirror" selezionando il disco che si vuole aggiungere al mirror.
  • Quando il mirroring sul volume di sistema sarà completo, selezionare il volume C: e quindi tasto destro, "aggiungi mirror". L'operazione di sincronizzazione potrebbe richiedere molte ore.

L'ordine di aggiunta del mirror sui volumi è fondamentale in quanto non è consentito invertirlo ovvero prima eseguire il mirror sul disco C: e poi sul volume Riservato al sistema.
In caso di errore è bene eseguire un "clean" del disco utilizzando DISKPART direttamente da command prompt di Windows Server 2008 (non riporto come eseguire questa operazione) e quindi ripetere le operazioni prima descritte.

Durante la creazione del mirror, il sistema operativo dovrebbe aggiungere una voce al System Boot Manager per permettere il boot dal mirror secondario.
All'avvio dovrebbero comparire le seguenti voci:
Windows Server 2008
Windows Server 2008 - plex secondario

Tali voci possono essere modificate utilizzando il BCD Editor (bcdedit.exe)

Per testare il sistema

  • spegnere il computer e disconnettere uno dei due dischi per simulare un guasto
  • riavviare il computer usando il rimanente mirror (Windows Server 2008 - plex secondario)
  • dopo aver verificato il corretto funzionamento dei sistema, spegnere il pc e riconnettere il disco- riavviare il computer
  • controllare da Server manager -> Archiviazione ->Gestione disco che il mirror sia funzionante

(vedi anche http://billyfung2010.blogspot.it/2012/06/how-to-setup-software-raid-1-on-window.html oppure http://sourcedaddy.com/search/?q=Mirroring+Boot+and+System+Volumes)


Il Mirror potrebbe non ripartire: in questo caso consiglio di "rimuovere il mirror" da entrambi i dischi dalla console di Windows o tramite diskpart:
https://technet.microsoft.com/en-us/library/cc787944(v=ws.10).aspx

Rimuovendo il mirror il sistema operativo potrebbe non eliminare la relativa voce dal System Boot Manager.
(vedi https://support.microsoft.com/en-us/kb/969751)
In questo caso è necessario eliminare la voce utilizzando bcdedit.exe.
Da cmd:

  • bcdedit /v e premere invio;
  • identificare il {GUID} della voce da cancellare:
  • eseguire il comando bcdedit /delete {GUID}

Per altre informazioni riguardo i dischi dinamici, la sostituzione di dischi in mirror con altri di maggiore capacità ecc... vi consiglio di consultare
http://www.dynamic-disk.com/dynamic-disk-resource.html

Tags:

Problema di visualizzazione su display ad alta risoluzione (HiDPI)

by Administrator 8. May 2016 07:40

Ho recentemente acquistato un nuovo notebook DELL con un fantastico display HiDPI con risoluzione nativa di 3840px x 2160px e purtroppo alcune  applicazioni, tra cui la suite Adobe, sono diventate completamente inutilizzabili per una riduzione oltre misura delle interfacce.

Non nego che sono stato colto da un notevole sconforto soprattutto nel constatare che la suite Adobe CS6, notoriamente utilizzata dai professionisti della grafica, non fosse utilizzabile con uno schermo ad alta risoluzione!

Ovviamente la soluzione all'inconveniente sarebbe il rilascio di una patch da parte dei produttori delle applicazioni: nella vana attesa di aggiornamenti una soluzione attuata da molti è quella di modificare l'"application manifest" dei programmi con un manifest che permetta lo scaling adeguato delle interfacce e dei controlli.

Questa soluzione è attuabile solo con l'utilizzo di programmi appositi come Resource Tuner:

http://www.restuner.com/

che modificano il manifest interno agli eseguibili.

In alternativa si può creare un file manifest esterno ai programmi e forzare Windows nel caricare tale file qualora esso esista.

Per implementare questa strategia è necessario:

  1. creare la chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) ed impostarla a 1
  2. Creare un nuovo file manifest con Blocco Note copiando ad esempio il testo da: http://pastebin.com/BZnKwU6a
  3. Salvare il file così creato come nome_eseguibile.exe.manifest e salvarlo nella stessa posizione del file eseguibile del programma. Ad esempio  Illustrator.exe.manifest salvato in  Program Files\Adobe\Adobe Illustrator CS6 (64 Bit)\Support Files\Contents\Windows

Dopo aver eseguito le operazioni sopra descritte e senza la necessità di riavviare Windows, eseguendo il programma si otterranno delle interfacce utilizzabili anche se degradate nella qualità.


Tags:

windows

Windows Batch Scripting: come impostare a 0 il codice di ritorno

by Administrator 7. May 2016 18:46

Tipicamente l'esecuzione di comandi tramite cmd restituisce un valore 0 quando si conclude con esito positivo

e un valore diverso da zero in caso di fallimento.

Per una trattazione più dettagliata dell'argomento rimando a:

http://steve-jansen.github.io/guides/windows-batch-scripting/part-3-return-codes.html

Alcuni software permettono l'esecuzione di un file batch esterno al programma vincolando l'avvio di altre istruzione al valore dell'exit code del file batch.

Per impostare l'exit code del file batch a 0, indipendentemente dall'esito finale dello script, si può utilizzare la seguente istruzione:

exit 0

Tags:

Scripting

Teamviewer: la schermata non può essere acquisita in questo momento ... (The screen cannot be captured at the moment. This is probably due to fast user switching or a disconnected/minimized remote desktop session)

by Administrator 7. May 2016 12:08

Mi sono scontrato con un fastidioso errore di TeamViewer che mi impediva di accedere al server di un mio cliente: ad accesso effettuato compariva una finestra con il seguente avviso:

" la schermata non può essere acquisita in questo momento ..."

Di seguito riporto lo screen shot dello stesso errore in lingua inglese:


Non è stato semplice risolvere l'errore: ho provato differente soluzioni senza successo prima di approdato al seguente post:

http://www.cpierce.org/2015/01/installing-teamviewer-over-remote-desktop/

Il post segnala che l'ID restituito da TeamViewer tramite Desktop Remoto è differente dall'ID del servizio in esecuzione standard.

Di fatti ciò corrispondeva a verità! Infatti recandomi dal cliente ed accedendo direttamente al server ho notato che l'ID letto era differente da quello visualizzato in desktop remoto!

Utilizzando l'ID corretto ho quindi superato il problema.

Tags:

Teamviewer

Symbolic Links: come accedere a cartelle e file da differenti cartelle ( access folders and files from different folders without maintaining duplicate copies)

by Administrator 7. May 2016 11:38

Può essere utile conoscere come creare una cartella o un file che "punta" ad una differente cartella o file. In questi casi è necessario creare un Symbolic Link.

Una guida completa sull'argomento è disponibile al seguente indirizzo:

http://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/


Tags:

windows

Creare una cartella il cui nome dipende dalla data e dall'ora attuale (creating date-time based folder name)

by Administrator 7. May 2016 10:15

Supponiamo di voler creare una cartella via cmd o batch file il cui nome contiene la data e l'ora attuale secondo lo schema:

backup_annomesegiorno_oraminutisecondi

ad esempio se oggi fosse il 04/05/2016 e fossero le ore 10.31.20,02 allora:

backup_20160504_1031

Utilizziamo la manipolazione DOS di stringhe:

Set data=%date:~6,4%%date:~3,2%%date:~0,2%

in cui  ad esempio date:~0,2 prende i primi due caratteri a partire dalla posizione 0 della stringa restituita dal comanda DOS date (date restituisce il valore 04/05/2016).

Faccio notare che sarebbe possibile anche iniziare dall'ultimo carattere della stringa "date"; ad esempio il comando:

date:~-7,2 

restituisce il valore 05 (in questo caso la posizione 0 è del numero 6).

Procedendo allo stesso modo per il tempo si ha:

Set tempo=%time:~0,2%%time:~3,2%

Unendo ora tutti i comandi si ottiene:

Set data=%date:~6,4%%date:~3,2%%date:~0,2%
Set tempo=%time:~0,2%%time:~3,2%
mkdir backup_data%%tempo%

Nel caso in cui si voglia l'indicazione della data nella seguente forma "04052016" è allora più conveniente utilizzare la sostituzione di un carattere in una stringa secondo il seguente esempio:

outstring = instring:chr_old= chr_new

in cui instring è la stringa originale, outstring è il risultato della sostituzione, chr_old è il carattere che si vuole sostituire e chr_new è il carattere sostitutivo.

Nel nostro caso chr_old = / e chr_new è la stringa nulla, per cui:

Set data=%date:/=%

Per un guida più esaustiva sulla manipolazione DOS di stringhe rimando al seguente link:

http://www.dostips.com/DtTipsStringManipulation.php

Tags:

windows

About the author

SormaniStudio di Eros Sormani, progettazione e sviluppo di soluzioni web avanzate su piattaforma Microsoft .Net ed applicazioni in Visual Basic for Applications (MS Excel, Word ecc...)

Page List

Month List