[C++] Creer des raccouris dans le menu demarrer

Creer des raccouris dans le menu demarrer [C++] - Programmation

Marsh Posté le 13-11-2001 à 08:31:45    

Voila voila...
 
Je pensais que ce serait vite fait, et j'ai fait un tour de tout ce qui tournait autour de shortcut, et la rien du tout en ce qui concerne ce que je veux faire :??:
 
Alors je lance un S.O.S :)
 
Merci d'avance ;)

Reply

Marsh Posté le 13-11-2001 à 08:31:45   

Reply

Marsh Posté le 13-11-2001 à 09:32:58    

Avec l'API Win32, je sais pas comment faire. Par contre, sur le CD de VisualC++ 6.0 (et antérieurs aussi j'pense), ou sur le net, tu dois pouvoir trouver une démo de installshield. En fait, tu peux le programmer en une sorte de C, ms avec l'interface graphique, tu peux faire les trucs les plus simples: créer des répertoires, et aussi créer des raccourcis dans le menu démarer (c tout simple à mettre en place)

Reply

Marsh Posté le 13-11-2001 à 09:34:27    

Ben ca tombe bien parce que dans la version professionelle que j'ai y a justement ce programme.
Par contre je sais pas si ca correspond vraiment a ce que je recheche.
 
J'vais y reflechir et je repasse

Reply

Marsh Posté le 13-11-2001 à 09:35:35    

Bah ça te permet de créer un setup qui fera tt ce qu'il faut pour l'install de ton truc...

Reply

Marsh Posté le 13-11-2001 à 09:42:24    

Ben le pb c'est que c'est un peu plus complique que ca.
Je dois installer des dll dans un rep, et le rep je dois le recuperer de la base de registres. Bref ca risque d'etre un sacre bordel, parce qu'apparemment InstallShield installe juste d'apres ton nom de prog et de societe.

Reply

Marsh Posté le 13-11-2001 à 09:53:08    

:-) non, il install pas Juste d'après ça :D. Tu peux TOUT choisir ton répertoire d'install, qd même ! ET puis tu peux faire tout ce que tu veux avec install shield, puisqu'il génère du code C (qui est un peu déroutant au début, ms on s'y fait). Et t'accède au code généré sans pb. Y a donc pas de raison que tu puisse pas y ajouter des p'tits RegCreateKeyEx
 et tout l'toutim !

Reply

Marsh Posté le 13-11-2001 à 09:54:45    

euh paske t'appelle ca du C toi ??? :D
 
Alors au pire je regarde c'est koi les fonctions pour creer des shortcut, ce sera encore plus simple parce q'un gros install comme ca pour le peu que j'ai a faire...

Reply

Marsh Posté le 13-11-2001 à 09:57:15    

C'est du C ! Seulement, les bibliothèques qu'il utilise sont particulières... Et la fonction, je sais pas de que ç'est. Mais de toute façon, ça m'étonnerai que tu puisses l'utiliser avec autre chose qu'installShield.

Reply

Marsh Posté le 13-11-2001 à 09:59:16    

ah merde.
 
C'est quand meme zarb ce truc !
En plus il veut bien installer que des exe apparemment, pour ma dll il plante.

Reply

Marsh Posté le 13-11-2001 à 10:01:53    

bah c pas possible. Lui il s'en tape que ça soit une dll ou un exe, il copie (ou décompresse), c tout !

Reply

Marsh Posté le 13-11-2001 à 10:01:53   

Reply

Marsh Posté le 13-11-2001 à 10:03:07    

Ben lorsqu'il me dit de choisir 1 fichier, il me propose que .exe.
Je ruse pour choper ma dll, mais il chie un peu apres.
Enfin c'est pas grave je connais pas encore le logiciel, je vais essayer tout ca.

Reply

Marsh Posté le 13-11-2001 à 10:03:38    

Au fait tu penses que je peux creer des raccourcis avec des parametres ?
 
(il faut que je cree un raccourci ie avec une adresse en argument)

Reply

Marsh Posté le 13-11-2001 à 10:06:21    

En plus j'arrive pas a prendre + de 1 fichier.
Je crois que je vais me taper l'aide parce que la ca craint.

Reply

Marsh Posté le 13-11-2001 à 10:09:17    

ouais, parce que je t'assure qu'il peut copier plus d'un fichier, même si c pas des éxécutables !:D

Reply

Marsh Posté le 13-11-2001 à 10:10:00    

J'vais essayer de chopper un tut :D

Reply

Marsh Posté le 13-11-2001 à 10:17:34    

merde je dois avoir une vieille version, en operating system j'ai que 95/NT, pourtant on a achete VC++6.0 y a un mois.

