Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > API, COM et SDKs
API, COM et SDKs Développement système ou spécifique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/12/2012, 17h12   #1
Bernard B
Membre régulier
 
Homme Bernard
Ingénieur développement en retraite
Inscription : juin 2002
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Âge : 60
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement en retraite
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2002
Messages : 107
Points : 83
Points : 83
Par défaut Lancer une appli 64 bits à partir d'un programme en 32 bits

Bonjour,
J'essaie de lancer une application externe 64 bits a partir de mon application qui tourne en 32 bits sur un seven 64 bits.
Que j'utilise CreateProcess ou ShellExcecute j'ai la même erreur 50.
Y a-t-il une solution sachant que mon appli doit tourner sur des machines en 32 ou 64 bits et lancer des applis externes en 32 ou 64 bits.

Merci et bonne année à tous.

Bernard
Bernard B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 19h38   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 539
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 539
Points : 11 906
Points : 11 906
très étonnant, peut-on voir ton code ?
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 18h33   #3
Bernard B
Membre régulier
 
Homme Bernard
Ingénieur développement en retraite
Inscription : juin 2002
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Âge : 60
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement en retraite
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2002
Messages : 107
Points : 83
Points : 83
Voici le code :
Code :
1
2
3
4
5
              if ShellExecute(Handle,'open',
                            PChar('"'+Fen_VisuApercus.Appli_TraitementImages.FileName+'"'),
                            PChar('"'+FFichierImage+'"')
                            ,nil,SW_SHOW)<=32 then
                            ShowMessage(SysErrorMessage(GetLastError));
Pour compléter, l'application de traitement d'image c'est en l'occurence Photoshop, si je pointe sur la version 32 bits elle se lance si je pointe sur la version 64 bits j'ai l'erreur 50.
Avec Microsoft ICE en version 64 bits la seule que je puisse intaller sur un Seven 64 bits j'ai l'erreur 50.
Si Photoshop par exemple est lancé et que je passe cette commande, il m'ouvre bien mon image et me remonte Photoshop en premier plan : normal.
Bernard B est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 05h50   #4
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 539
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 539
Points : 11 906
Points : 11 906
C'est à priori un problème de droit (NB: RaiseLastOSError est plus pratique que le GetLastError)

Citation:
Failing with ERROR_NOT_SUPPORTED
Perhaps it should be noted that the function fails with GetLastError() == ERROR_NOT_SUPPORTED when starting executable that requires elevation on Windows Vista and the SEE_MASK_FLAG_DDEWAIT was not used. At least this is how it behaves on my laptop. The solution obviously is to include the flag.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Voir aussi
http://stackoverflow.com/questions/1...-it-to-termina
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 19h08   #5
Bernard B
Membre régulier
 
Homme Bernard
Ingénieur développement en retraite
Inscription : juin 2002
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Âge : 60
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement en retraite
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2002
Messages : 107
Points : 83
Points : 83
Bonsoir,
Après un petit break, je reprends le fil.
Tu as raison Paul il doit s'agir d'un problème de droit car en utilisant ShellExecuteEx avec le commande "runas" qui demande une élévation de privilèges, l'appli 64 bits est bien lancée !
Pour m'affranchir des besoins particulier d'une appli tierce, je me suis créé une petite appli en Delphi qui affiche une image JPG. Je l'ai compilée en 32 et en 64 bits. J'ai créé un lanceur (32 bits) qui lance la 32 ou la 64 bits avec les mêmes paramètres.
J'obtiens le même phénomène :
Si je lance l'exe 32 bits pas de soucis ça marche.
Si je lance l'exe 64 bits sans élévation de privilèges erreur 50 : "Cette demande n'est pas prise en charge.".
Avec élévation de privilèges, j'ai l'écran de l'UAC pour autoriser la lancement et ça fonctionne !
Je ne comprend pas bien la subtilité. Si quelqu'un à une autre solution je suis preneur.
Merci.
Bernard B est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h41.


 
 
 
 
Partenaires

Hébergement Web