Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1640 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] ShellExecute() qui marche pas.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] ShellExecute() qui marche pas.

n°857923
HERIBERT
Posté le 26-09-2004 à 11:48:22  profilanswer
 

Bonjour :)
 
ShelleExecute() me les casse, là :kaola:
 
Cette fonction marche parfaitement avec cette syntaxe :  
 
  ShellExecute (handle, // Non initialisé              
               'Open',                
               'Nom_Du_Prog.EXE' ,         // Nom du programme
               '',                    // Param passé au progr
               '',                    // Directory par défaut
               SW_SHOWNORMAL);
 
sans même avoir à initialiser Handle.  
 
Sauf ici :
 
  ShellExecute (Handle,                
               'Open',                
               'MSACCESS.EXE' ,         // Nom du programme
               'C:\Documents and Settings\{...}\Livres\Consult.Mdb', // Fichier Access à ouvrir
               '',                    // Directory par défaut
               SW_SHOWNORMAL);
 
Pourquoi :??:  
 
 
Je l'ai même implémentée comme ceci :  
 
  Handle := 0; // Handle est un int
  ShellExecute (Handle,                
               'Open',                
               'MSACCESS.EXE' ,         // Nom du programme
               'C:\Documents and Settings\{...}\Livres\Consult.Mdb',                    
               '',                    // Directory par défaut
               SW_SHOWNORMAL);
 
Comprends pas :( ...

mood
Publicité
Posté le 26-09-2004 à 11:48:22  profilanswer
 

n°858057
Inekman
Posté le 26-09-2004 à 15:37:29  profilanswer
 

si ton programme se trouve dans le dossier où se trouve 'MSACCESS.EXE' ça devrait tourner, sinon je crois qu'il faut que tu lui spécifie le répertoire où il se trouve.
 
Donne lui aussi le dossier à partir duquel il doit ouvrir le fichier. Utilise "ExtractFilePath".
 
Sinon c'est chelou que ça ne fonctionne pas, j'ai jamais eu de problème avec ShellExecute. ;)

n°858060
HERIBERT
Posté le 26-09-2004 à 15:54:47  profilanswer
 

inekman a écrit :

si ton programme se trouve dans le dossier où se trouve 'MSACCESS.EXE' ça devrait tourner, sinon je crois qu'il faut que tu lui spécifie le répertoire où il se trouve.
 
Donne lui aussi le dossier à partir duquel il doit ouvrir le fichier. Utilise "ExtractFilePath".
 
Sinon c'est chelou que ça ne fonctionne pas, j'ai jamais eu de problème avec ShellExecute. ;)


Ah ! Eurêka :hot: Même si MSACCESS est ds le path, puisque c'est un prog d'Office !? J'avais pas compris ça. Je shellexécute illico :)

n°858147
HERIBERT
Posté le 26-09-2004 à 17:22:22  profilanswer
 

inekman a écrit :

si ton programme se trouve dans le dossier où se trouve 'MSACCESS.EXE' ça devrait tourner, sinon je crois qu'il faut que tu lui spécifie le répertoire où il se trouve.
 
Donne lui aussi le dossier à partir duquel il doit ouvrir le fichier. Utilise "ExtractFilePath".
 
Sinon c'est chelou que ça ne fonctionne pas, j'ai jamais eu de problème avec ShellExecute. ;)


