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

C++Builder Discussion :

raccourcis sur le bureau


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut raccourcis sur le bureau
    J'ai cherché dans le forum, pour metre un raccourcis sur le bureau, et j'ai découvert le code suivent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        HRESULT hres;
        IShellLink* psl;
        WORD wsz[MAX_PATH];
     
        CoInitialize(NULL);
        hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,
                                     IID_IShellLink, (LPVOID *)&psl);
     
        if (SUCCEEDED(hres))
           {
            IPersistFile* ppf;
     
            psl->SetPath("C:\\Windows\\calc.exe");
            psl->SetDescription("Calculatrice");
     
            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
     
            MultiByteToWideChar(CP_ACP, 0,"C:\\Windows\\Bureau\\Calc.lnk", -1,
                                                  (LPWSTR)wsz, MAX_PATH);
     
           ppf->Save((LPWSTR)wsz, TRUE);
           ppf->Release();
           }
         psl->Release();
         CoUninitialize();
    J'ai adapté le code a ma fenetre, mais pb, il n'accepte pas ma chaine de caractère pour la localisation du raccourcis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
                    HRESULT hres;
                    IShellLink* psl;
                    WORD wsz[MAX_PATH];
                    CoInitialize(NULL);
                    hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);
                    if (SUCCEEDED(hres))
                    {
                            IPersistFile* ppf;
                            psl->SetPath(step3->Edit1->Text + "PackCIS.exe");
                            psl->SetDescription("PackCIS");
                            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
                            MultiByteToWideChar(CP_ACP, 0,step3->CheminSpecialFolder(CSIDL_STARTMENU) + "\\Cav\\PackCIS\\PackCIS.lnk", -1, (LPWSTR)wsz, MAX_PATH);
                            ppf->Save((LPWSTR)wsz, TRUE);
                            ppf->Release();
                   }
                   psl->Release();
                   CoUninitialize();

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Si tes dossiers ne sont pas créé, il se peut qu'il ne l'accepte pas, as tu un message d'erreur ?
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    As tu essayer, en passant par un AnsiString avant, puis de le faire passer a ta fonction ?

    Dans un premier temps, je penserai a probleme de /, car dans la fonction CheminSpecialFolder y'a qu'en a 1 alors qu'il faudrai les doubler

    lanonyme

  4. #4
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    psl->SetPath(step3->Edit1->Text + "PackCIS.exe");
    Essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AnsiString chemin = step3->Edit1->Text + "PackCIS.exe";
    psl->SetPath(chemin.c_str());
    et pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MultiByteToWideChar(CP_ACP,0,step3->CheminSpecialFolder(CSIDL_STARTMENU) + "\\Cav\\PackCIS\\PackCIS.lnk", -1, (LPWSTR)wsz, MAX_PATH);
    essayes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AnsiString Lien = step3->CheminSpecialFolder(CSIDL_STARTMENU) + "\\Cav\\PackCIS\\PackCIS.lnk";
    MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
    + + +

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    Alors, les dossiers sont crées, et voila, j'utiise le code la, il se complie, mais rien n'apparait dans les deux destinations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    //Création du raccourci dans le menu démarrer
            if (step3->CheckBox1->Checked == false)
            {
                    //Code Internet pour la création du raccourci bureau
                    HRESULT hres;
                    IShellLink* psl;
                    WORD wsz[MAX_PATH];
                    CoInitialize(NULL);
                    hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);
                    if (SUCCEEDED(hres))
                    {
                            IPersistFile* ppf;
                            AnsiString chemin = ExtractFilePath(Application->ExeName) + "PackCIS.exe";
                            psl->SetPath(chemin.c_str());
                            psl->SetDescription("PackCIS");
                            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
                            AnsiString Lien = step3->CheminSpecialFolder(CSIDL_STARTMENU) + "\\Cav\\PackCIS\\PackCIS.lnk";
                            MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
                            ppf->Save((LPWSTR)wsz, TRUE);
                            ppf->Release();
                   }
                   psl->Release();
                   CoUninitialize();
            }
            ProgressBar1->Position++;
            //Création du raccourcis sur le bureau
            if (step3->CheckBox2->Checked == true)
            {
                    //Code Internet pour la création du raccourci bureau
                    HRESULT hres;
                    IShellLink* psl;
                    WORD wsz[MAX_PATH];
                    CoInitialize(NULL);
                    hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);
                    if (SUCCEEDED(hres))
                    {
                            IPersistFile* ppf;
                            AnsiString chemin = ExtractFilePath(Application->ExeName) + "PackCIS.exe";
                            psl->SetPath(chemin.c_str());
                            psl->SetDescription("PackCIS");
                            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
                            AnsiString Lien = step3->CheminSpecialFolder(CSIDL_DESKTOP) + "PackCIS.lnk";
                            MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
                            ppf->Save((LPWSTR)wsz, TRUE);
                            ppf->Release();
                   }
                   psl->Release();
                   CoUninitialize();
            }

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    Bon, j'avais quelques erreurs, mais apres correction, j'ai reussis a 50% : l'icone sur le bureau, n'est pas,mais a la place, il met l'icone dans le menu démarrer, l'icone dans le startmenu\prog\cav\ink est ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
            //Création du raccourci dans le menu démarrer
            if (step3->CheckBox1->Checked == false)
            {
                    //Code Internet pour la création du raccourci bureau
                    HRESULT hres;
                    IShellLink* psl;
                    WORD wsz[MAX_PATH];
                    CoInitialize(NULL);
                    hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);
                    if (SUCCEEDED(hres))
                    {
                            IPersistFile* ppf;
                            AnsiString chemin = ExtractFilePath(Application->ExeName) + "\\CISPack.exe";
                            psl->SetPath(chemin.c_str());
                            psl->SetDescription("CISPack");
                            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
                            AnsiString Lien = step3->CheminSpecialFolder(CSIDL_STARTMENU) + "\\Programmes\\Cav\\CISPack\\CISPack.lnk";
                            MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
                            ppf->Save((LPWSTR)wsz, TRUE);
                            ppf->Release();
                   }
                   psl->Release();
                   CoUninitialize();
            }
            ProgressBar1->Position++;
            //Création du raccourcis sur le bureau
            if (step3->CheckBox2->Checked == true)
            {
                    //Code Internet pour la création du raccourci bureau
                    HRESULT hres;
                    IShellLink* psl;
                    WORD wsz[MAX_PATH];
                    CoInitialize(NULL);
                    hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);
                    if (SUCCEEDED(hres))
                    {
                            IPersistFile* ppf;
                            AnsiString chemin = ExtractFilePath(Application->ExeName) + "\\CISPack.exe";
                            psl->SetPath(chemin.c_str());
                            psl->SetDescription("CISPack");
                            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
                            AnsiString Lien = step3->CheminSpecialFolder(CSIDL_DESKTOP) + "\\CISPack.lnk";
                            MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
                            ppf->Save((LPWSTR)wsz, TRUE);
                            ppf->Release();
                   }
                   psl->Release();
                   CoUninitialize();
            }

  7. #7
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Citation Envoyé par Galkir
    Bon, j'avais quelques erreurs, mais apres correction, j'ai reussis a 50% : l'icone sur le bureau, n'est pas,mais a la place, il met l'icone dans le menu démarrer, l'icone dans le startmenu\prog\cav\ink est ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
            //Création du raccourci dans le menu démarrer
            if (step3->CheckBox1->Checked == false)
            {
                    //Code Internet pour la création du raccourci bureau
                    HRESULT hres;
                    IShellLink* psl;
                    WORD wsz[MAX_PATH];
                    CoInitialize(NULL);
                    hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);
                    if (SUCCEEDED(hres))
                    {
                            IPersistFile* ppf;
                            AnsiString chemin = ExtractFilePath(Application->ExeName) + "\\CISPack.exe";
                            psl->SetPath(chemin.c_str());
                            psl->SetDescription("CISPack");
                            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
                            AnsiString Lien = step3->CheminSpecialFolder(CSIDL_STARTMENU) + "\\Programmes\\Cav\\CISPack\\CISPack.lnk";
                            MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
                            ppf->Save((LPWSTR)wsz, TRUE);
                            ppf->Release();
                   }
                   psl->Release();
                   CoUninitialize();
            }
            ProgressBar1->Position++;
            //Création du raccourcis sur le bureau
            if (step3->CheckBox2->Checked == true)
            {
                    //Code Internet pour la création du raccourci bureau
                    HRESULT hres;
                    IShellLink* psl;
                    WORD wsz[MAX_PATH];
                    CoInitialize(NULL);
                    hres = CoCreateInstance(CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,IID_IShellLink, (LPVOID *)&psl);
                    if (SUCCEEDED(hres))
                    {
                            IPersistFile* ppf;
                            AnsiString chemin = ExtractFilePath(Application->ExeName) + "\\CISPack.exe";
                            psl->SetPath(chemin.c_str());
                            psl->SetDescription("CISPack");
                            psl->QueryInterface(IID_IPersistFile,(LPVOID *)&ppf);
                            AnsiString Lien = step3->CheminSpecialFolder(CSIDL_DESKTOP) + "\\CISPack.lnk";
                            MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
                            ppf->Save((LPWSTR)wsz, TRUE);
                            ppf->Release();
                   }
                   psl->Release();
                   CoUninitialize();
            }
    Tu as encore un CSIDL_START_MENU ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     AnsiString Lien = step3->CheminSpecialFolder(CSIDL_STARTMENU) + "\\Programmes\\Cav\\CISPack\\CISPack.lnk";
    MultiByteToWideChar(CP_ACP,0,Lien.c_str(), -1, (LPWSTR)wsz, MAX_PATH);
    + + +

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    bah si tu parle du code dans la première moitié, c'est normal, car c'est le code de création du raccourci dans le menu demarrer

  9. #9
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Citation Envoyé par Galkir
    bah si tu parle du code dans la première moitié, c'est normal, car c'est le code de création du raccourci dans le menu demarrer
    oups
    + + +

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Points : 89
    Points
    89
    Par défaut
    Bon, je croi que je vais abandonner cette idée de faire mon prog d'installation, car j'ai lu d'autre post, (en cherchant comment configurer les icones de fichier dans window a l'installatio du prog) et j'ai essayer Inno Setup (qui m'a l'air sympa).

    merci quad même

Discussions similaires

  1. Réponses: 11
    Dernier message: 14/08/2006, 00h13
  2. application installant un raccourci sur le bureau
    Par ricotrutt dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 24/07/2006, 15h23
  3. Créer un raccourci sur le bureau
    Par NdmaX dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/04/2006, 17h21
  4. Raccourci sur le bureau
    Par AlDel dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 07/03/2005, 17h07
  5. Raccourci sur le bureau
    Par senateur dans le forum Langage
    Réponses: 7
    Dernier message: 05/09/2002, 15h17

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