Reply

Marsh Posté le 13-11-2001 à 11:26:24    

Bon j'avance un peu mais l'installshield me dit qu'il y a des options qu'on ne peut pas utiliser dans la version pour VC++6.0 edition.

Reply

Marsh Posté le 13-11-2001 à 11:31:56    

...surtout que c une version de Démo !
Mais, t'as vu !? c pas si mal comme outil...

 

[edtdd]--Message édité par El_Gringo--[/edtdd]

Reply

Marsh Posté le 13-11-2001 à 11:33:08    

Putain a 5000 balles la version pro ils auraient pu foutre autre chose qu'une demo dans le pack M$ !!!
 
Et a mon avis la boite a pas envie de foutre 5000 balles pour un prog de setup !
 
Effectivement c'est pas mal, j'en suis pas arrive au bout encore mais c'est deja pas trop mal :)

 

[edtdd]--Message édité par Godbout--[/edtdd]

Reply

Marsh Posté le 13-11-2001 à 11:35:00    

Mais bon c'est ce que je redoutais, je suis oblige de passer par un prog qu'il faut acheter pour faire des pauvres raccourcis, tu me vois dire a mon patron: "Ben si vous voulez des raccourcis, il faut payer 5000 balles, parce que en C++ y a pas de fonctions pour en faire !"
 
Je passe pour un incompetent la !

Reply

Marsh Posté le 13-11-2001 à 13:51:04    

Va faire un tour là :
http://www.javaside.com/fr/rbl_rins.html
ce programme basique d'installation est livré avec ses sources en C et crée des raccourcis.
Bon courage pour lire tout le source...
A+

Reply

Marsh Posté le 13-11-2001 à 14:32:28    

J'ai parcouru le code, et :ouch:
Je sais pas ou il fait ses raccourcis le mec.
 
Sinon on m'a file ca comme info mais bon...
 
Adding Shortcuts to the Start Menu
 
To add an item to the Programs submenu on Microsoft® Windows NT® 4.0,
Windows® 2000 and later, or Windows® 95 and later, follow these steps.
1. Create a Shell link by using the IShellLink interface.  
2. Obtain the PIDL of the Programs folder by using
SHGetSpecialFolderLocation, passing CSIDL_PROGRAMS
<JavaScript:link_CSIDL.Click()> .  
3. Add the Shell link to the Programs folder. You can also create a
folder in the Programs folder and add the link to that folder.  
For systems prior to Windows NT 4.0 and Windows 95, use the Shell dynamic
data exchange interface to add items to the Programs submenu of the Start
menu, just as you would use it to add items to a group in Program Manager.

Reply

Marsh Posté le 13-11-2001 à 16:25:43    

Bon pour l'hsitoire du menu demarrer c'est bon je m'en suis sorti, par contre je sais toujours pas comment creer un raccourci avec des lignes de commandes...

Reply

Marsh Posté le 14-11-2001 à 08:26:24    

apparemment faut que je cree un fichier lnk et que j'edite hexa.
Et apparemment tlm s'en tape aussi...:(

Reply

Marsh Posté le 14-11-2001 à 08:47:31    

Godbout a écrit a écrit :

apparemment faut que je cree un fichier lnk et que j'edite hexa.
Et apparemment tlm s'en tape aussi...:(  



tu t'es donné la solution, faut utiliser IShellLink ...
 
http://msdn.microsoft.com/library/ [...] ellnk1.asp
 
http://msdn.microsoft.com/library/ [...] ellnk2.asp

Reply

Marsh Posté le 14-11-2001 à 08:50:08    

Le pb c'est que j'ai pas tout capte aussi et comme j'ai l'habitude de partir dans des directions qui me menent a rien...
J'vais quand meme jeter un coup d'oeil

Reply

Marsh Posté le 14-11-2001 à 08:57:25    

si tu maîtrises le copier coller ... :D
 
