IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Vista et CreateProcess


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut Vista et CreateProcess
    Salut à tous

    Voila comme c'est la mode, je lance ma discussion à moi sur la compatibilité Vista
    Voila mon problème:
    J'ai codé 2 applications. L'une est le programme en lui-même et l'autre est un Updater: il va télécharger la dernière version sur un FTP.
    Voici comment l'opération se passe:
    Le prog principal se lance et vérifie lui-même s'il existe une nouvelle version. S'il en trouve une, il lance l'updater et s'arrête. L'updater télécharge la nouvelle version, la dézippe et la lance puis s'arrête. Tout se passe comme sur des roulettes sous WinXP SP2... Mais sous Vista, dès que le programme a repéré une nouvelle version sur le FTP, il est censé lancer l'Updater et s'arrêter. Il s'arrête bien mais rien ne se passe ensuite.
    Toutefois, si on lance directement l'Updater, tout se passe bien: la nouvelle version se télécharge, se dézippe, et est lancée et l'Updater s'arrête...


    Donc voila mes questions:
    Etant donné que j'utilise strictement la même méthode pour exécuter le programme et l'updater (CreateProcess), Sous Vista, y a-t-il une différence supplémentaire entre CreateProcess et ShellExecute? Doit-on utiliser ShellExecute?
    Le fait d'utiliser un Mutex dans le programme principal ne pose-t-il pas un
    problème?

    Merci d'avance
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Salut
    Bon après quelques recherches et essais, j'ai trouvé la source du problème. La voici:

    Lorsqu'un exécutable est lancé, si le nom du fichier contient des mot clés du genre "install", "patch", "setup", ou encore -dans mon cas- "update", son lancement nécessite des droits d'administrateur. Et dans ce cas-là, CreateProcess est tout simplement annulé sans aucun avertissement
    Donc le problème ne vient pas du tout de BDS2006 mais bien du système d'administration de Vista.
    Les solutions:
    • Utiliser ShellExecute en lieu et place de CreateProcess. ShellExecute pourra alors lancer le programme et, le cas échéant, afficher la boite de dialogue système de validation du lancement.
    • Renommer l'exécutable. C'est encore plus simple. D'ailleurs, vous remarquerez que lorsque ces fichiers ont un nom de fichier contenant les mots-clés cités plus haut, un petit écusson apparait sur son icone. Cet écusson signifie qu'il faut les droits admin sur la machine pour le lancer. Il suffit alors de le renommer pour faire disparaitre l'écusson...

    Voila
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CreateProcess (impossible de gérer le symbole >
    Par borgirz dans le forum Windows
    Réponses: 4
    Dernier message: 03/06/2004, 10h53
  2. [CreateProcess] Comment cacher la fenêtre ?
    Par iubito dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 27/04/2004, 18h27
  3. Réponses: 2
    Dernier message: 05/04/2004, 23h06
  4. CreateProcess + paramètres passé
    Par obione dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 20/03/2003, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo