Ce n'est pas parce que les constantes sont de types équivalant (souvent des integer) qu'ils sont pour autant égaux sémantiquement et surtout au niveau de la valeur de leur constante.
Comment pouvez-vous être sûr que scshow porte la même valeur que SW_SHOWNORMAL ? Et même d'un point de vue sémantique, les constantes SW_XXX sont faites pour travailler de paire avec ShellExecute, scshow ne fonctionne que pour la classe TCustomFileRun (qui d'ailleurs fais une conversion de scshow vers SW_SHOW).
Quoi qu'il en soit, le problème ici est que dans sa version .NET, la déclaration de ShellExecute n'utilise plus de pointeurs sur chaînes mais des chaînes tout court.
L'appel doit donc devenir :
Shellexecute(0, 'open', 'repertoire\nomdefichier.jar', '', '', SW_SHOW);
Partager