HRESULT CreateShortCut::CreateIt(LPCSTR pszShortcutFile, LPSTR pszLink,  
  LPSTR pszDesc)
{
    HRESULT hres;
    IShellLink* psl;
 
    // Get a pointer to the IShellLink interface.
    hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
                            IID_IShellLink, &psl);
    if (SUCCEEDED(hres))
    {
       IPersistFile* ppf;
 
       // Query IShellLink for the IPersistFile interface for  
       // saving the shell link in persistent storage.
       hres = psl->QueryInterface(IID_IPersistFile, &ppf);
       if (SUCCEEDED(hres))
       {    
         WORD wsz[MAX_PATH];
 
         // Set the path to the shell link target.
         hres = psl->SetPath(pszShortcutFile);
 
         if (!SUCCEEDED(hres))
           AfxMessageBox("SetPath failed!" );
 
         // Set the description of the shell link.
         hres = psl->SetDescription(pszDesc);
 
         if (!SUCCEEDED(hres))
           AfxMessageBox("SetDescription failed!" );
 
         // Ensure string is ANSI.
         MultiByteToWideChar(CP_ACP, 0, pszLink, -1, wsz, MAX_PATH);
 
         // Save the link via the IPersistFile::Save method.
         hres = ppf->Save(wsz, TRUE);
     
         // Release pointer to IPersistFile.
         ppf->Release();
       }
       // Release pointer to IShellLink.
       psl->Release();
    }
    return hres;
}

Reply

Marsh Posté le 14-11-2001 à 08:57:34    

bah tu rigoles ou quoi !? t'as un sample ou la création de raccourcis est montrée ! c pas si compliqué qd même .

Reply

Marsh Posté le 14-11-2001 à 09:00:49    

Ouais mais je l'ai pas encore vu le sample, je ne m'etais pas penche sur le truc, la je suis en train de le lire.
Merci pour le code youdontcare mais je crois que je vais essayer de capter avant :D

Reply

Marsh Posté le 14-11-2001 à 09:01:08    

Pis arreter de m'engueuler merde :D

Reply

Marsh Posté le 14-11-2001 à 09:06:30    

hé... faut que t'y mettes du tient aussi :D

Reply

Marsh Posté le 14-11-2001 à 09:12:30    

Godbout a écrit a écrit :

Ouais mais je l'ai pas encore vu le sample, je ne m'etais pas penche sur le truc, la je suis en train de le lire.
Merci pour le code youdontcare mais je crois que je vais essayer de capter avant :D  



c'est typiquement le genre de trucs que tu n'as pas besoin de comprendre pour l'utiliser. ça sort de la msdn, y'a le code de gestion d'erreur inclus. t'as un boulot à finir, finis-le.  
 
si tu essayes de comprendre ce bout de code, ça veut dire comprendre COM, ça veut dire se taper des centaines (au sens propre) de pages avant de capter qq chose. non pas que COM soit inintéressant à comprendre, bien au contraire ... c'est une question de priorités.

Reply

Marsh Posté le 14-11-2001 à 09:27:46    

Ouais mais le gros copier coller comme ca je supporte pas, je prefere lire les deux articles, essayer de comprendre un peu meme si je peux pas tout comprendre.
 
Mais c'est bon merci ;)

Reply

Marsh Posté le 14-11-2001 à 09:28:28    

El_Gringo a écrit a écrit :

hé... faut que t'y mettes du tient aussi :D  




 
Surtout que je me donne la solution :crazy:
 
Le pb c'est que j'avais matte dans le msdn, mais pas sur le net, et sur le net c'est bcp plus complet.

Reply

Marsh Posté le 14-11-2001 à 09:31:18    

youdontcare tu pourrais me dire comment tu as trouve ces deux adresses parce que quand je tape IShellLink je ne les trouve pas, je crois que je ne dois pas bien chercher.

Reply

Marsh Posté le 14-11-2001 à 09:34:47    

google ! si tu n'utilises pas google, c'est normal que tu galères ... ;)
 
http://www.google.com/search?q=ishelllink
 
et si tu veux chercher spécifiquement sur la msdn, tu cherches
 
IShellLink site:msdn.microsoft.com  
 
http://www.google.com/search?q=ish [...] rosoft.com
 
ce qui te sort le premier lien, le deuxième faisant partie de la page trouvée.

Reply

Marsh Posté le 14-11-2001 à 09:37:45    

Ok c'est super sympa comme info ;)
Ca me sera surement tres utile, j'en doute pas.
 
Merci bcp !! ;)

Reply

Marsh Posté le 14-11-2001 à 09:39:44    

ha, c malin en fait: utiliser l'interpréteur de google pour chercher dans la msdn. c tout bête ms j'y avais pas pensé :D

Reply

Marsh Posté le 14-11-2001 à 09:42:51    

El_Gringo a écrit a écrit :

ha, c malin en fait: utiliser l'interpréteur de google pour chercher dans la msdn. c tout bête ms j'y avais pas pensé :D  



oui, j'ai vu ça sur www.joelonsoftware.com (très bon site d'ailleurs).
 
le moteur de la msdn est vraiment A CHIER ...

Reply

Marsh Posté le 14-11-2001 à 09:48:28    

Apparemment y a des types qui vont pas dans les arguments des fonctions, faut que je bidouille tout ca, ca va encore etre beau :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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