Désactiver Ctrl+Z (annulation) sur l’explorateur Windows 7

15 09 2012

Comme beaucoup de programmes, l’explorateur Windows (explorer.exe) dispose d’une fonction undo/redo qui permet d’annuler ou de rétablir les actions effectuées, comme par exemple renommer un dossier ou déplacer un fichier.

Le raccourcis pour annuler est Ctrl+Z, et pour rétablir c’est Ctrl+Y.

Cette fonction est très pratique sur un éditeur de texte, un navigateur web ou sur Photoshop, mais sur l’explorateur windows elle est souvent involontaire et intempestive.

Malheureusement il n’est pas possible de modifier les raccourcis clavier de l’explorateur windows pour ne plus faire ce raccourcis involontairement, mais il existe une solution : AutoHotKey.

J’ai déjà utilisé ce programme de macro dans un autre billet : Script AutoHotKey : ajout date/heure.

Voilà aujourd’hui un petit bout de code qui permet de bloquer le Ctrl+Z sur l’explorateur Windows :

#SingleInstance force
#NoTrayIcon 

#IfWinActive ahk_class ExploreWClass
^z::
	SoundPlay *-1
    ; MsgBox Ctrl+Z désactivé.
#IfWinActive ahk_class CabinetWClass
^z::
	SoundPlay *-1
    ; MsgBox Ctrl+Z désactivé.
return
#IfWinActive

Y’a plus qu’à mettre ça dans un fichier .ahk, et à le lancer au démarrage de windows (via une tâche planifiée par exemple, ou en le plaçant dans le dossier démarrage), et fini les emmerdes.

Source: http://superuser.com/questions/268159/disable-ctrlz-shortcut-or-clear-undo-history-in-windows-explorer



VB.NET ou C# : quelle est la différence ?

27 08 2012

Découvrez pourquoi VB.NET est un langage de con…

Avant d’expliquer les différences entre VB.NET et C#, voici un petit rappel historique.

Il y a fort longtemps, c’est à dire dans les années 90, l’une des solutions les plus utilisées pour développer des applications pour windows était le Visual Basic 6 (VB6), un langage inventé par microsoft en 1991.

À l’époque les gens utilisaient VB6 car c’était un langage assez simple comparé au C++ par exemple. Il faut dire que ni Delphi, ni Qt, ni même Java n’existaient, donc VB6 était une solution de développement intéressante.

Mais un beau jour, le monde a changé.

Chez microsoft, le monde a changé en 2001, avec la sortie du tout nouveau .NET Framework, qui allait révolutionner la manière dont on développe des applications sous windows, en offrant un ensemble de bibliothèques bien structurées et bien documentées, le tout fonctionnement sur une machine virtuelle (comme Java) : la CLR.

Microsoft a accompagné la sortie de son .NET Framework d’un tout nouveau langage de programmation destiné à devenir le langage de prédilection pour les développements en .NET : le C# (prononcer C sharp), un langage moderne, complétement orienté objet, à la syntaxe inspirée de celle du C et de Java. Lire la suite »



Script .bat de backup d’une table MySQL

29 07 2012

Voici un petit script .bat (Windows batch), qui permet de faire un backup d’une base MySQL (avec une table particulière si vous la précisez dans la commande).

Le backup est créé dans le même dossier que le script bat, et porte la date et l’heure dans son nom de fichier
ex: backup maBase maTable 2012-07-29_16h45m33.sql

:: Script de backup MySQL

:: Récupération de date/heure dans la variable datetime
echo off
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
set datetime=%year%-%month%-%day%_%hour%h%min%m%secs%

:: Backup avec mysqldump
mysqldump -u root -proot maBase maTable > "backup maBase maTable %datetime%.sql"

Il y a plusieurs points sur lesquels il faut faire attention (prérequis) :

  • Ne mettez pas d’espace autour de l’opérateur d’affectation (=), sinon windows ne les reconnaitra pas
  • Vous devez avoir un compte MySQL ayant un mot de passe, sinon un prompt va vous demander le mot de passe à chaque exécution
  • Il n’y a pas d’espace entre -p et le mot de passe, alors qu’il y en a un entre -u et le nom d’utilisateur, ne cherchez pas pourquoi c’est comme ça ^^
  • Le programme mysqldump.exe doit se trouver dans un dossier appartement au Path (variable d’environnement de Windows)
    ex: C:\EasyPHP5.2.10\mysql\bin


Créer un lien symbolique sur Windows, comme sur Unix

2 07 2012

Voilà une astuce qui va plaire à tout ceux qui font du développement web sous techno Apache (PHP entre autre…).

Vous connaissez peut-être les liens symboliques sous Unix (qu’on voit souvent sous la dénomination “Symlinks” dans la configuration Apache, ex: FollowSymLinks).

En fait un lien symbolique est un pointeur sur un fichier, complétement transparent pour les programmes qui l’utilise.

Si vous créez un lien symbolique vers /Applications/mondossier dans /Users/Vincent/monSymLink, et que vous ouvrez le dossier /Users/Vincent/monSymLink dans n’importe quel programme, tout va se passer comme si ce dossier /Users/Vincent/monSymLink existait vraiment, ça n’est pas juste une redirection vers /Applications/mondossier, c’est le même dossier accessible depuis 2 liens différents.

Sous Windows cette fonctionnalité n’existait pas, en effet les raccourcis Windows sont juste des redirections qui ne fonctionnent en gros qu’avec l’explorateur Windows, mais pas au niveau du système de fichiers.

N’existait pas, car depuis Windows Vista, Microsoft a enfin introduit la gestion des liens symboliques dans son système d’exploitation, via la commande mklink :

mklink /D /H /J [LINK NAME] [TARGET]

/D : pour créer un lien de type dossier, vers un dossier (symlink)
/H : pour créer un lien de type fichier, vers un fichier (hardlink)
/J : pareil que le hardlink mais pour les dossier (junction)

Il faut vous placer dans le dossier où vous voulez créer le raccourcis avant, puis exécuter la commande.

Exemple :

cd "C:\test-mklink\"
mklink /H monLien.txt "C:\Users\Vincent\Desktop\monFichier.txt"

Pour plus d’info sur tout ça, je vous invite à lire ma source :
http://ipggi.wordpress.com/2009/09/07/windows-file-junctions-symbolic-links-and-hard-links/



MySQL : logger les requêtes SQL

14 06 2012

Sur MySQL il n’existe pas d’outil de profilage comme SQL Server Profiler sur le SGBG homonyme.

Mais pas contre on peut logger toutes les requêtes SQL reçues par le serveur dans un fichier. Pour cela c’est très simple, il suffit de configurer les variables general_log et general_log_file.

Voici comment afficher ces 2 variables pour connaître leur valeur actuelle :

SHOW VARIABLES LIKE "general_log%";

Et voilà comment modifier leur valeur (par exemple) :

SET @@global.general_log = 'ON';
SET @@global.general_log_file = 'C:\\mysql.log';

N.B. Pensez à échapper les antislash avec un 2éme antislash dans le chemin du fichier.

La modification ne sera effective que pour la session actuelle. Si vous redémarrez le serveur MySQL, la valeur initiale de ces 2 variables sera restaurée. Si vous voulez conserver ces paramètres de façon permanente, il faut modifier votre fichier de configuration my.ini.



Accélérer ou ralentir un jeu flash (cheat)

26 05 2012

Ce billet va plaire à tous les gros tricheurs sans scrupule.

Certains jeu flash basés sur l’adresse, la rapidité ou la précision seraient plus faciles à jouer si ou pouvait ralentir la vitesse du jeu.

À l’inverse, d’autres jeux sont un peu longs (surtout au début du jeu), comme certains tower defense ou autre jeu de stratégie.

Bref, j’ai une astuce qui permet de modifier la vitesse d’exécution de n’importe quel jeu flash à l’aide du programme Cheat Engine.

Ce programme sert en fait à “hacker” flash player, pour ceux que ça intéresse il permet même d’éditer des valeurs contenues dans la mémoire (RAM). Du coup on peut par exemple éditer son score à tout moment, ou modifier la quantité d’argent à n’importe quel instant !

Pour en revenir à la vitesse, le principe est très simple : vous lancez votre jeu flash dans un navigateur (Firefox par exemple), et vous lancez Cheat Engine en parallèle.

Dans Cheat Engine, vous cliquez sur le bouton qui clignote en vert en haut à gauche : “Select a process to open“. La liste des programmes en cours d’exécution s’affiche, cherchez votre navigateur (Firefox), puis cliquez sur Open.

Ensuite cochez la case Enable Speedhack à droite, et entrez le facteur souhaité (1 étant la vitesse de jeu normale, si vous mettez 2 ça ira 2 fois plus vite, si vous mettez 0.5 ça ira moitié moins vite).

NB: souvent vous verrez plusieurs processus correspondants à votre navigateur, essayez les tous jusqu’à trouver le bon (celui qui agit sur le jeu flash).



les_joies_du_code();

22 05 2012

Quelques illustrations à des situations qu’on rencontre souvent quand on travaille dans l’informatique :

Quand on me parle d’un framework un peu trop underground :

Et la petite série spéciale StackOverflow, tellement vrai :
Quand je poste une reponse sur stackoverflow :

Quand je trouve une solution sur stackoverflow :

Quand je poste une question sur stackoverflow :

[source]



Robot ballon (MorpHex)

21 04 2012

MorpHex est un robot hexapode qui se transforme en ballon :



Résolution personnalisée pour carte graphique ATI

15 04 2012

Sur les cartes graphiques AMD (ex ATI), il est impossible de définir une résolution d’écran personnalisée (contrairement aux cartes nVidia qui proposent cette fonctionnalité via les paramètres du driver).

On est obligé de choisir parmi un ensemble de résolution prédéfinies.

Heureusement, il existe un petit outil fort utile qui permet d’ajouter ses propres résolutions à la liste des résolutions existantes :

[ATi Custom Resolution Tool V1.02]

L’utilisation est très simple :

  • Vous cliquez sur Get current resolutions pour charger les résolutions déjà présentes (c’est très important pour ne pas les perdre lors de l’enregistrement)
  • Vous ajoutez une ou plusieurs résolutions dans la liste
    Le format est le suivant : <largeur>x<hauteur>x<fréquence>
    Ex: 1280×0760x60 correspond à 1280*760 en 60Hz
    Attention à bien écrire le nombre sur 4 chiffres (il faut écrire 0760 et non 760)
  • Vous enregistrer la nouvelle liste de résolutions en cliquant sur Save table.
    À ce moment, le logiciel aura besoin d’écrire dans la base de registre, et Windows vous demandera si vous autorisez le logiciel à y accéder, il faut accepter.
  • Une fois enregistré, vous cliquez sur Restart ATi driver (ou alors vous redémarrez votre ordinateur), pour que ces changement soient pris en compte

Maintenant votre nouvelle résolution s’affiche dans la liste des résolutions que windows vous propose dans le panneau de configuration.

Pour ceux que ça intéresse, les résolutions prédéfinies sont enregistrées à plusieurs endroits dans la base de registre, dans des valeurs commençant par DALNonStandard (ex: DALNonStandardModesBCD1, DALNonStandardModesBCD2).

Cet utilitaire sert justement à éditer toutes ces valeurs rapidement, sans avoir à chercher et à toutes les modifier une par une.



Naviguer plus facilement dans la base de registre windows

4 03 2012

Pour accéder et éditer la base de registre sous windows, on utilise l’utilitaire par défaut : regedit.exe.

Cet utilitaire n’est pas très pratique à de nombreux égards :

  • Impossible d’accéder directement à une clé, comme on le fait dans l’explorateur windows (dans la barre d’adresse, ex: C:\Program Files (x86)\Adobe\Adobe After Effects CS4)
  • La recherche se fait “pas à pas”, au lieu d’avoir une liste de résultats

Mais il existe des solutions pour améliorer ces points, avec par exemple Registry Jumper qui permet d’accéder directement à une clé en faisant un copier-coller par exemple :

RegJump

Mais il y a encore plus radical, on peut remplacer regedit par un autre utilitaire, comme RegAlyzer, qui apporte pleins de fonctionnalités super utiles :

  • Annuler et Rétablir (Undo/Redo) en format .reg
  • Fonctions de recherche améliorées (liste de résultats)
  • Aller à une clé en la tapant/copiant dans un dialogue (au lieu de parcourir)
  • Modification DWord avec affichage en parallèle hexa/décimal/binaire
  • Affichage du contenu d’un fichier .reg sans l’importer