Ouvrir un fichier [Résolu]

Signaler
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007
-
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007
-
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

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

ciao...
BruNews, MVP VC++
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
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.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
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.
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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;
}
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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 
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
ShellExecute()

ciao...
BruNews, MVP VC++
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

Re BruNews
Merci pour ta reponse, ou je met SellExecute, sur q'el ligne
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Après ShowWindow par exemple.

ciao...
BruNews, MVP VC++
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
ShellExecute(0, "open", "CheminEtNomFichier.xls", 0, 0, SW_SHOWNORMAL);

ciao...
BruNews, MVP VC++
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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);




 
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Il devrait s'ouvrir.

ciao...
BruNews, MVP VC++
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

Re
pas de resultat, voici le chemin de mon fichier "C:\Program Files \kelme\toto.xls"
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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 
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
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"");
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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.
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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++
Messages postés
22
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
28 mars 2007

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"