Ca marche pas :(
 
Handle = 0 . Path complet d'Access ds le paramètre Nom du programme
   
  ShellExecute (handle,               // ?
               'Open',                // ?
               'C:\Program Files\Microsoft Office\MSACCESS.EXE' ,         // Nom du programme
               'C:\Documents and Settings\{...}\Consult.Mdb',                    // Param passé au progr
               '',                    // Directory par défaut
               SW_SHOWNORMAL);
 
 :??:

n°858214
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-09-2004 à 19:35:58  profilanswer
 

ShellExecute(0, nil, 'C:\Documents and Settings\{...}\Consult.Mdb', nil, nil, SW_SHOWNORMAL);


 
dans le cas où tu passes un mdb en param, peut-être que ça foire à cause des espaces ? essaie ceci :
 

ShellExecute(0, nil, 'MSACCESS.EXE', '"C:\Documents and Settings\{...}\Consult.Mdb"', nil, SW_SHOWNORMAL);


Message édité par antp le 26-09-2004 à 19:37:50

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°858350
DjobaDjobi
Wanna turn up the heat?
Posté le 26-09-2004 à 21:56:29  profilanswer
 

en delphi ptet que \D veut dire le caractere D ?

n°858391
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-09-2004 à 23:03:17  profilanswer
 

non, les \ n'ont pas de signification particulière contrairement à ce qui se passe en C/C++/JAVA/PHP/etc.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°858413
Inekman
Posté le 26-09-2004 à 23:49:12  profilanswer
 

Voilà, je viens d'effectuer un test et ça marche nikel chez moi.
 
antp a vu juste à propos des espaces :
 


ShellExecute(0, // handle
    'open', // opération a effectuer
    'C:\Program Files\Microsoft Office\Office\MSACCESS.EXE', // adresse d'access
    '"C:\Documents and Settings\****\Mes documents\bd1.mdb"', // adresse de la bdd
    '"C:\Documents and Settings\****\Mes documents\"', // répertoire du fichier, j'ai essayé sans et ça marche aussi...
    SW_NORMAL);


 
Ce code est exactement celui que je viens de tester et il marche. A toi de voir si ça roule chez toi.


Message édité par Inekman le 26-09-2004 à 23:49:35
n°859781
HERIBERT
Posté le 29-09-2004 à 10:59:48  profilanswer
 

antp a écrit :

ShellExecute(0, nil, 'C:\Documents and Settings\{...}\Consult.Mdb', nil, nil, SW_SHOWNORMAL);


 
dans le cas où tu passes un mdb en param, peut-être que ça foire à cause des espaces ? essaie ceci :
 

ShellExecute(0, nil, 'MSACCESS.EXE', '"C:\Documents and Settings\{...}\Consult.Mdb"', nil, SW_SHOWNORMAL);




Ca marche :)
 
Le code :  
  Handle := 0;
  ShellExecute (handle,            
               nil,                
               'C:\Documents and Settings\***\Mes Documents\Livres\Consult.Mdb' ,  // Access automatiquepment appelé        
               nil,                      
               nil,                      
               SW_SHOWNORMAL);
 
Le forum étant indisponible lorsque j'ai reçu l'avertissement de vos messages à vs tous, je me suis risqué sur www.developpez.com Là, on m'a sorti une histoire de à process pour que mon prog s'arrête (le temps d'Access) au lieu de passer aux lignes suivantes.  
 
C'est pas faux en soi (j'utilise la bascule pour rester sous Access : je complique pas trop une minuscule moulinette perso ;) ) mais ça ne résolvait pas mon pb. Vs êtes plus forts qu'eux :jap:  
 
Ne le dites pas partout :o


Message édité par HERIBERT le 29-09-2004 à 11:00:31
n°859783
HERIBERT
Posté le 29-09-2004 à 11:02:29  profilanswer
 

inekman a écrit :

Voilà, je viens d'effectuer un test et ça marche nikel chez moi.
 
antp a vu juste à propos des espaces :
 


ShellExecute(0, // handle
    'open', // opération a effectuer
    'C:\Program Files\Microsoft Office\Office\MSACCESS.EXE', // adresse d'access
    '"C:\Documents and Settings\****\Mes documents\bd1.mdb"', // adresse de la bdd
    '"C:\Documents and Settings\****\Mes documents\"', // répertoire du fichier, j'ai essayé sans et ça marche aussi...
    SW_NORMAL);


 
Ce code est exactement celui que je viens de tester et il marche. A toi de voir si ça roule chez toi.


Merci : ça roule :)

mood
Publicité
Posté le 29-09-2004 à 11:02:29  profilanswer
 

n°859784
sircam
I Like Trains
Posté le 29-09-2004 à 11:03:10  profilanswer
 

HERIBERT a écrit :

Vs êtes plus forts qu'eux :jap: Ne le dites pas partout :o


Ici, c'est l'élite. Tout le monde le sait.  [:crosscrusher]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°859794
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-09-2004 à 11:08:41  profilanswer
 

pourquoi tu gardes une variable "handle" alors qu'un bête 0 suffit ? :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°859806
HERIBERT
Posté le 29-09-2004 à 11:15:43  profilanswer
 

antp a écrit :

pourquoi tu gardes une variable "handle" alors qu'un bête 0 suffit ? :??:


Ben oui, tiens :heink:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] ShellExecute() qui marche pas.

 

Sujets relatifs
Programmation Palm / Ti-82 simple, comment ça marche ??comment recuperer le repertoire partager sous delphi ?
mon petit prog en PASCAL marche pas mais je vois pa l'erreur....HELPdelphi :ShellExecute probleme pour parametre
PB avec delphi 6 : delphi se ferme a l'ouverture d'un fichierMigrer une application delphi 7 en 8
delphi : boutonrecordcount ne marche pas!!!
delphi : une image qui s enfonce comme un bouton qd on clique dessus? 
Plus de sujets relatifs à : [Delphi] ShellExecute() qui marche pas.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR