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

Windows Discussion :

Création de raccourcis - c


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Création de raccourcis - c
    Bonjour, j'aurai besoin que mon programme crée des racourcis, je me suis donc penché sur les codes fournit par microsoft pour cette action. J'ai donc fait un copier coller tout bête au départ, seulement le code passais aps, donc il m'a fallu éssayer de comprendre chaque fonction, ce qui n'est pas plus mal d'ailleur, pour voir ce qui marche pas (maintenant j'ai compris ).
    Donc maintenant le code se compile bien, et la fonction marche.... Oui mais elle fonctionne aléatoirement...

    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
    HRESULT CreateShortcut(LPCSTR lpszPathObj, 
        LPSTR lpszPathLink, LPSTR lpszDesc) 
    { 
        HRESULT hres; 
        IShellLink* psl; 
     
        // Get a pointer to the IShellLink interface.
        CoInitialize(NULL);
        hres = CoCreateInstance(&CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER,
                                &IID_IShellLink, (LPVOID *)&psl); 
        if (SUCCEEDED(hres)) { 
    
            IPersistFile* ppf; 
     
            // Set the path to the shortcut target, and add the 
            // description. 
            psl->lpVtbl->SetPath(psl, lpszPathObj);
            psl->lpVtbl->SetDescription(psl, lpszDesc); 
     
           // Query IShellLink for the IPersistFile interface for saving the 
           // shortcut in persistent storage. 
            hres = psl->lpVtbl->QueryInterface(psl, &IID_IPersistFile, 
                (LPVOID *)&ppf); 
     
            if (SUCCEEDED(hres)) { 
                WORD wsz[MAX_PATH]; 
     
                // Ensure that the string is ANSI. 
                MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, 
                    wsz, MAX_PATH); 
    
     
                // Save the link by calling IPersistFile::Save. 
                hres = ppf->lpVtbl->Save(ppf, wsz, TRUE); 
                ppf->lpVtbl->Release(ppf); 
            } 
            psl->lpVtbl->Release(psl); 
        } 
        CoUninitialize();
        return hres; 
    }
    En fait la fonction fonctionne... quand elle veux. Je tourne sous windows XP, mais j'ai une install de 98 qui traine sur une partition, c'est pour ça que vous allez voir dans la suite des choses "bizzares".

    J'ai éssayer de cérer des raccourcis sur quelques éxécutables, et les euls sur lesquels j'ai réusi à créer le racourcis, c'est COMMAND.COM et ntdetect.com...

    J'ai éssayé de créer des racourcis sur d'autres fichier, le racourcis est bien créé (le fichier éxiste), mais il n'est pas considéré comme un racourci... je comprend pas

    Donc si quelqu'un a le secret qui pourrais m'aider à arriver à mes fins, je le prie de bien vouloi daigner me prêter un petit peu d'aide, et je le remercie d'avance.

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    qq infos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Remarks
    
    Note  The IShellLink interface has an ANSI version (IShellLinkA) and a Unicode version (IShellLinkW). The version that will be used depends on whether you compile for ANSI or Unicode. However, Microsoft Windows 95 and Windows 98 only support IShellLinkA.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Bon, après plusieurs éssais, je ne peux créer des raccourcis que sur des .com, et pas sur des .exe
    Bizzare...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Bon, euh patapay.
    C'était tout bête, le fichier doit comporter une extansion lnk (et non ink).
    La fonction ci-dessus est donc purement fonctionnelle...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de raccourci indésirable
    Par dedelph dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/04/2008, 09h08
  2. [PB 6.5] Création de raccourci clavier
    Par cagoule dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 06/02/2007, 15h36
  3. Problème de création de raccourci clavier (Ctrl+O)
    Par Milowen dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2006, 18h31
  4. Copie/Création de raccourci
    Par miron dans le forum Windows
    Réponses: 2
    Dernier message: 04/08/2006, 18h41
  5. Création de raccourci clavier
    Par Atomikx dans le forum MFC
    Réponses: 2
    Dernier message: 13/11/2005, 18h28

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