Creer un raccourcis

cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 - 1 déc. 2002 à 17:24
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 - 6 déc. 2002 à 21:56
j'aurai besoin de faire un raccourcis sur le bureau a la fin de l'execution de mon installeur en asm , j'ai rien trouver pour le faire ... il y a forcement une solution (enfin j'espere) :shy)

13 réponses

gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
1 déc. 2002 à 22:02
hehe on dirait que je monopolise le forum lol
alors pr creer un raccourci et ben c pas aussi simple que ca en a l'air

dabord je voudrais savoir si tu c programmer avec l'architecture COM de MS
pk la creation de raccourcis passe obligatoirement par la :/
si tu c faire, regarde du cote de l'interface IShellLink

sinon regarde a cette URL ya un zip qui contient un fichier .obj
http://membres.lycos.fr/garurprog/
ce fichier contient une fonction CreateLink@8 (sous standard stdcall cad quil fo que tu aies specifie ton langage comme etant stdcall avec la directive
.model flat,stdcall ou bien option language:stdcall)
cette fonction prend deux parametres, le premier est une chaine de caracteres au format unicode (dsl mais g fe la fonction en vitesse ya pas la transformation ANSI->unicode :/) qui specifie le nom du fichier et le 2sd est une chaine normale qui donne le chemin du fichier reference
pr que ca marche tu dois faire un call a CoInitialize avant la fonction et CoUninitialize apres la fonction

voila, ya pas la source avec le fichier .obj tt simplement pk g pas eu le tmps de la commenter dc c illisible

jespere que ca te servira (et juste par curiosite, tu utiliseras quel methode de compression pr ton utilitaire d'install ?)
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
2 déc. 2002 à 13:25
bon bah g reuploade une nouvelle version du ZIP, elle contient la mm fonction avec deux ajouts :
- support des chaines au format ANSI (convertion automatique au format unicode) dc maintenant tu passes 2 chaînes a la fonction, la premiere indique le chemin du fichier reference et le 2sd est le nom du fichier link
- ajout du source commente (pas super bien commente mais commente qd mm ;p) je me demande si jaurais pas du le mettre sur codes sources menfin pr ce a quoi ca sert lol

voila prog bien ;)
0
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 1
2 déc. 2002 à 20:54
merci beaucoup , apres avoir chercher dans mes archives de VB j'ai trouvé plus simple :
je la testerai bientot , mais j'ai peur que ca l'oublige a distribuer les DLL de VB ( c'est en partie pour ca que je me sous tourner vers l'assembleur )
------------------------------------------------------

Declare Function fCreateShellLink Lib "VB6STKIT.DLL" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As Long

· lpstrFolderName
folder where to create the link

· lpstrLinkName
text caption for the link

· lpstrLinkPath
full path to the target of the link

· lpstrLinkArguments
command-line arguments for the link

-----------------------------------------------------

mon installation decompresse les fichiers avec unace2.dll telechargable sur www.winace.com

moi aussi j'ai ma petite question , pourquoi tu postes pas de sources ?
avec tout ce que tu sais faire cela m'étonne :D
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
3 déc. 2002 à 13:26
rahhh me faire battre par une vulgaire fonction VB ? ;p lol en plus je suis sur que la fonction est absee sur les mm fondements que la mienne ;)
et c pr ca ke... g decide, de creer une nvelle fonction CreateLinkEx@24 qui prend 6 parametres
declaration style C :

extern "C" long __stdcall CreateLinkEx(
char * lpLinkPath,
char * lpTargetPath,
char * lpDescription,
char * lpCmdLine,
char * lpIconPath,
unsigned long ulIconIndex);

lpLinkPath : chemin complet ou relatif du raccourci
lpTargetPath : chemin complet du fichier référencé
lpDescription : description (peut être NULL)
lpCmdLine : ligne de commande passée au fichier référencé (peut être NULL)
lpIconPath : chemin complet de l'icone du raccourci
ulIconIndex : index de l'icône (ordre dans lequel une icône est déclarée dans le fichier resource script (.rc)) pour un fichier .ico ulIconPath doit avoir al valeur 0

voila cette fois ci g mm rajouter l'icone qui n'est pas ds la fonction VB ;p en plus ma fonction a sa source commentee en francais lol et elle est en pur ASM :) sous forme .obj dc aucun fichier DLL a distribuer avec ton prog :))
non je blague, utilise ce ki t'est le plus pratique ;) mais garde mon prog qd mm, ca peut servir d'exemple d'utilisation des OLE en ASM

bon deux choses si tu vx tester ma fonction n'oublie aps que si tu ne specifies pas le langage stdcall pr l'appel c foutu ;) que deuxiemement il fo rajouter @24 derriere le nom de la fonction (mais normallement il est possible de creer un prototype pr la fonction : CreateLinkEx proto stdcall :dword,:dword,:dword,:dword,:dword,:dword mais pas sur que ca marche) sinon CreateLinkEx existe tjrs mais g rajouter la possibilite de mettre un commentaire (3e argument), aucune icone n'est specifiee si ce n'est celle du fichier lui mm

voila, pr la question euh bah en fait c pk ya bcp de critiks carrement mechantes sur les sites de codes-sources que ca donne pas tjrs envie de poster surtt qd on est un chtit amateur et qui plus est un collegien... rien qua voir certains commentaires on aime pas les gosses ici lol
de ttefacon en realite jen connais bcp moins que tu ne le crois lol enfin si tu trouves que mon source vaut le coup d'etre postee sur ASM-FR dis le moi je la posterais ;)

amuse toi bein avec ton prog ^^

p.s. : euh tu mas tjrs pas dit si tu savais prog avec COM
et deuxiemement il manque qqch a ma fonction (t'aurais ptet remarke) c le dossier de demarage de l'application cible :() mais je px aps le rajouter maintenant dsl g cours, chui collegien lol
le ZIP s'appelle lnk03.zip et est tjrs sur le mm site http://membres.lycos.fr/garurprog/
0

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

Posez votre question
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 1
3 déc. 2002 à 19:38
mon choix n'est pas encore fait pour la fonction que je vais utilisé , en premier je dois tester les 2 :)

tu sais ceux qui postent des critiques méchantes sont le plus souvant jalous , faut pas en tenir compte :)
il y a surement d'autres personnes que moi qui seraient aidés par tes sources :D

je met quoi comme pseudo dans les remerciements de mon installeur ? gblade ? :)

c'est quoi COM exactement ? non je sais pas, j'ai jamais essaier :p
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
3 déc. 2002 à 22:10
bon bah suite a ton conseil g decide de mettre ce source sur AsmFR c la derniere version de cette fonction, elle fait tt ce que l'ancienne faisait masi g rajoute le bout de code manquant pr remplir le champ "démarrer dans :" le champ est automatiquement devine en fonction du chemin du fichier reference ;)
voilou ^^ ah et javais oublie de preciser, les valeurs retorunees sont 0 si aucune erreur et autre si erreur ;) (et ds ce cas la ce seront les erreurs renvoyees par les fonctions appelees lors de l'execution de ma fonction dc ca peut etre tres divers ;) (dsl g pas le temps de te recapituler ici mm les valeurs possibles mais si tu decides de l'employer je ten ferais le detail ;p)
mais n'oublie pas d'appeler CoInitialize avant et CoUninitialize apres ma fonction ;) sinon ca va pas marcher, je pense qu'en VB cette fonction est integree mais je pense qu'il vaut mieux la detacher pr des raisons evidente d'economie du temps (pk si tu cherches a faire plusieurs raccourcis bah ca va appeler plusieurs fois les deux mm fonctions alors qu'un seul appel avant et apres la serie de fonctions suffit)
voila mais c pas grave siu tu l'utilises pas lol elle pourra tjrs te servir comme code d'exemple pr la prog COM ou le passage de parametres pseudo-variables avec le standard stdcall ;)

sinon c pas forcemment vrai que ceux qui font des critiques destructives sont jaloux ;) c juste des ptits pretentieux qui croient connaitre le monde de l'info du haut de leur niveau qui est des fois a peine superieur au mien lol
le probleme n'est pas qu'il y ait beaucoup qui surestime leur niveau, il est dans le fait que beaucoup d'entre eux aiment trop le faire savoir ;)

sinon COM/DCOM est une architecture basee sur la POO developee par MS. dc tu dois t'en douter le langage de predilection pr programmer avec est le C++ (ou le VB a la rigueur car MS a l'air d'aimer ce langage...)
en realite un objet COM n'a pas de proprietes (ou dumoins elles ne nous sont pas visibles), seulement des methodes
la principale particularite de COM est qu'il est base sur un systeme d'interfaces. par exemple on possede un objet IDirectDraw et on veut faire de la 3D bah on demande une nouvelle interface IDirect3D a partir d'IDirectDraw ;) comme ca la nouvelle interface utilisera les mm donnees (et ptet en plus jen c rien car g jms eu l'occasion de m'interesser de pres a la composition des interface COM) que l'ancienne mais avec d'autres methodes.
Tous les objets COM derivent de l'objet IUnknown qui possede 3 methodes qui serve a initialiser une nvelle interface ou encore a liberer un objet
toutes les methodes sont virtuelles, a cela une raison, il est possible de les utiliser ds nimporte quel langage et sur n'importe quel compilo ;) mais le bleme c ke c plus lent que si ct des methodes normales, suffit d'analyser une sequence ASM pr utiliser une methode virtuelle comparee a une methode normale lol
bon ca c le principe, les details ca serait trop long
si ca t interresse ya de tres bons tutos en anglais (en francais c plus rare) mais si tu cherches sur COM ca sera trop vague, penche toi sur les OLE automations (controls d'autres applications) ou DirectX (attention vive la stabilite !)

ah et g oublie de te dire, c gentil de me mettre ds ta liste de remerciements, g pas fait grd chose ^^ mais j'apprecie :)
en fait gblade est la contraction de Garus Blade mon pseudo qd je jouais a T4C ;p dc tu px mettre Garus Blade
0
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 1
3 déc. 2002 à 23:22
oki c'est noté :)
tu étais sur quel serseur pour T4C ?
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
3 déc. 2002 à 23:27
lol on rentre ds le HS 100% mais c pas grave, j'etais sur Feyd ;)
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
3 déc. 2002 à 23:27
HS masi c aps grave, jetais sur Feyd, pkoi tu jouais ?
0
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 1
4 déc. 2002 à 00:19
j'etais sur baazul :p
( bon on arrete le HS , lol )
0
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 1
4 déc. 2002 à 12:10
ca y est j'ai fait mon choix , ce sera ta fonction :)
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
4 déc. 2002 à 12:37
c cool ;) si tu vois des trucs que je pourrais y ajouter dis le moi ;) (ou mieux ajoute le toi mm ^^)
0
cs_Cendra Messages postés 56 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 4 février 2008 1
6 déc. 2002 à 21:56
avant le completer moi meme faudrai que je le comprenne completement , hihi , toute facon c'est tres bien comme ca :)
0
Rejoignez-nous