Ouvrir un fichier

Résolu
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007 - 21 mars 2007 à 17:32
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007 - 23 mars 2007 à 20:46
Bonjour à toute et à tous
j'ai crée une fenetre windows avec dev-C++, je cherche le code à ajouter avant return 0 si possible pour ouvrir un fichier par exemple xls aprés l'affichage de la fenetre que j'ai crée.
Merci d'avance

27 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 mars 2007 à 14:56
Faire un projet Win32 GUI au lieu d'un projet console, tu n'auras ainsi rien à fermer.

ciao...
BruNews, MVP VC++
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
22 mars 2007 à 15:08
Si tu as une console qui s'affiche, c'est que tu utilises mon code je
suppose. utilise celui de BruNews plutôt, le mien doit faire au moins
un shellexecute par la routine system, et un autre par la routine
start...


Et clique sur réponse acceptée svp.
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 mars 2007 à 18:21
Salut,


Si tu veux faire du portable, tu peux par exemple commencer par la (c)stdio.

Pour ouvir un fichier.

Toutes les commandes sont listées à droites.

Des cours et tutos C/C++.


Tu peux aussi faire ça en Win32 aussi par exemple.
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
21 mars 2007 à 19:35
Salut rt 15
Merci pour ta réponse,mais j'ai pas bien compris, voici mon code c++ pour afficher la fenetre windows, peut-tu svp lui ajouter le code pour ouvrir un fichier toto.xls, car je suis debutant en c++
Merci
code:
#include <windows.h>


/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


/*  Make the class name into a global variable  */
char szClassName[ ] = "kelme";


int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)


{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */


    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);


    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;


    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;


    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "kelme",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           800,                 /* The programs width */
           600,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );


    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);


    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }


    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}




/*  This function is called by the Windows function DispatchMessage()  */


LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }


    return 0;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
21 mars 2007 à 20:32
Re bonsoir
je vais être clair sur se que je veux, en principe pour ouvrir un fichier.xls il faut cliquer sur son icone, est- il possible avec un code c++ dire à Excel.exe ouvre le fichier toto.xls
aprés l'affichage de la fenetre windows créer avec dev-c++
Merci 
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mars 2007 à 21:42
ShellExecute()

ciao...
BruNews, MVP VC++
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
21 mars 2007 à 22:11
Re BruNews
Merci pour ta reponse, ou je met SellExecute, sur q'el ligne
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mars 2007 à 22:16
Après ShowWindow par exemple.

ciao...
BruNews, MVP VC++
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
21 mars 2007 à 22:34
Re BruNews


il ya 3 jours je casse la tête sur le mûr, et la connection internet chez nous çà coute très chair, SVP avec mille merci donne moi le code complel, je suis perdu
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mars 2007 à 22:48
ShellExecute(0, "open", "CheminEtNomFichier.xls", 0, 0, SW_SHOWNORMAL);

ciao...
BruNews, MVP VC++
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
21 mars 2007 à 23:04
Re bonsoir BruNews


J’ai essayer ton code après la compilation, la fenetre windows est affichier , mais le fichier.xls ne s’ouvre pas


Voici se que j’ai fait


ShowWindow (hwnd, nFunsterStil);<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>




    ShellExecute(0, "open", "C:\\Program Files\\toto.xls", 0, 0, SW_SHOWNORMAL);




 
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mars 2007 à 23:09
Il devrait s'ouvrir.

ciao...
BruNews, MVP VC++
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
21 mars 2007 à 23:23
Re
pas de resultat, voici le chemin de mon fichier "C:\Program Files \kelme\toto.xls"
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
22 mars 2007 à 10:07
Bonjour à tous
Bonjour BruNews
aprés la compilation et l'execution, il y'a 2 fenetre ouvert, une fenetre windows que j'ai crée avec dev-c++, et une autre fenetre noir comme la fenetre dos, mais le fichier xls ne s'ouvrir pas.existe il une solution.voir la procédure suivant s'il existe une erreur
ShellExecute(0, "open", "C:\\Program Files\\kelme\\toto.xls", 0, 0, SW_SHOWNORMAL);<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>

 
Merci d'avance 
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
22 mars 2007 à 12:33
Erf j'avais pas compris le même ouvrir, désolé.


C'est bizarre ton problème... Tu es sûr de sûr de ton chemin ?


Essaie ça à tout hasard, avec une include de stdlib.h :


Mais bon, si l'autre marche pas, celui là devrait pas marcher non plus.
(Une fenêtre DOS apparaîtra avant l'ouverture du fichier)


system("start "" "C:\\Program Files\\kelme\\toto.xls"");
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
22 mars 2007 à 14:09
Bonjour rt 15
Merci pour ta reponse, j'ai essayer ton code, la fenêtre Dos apparaîtra, mon fichier ne s'ouvrir pas,  il y'a le message suivant :
(Windows ne trouve pas 'C:\Program Files\kelme\toto.xls' verifiez que vous avez entré le nom correctement et essayez à nouveau).
je suis sûr du chemin et du nom de mon fichier, peut être la commande executer dans menu demarrer en cause, j'ai essayer avec elle pour ouvrir un fichier toujour le même message, si se là, comment régler le problèmme.
Merci
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
22 mars 2007 à 14:41
Re
ops,excusé moi, j'ai trouver l'erreur, il y'a un espace sur nom du fichier (to to.xls),maintenent ça marche, merci beaucoup à vous tous.
une petite question SVP comment fermer la fenêtre DOS automatiquement aprés l'ouverture de mon fichier.
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
22 mars 2007 à 19:51
Bonsoir BruNews, Bonsoir rt 15, avec les 2 code ça marche aprés avoir corriger le non de mon fichier, pour mon projet c'est Win 32, mais la fenêtre Windows reste afficher aprés l'ouverture de mon fichier xls.
Merci à vous deux
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 mars 2007 à 20:09
Compile ça en mode C et config RELEASE, exe fera 2.5 Ko et aucune fenêtre.

#define _WIN32_WINNT 0x0501
#include <windows.h>


char szfile[] = "C:\\Program Files\\kelme\\toto.xls";
char szopen[] = "open";


#pragma comment(linker, "/entry:myWinMain")
__declspec(naked) int __stdcall myWinMain()
{
  __asm {
    push    SW_SHOWNORMAL
    push    0
    push    0
    push    offset szfile
    push    offset szopen
    push    0
    call    dword ptr ShellExecute
    push    0
    call    dword ptr ExitProcess
  }
}

ciao...
BruNews, MVP VC++
0
cs_kelme Messages postés 22 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 28 mars 2007
22 mars 2007 à 20:52
Re
BruNews
j'ai compiler ton code en mode C, il y'a une erreur
sur la ligne 9 : [Warring]'naked' attribute directive ignored
sur la ligne 11: Syntaxe error before "push"
0
Rejoignez-nous