Echec d'une instruction, comment le traduire en condition

Echec d'une instruction, comment le traduire en condition - C++ - Programmation

Marsh Posté le 11-06-2006 à 20:05:34    

Salut,
 
je travaille sur un programme Win32 en C++ et je me demande comment traduire cette phrase : "si l'instruction ShellExecute n'ouvre pas le réperstoire sélectionner fais ceci".
 
un peut de détails sur ShellExecute, dans mon programme elle se présente comme ca : ShellExecute(hwnd, "open", "file:///...", 0, 0, 1);
 
Voici ma tentative :

Citation :

ShellExecute(hwnd, "open", "file:///...", 0, 0, 1);
return TRUE;
if((ShellExecute) return FALSE){...}


 
Mais le compilo me dis que ShellExecute est tout le temps évaluer a TRUE.
Faut dire que ma condition n'est pas terrible  :sweat: , mais c'est la seul qui se compile... (que j'ai essayé)
 
Voila, merci.

Reply

Marsh Posté le 11-06-2006 à 20:05:34   

Reply

Marsh Posté le 11-06-2006 à 21:40:36    

Regarde ce lien http://c.developpez.com/faq/vc/?page=ProcessThread
Il y a un exemple de lancement et de récupération de code ereur.

Reply

Marsh Posté le 12-06-2006 à 17:12:53    

Merci de ta réponse Trap D, mais je n'ai jamais réussi à executer un morceau de code provenant de ce site  :sweat: ... Je vais essayer mais je pense que ce n'est pas c.devellopez.com qui va m'aider...

Reply

Marsh Posté le 12-06-2006 à 18:14:35    

Phaydrinix a écrit :

Merci de ta réponse Trap D, mais je n'ai jamais réussi à executer un morceau de code provenant de ce site  :sweat: ... Je vais essayer mais je pense que ce n'est pas c.devellopez.com qui va m'aider...

Ça me paraît pour le moins bizarre ce que tu dis là . [:atlantis]

Reply

Marsh Posté le 12-06-2006 à 18:54:48    

Bha au début, quand j'avais un problème j'allais toujours sur http://c.devellopez.com pour voir si je trouverai une réponse, mais leur code ne fonctionne qu'a moitié...
 
===> résultat toujours bloqué  :pt1cable:

Reply

Marsh Posté le 12-06-2006 à 19:34:39    

En tout cas, je peux t'assurer que ce code :

Code :
  1. SHELLEXECUTEINFO ExecuteInfo;   
  2. memset(&ExecuteInfo, 0, sizeof(ExecuteInfo));
  3.    
  4. ExecuteInfo.cbSize       = sizeof(ExecuteInfo);
  5. ExecuteInfo.fMask        = 0;               
  6. ExecuteInfo.hwnd         = 0;               
  7. ExecuteInfo.lpVerb       = "open";                     
  8. ExecuteInfo.lpFile       = "c:\\windows\\notepad.exe";
  9. ExecuteInfo.lpParameters = "c:\\mydir\\toto.txt";
  10. ExecuteInfo.lpDirectory  = 0;
  11. ExecuteInfo.nShow        = SW_SHOW;
  12. ExecuteInfo.hInstApp     = 0;   
  13. if(ShellExecuteEx(&ExecuteInfo) == 0)
  14. {
  15. // erreur
  16. }

fonctionne correctement.
 
Doc MSDN

Citation :

ShellExecuteEx
This function performs an action on a file. The file can be an executable file or a document.
 
WINSHELLAPI BOOL WINAPI ShellExecuteEx(
LPSHELLEXECUTEINFO lpExecInfo );
Parameters
lpExecInfo  
Long pointer to a SHELLEXECUTEINFO structure that contains and receives information about the application being executed.  
Return Value
Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.  
 
Remarks
If the function succeeds, it sets the hInstApp member of the SHELLEXECUTEINFO structure to the instance handle to the application that the function started. If the function fails, hInstApp is one of the SE_ERR_ error values indicating the cause of the failure. (An instance handle will always be greater than 32 and an error value less than 32.) Note that the SE_ERR_ error values are for compatibility with the ShellExecute function; use the GetLastError function to retrieve error information.
 
The error value returned by GetLastError corresponds to the SE_ERR_ values and is one of the values described in the following table.
 
 
Value Description  
ERROR_FILE_NOT_FOUND The specified file was not found.  
ERROR_PATH_NOT_FOUND The specified path was not found.  
ERROR_DDE_FAIL The DDE transaction failed.  
ERROR_NO_ASSOCIATION There is no application associated with the given file name extension.  
ERROR_ACCESS_DENIED Access to the specified file is denied.  
ERROR_DLL_NOT_FOUND One of the library files necessary to run the application can’t be found.  
ERROR_CANCELLED The function prompted the user for the location of the application, but the user canceled the request.  
ERROR_NOT_ENOUGH_MEMORY There is not enough memory to perform the specified action.  
ERROR_SHARING_VIOLATION A sharing violation occurred.  
 

Reply

Marsh Posté le 12-06-2006 à 23:15:08    

Et bin la, merci énormément !!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed