Bonjour,
euh... question bête mais je ne trouve pas de fonction permettant en C de créer un raccourci d'un fichier et obtenir ce raccourci .lnk...
Bonjour,
euh... question bête mais je ne trouve pas de fonction permettant en C de créer un raccourci d'un fichier et obtenir ce raccourci .lnk...
Je ne l'ai jamais fait auparavant, donc je ne peux pas beaucoup vous aider. En revanche, voici ce que j'ai trouvé dans ma doc. Cela pourra peut-être vous fournir un point de départ pour savoir où chercher.
.Applications can also create and use shell links and shortcuts. For example, a word processing application might create a shell link to implement a list of the most recently used documents. An application creates a shell link by using the IShellLink interface to create a shell link object and uses the IPersistFile or IPersistStream interface to store the object in a file or stream
....
Because the design of shell links is based on the OLE Component Object Model (COM), you should be familiar with the basic concepts of COM and OLE programming before reading this overview.
Merci pour ton aide mais ça résoud pas mon problème.
Je cherche une fonction qui à partir d'un nom en .lnk et d'un fichier .txt par exemple va créer le raccourci .lnk vers le .txt
J'ai essayé avec la fonction SHCreateHardLink mais ça me crée un fichier sans extention au lieu de .lnk et il ne pointe vers rien du tout...
si non tu peux utiliser un execve();
Une super fonction qui fais exatement ce que tu lui donne en parametres,
man execve![]()
Me dites pas qu'il n'y a pas de fonction de l'API Windows capable de faire sans se taper une vingtaine de lignes![]()
Je ne sais pas s'il y a des fonctions Win32 qui font ca mais d'habitude on utilise les interfaces IShellLink et IPersistFile (shlobj.h) qui sont fournis par le shell.
Exemple : créer un raccourci C:\\raccourci.lnk du fichier C:\\cible.txt
Penser à ajouter les tests d'erreur ...
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 #include <windows.h> #include <shlobj.h> int main() { IShellLink * pISL; IPersistFile * pIPF; CoInitialize(NULL); CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (PVOID *)&pISL); pISL->SetPath("C:\\cible.txt"); pISL->QueryInterface(IID_IPersistFile, (PVOID *) &pIPF); pIPF->Save(L"C:\\raccourci.lnk", FALSE); pIPF->Release(); pISL->Release(); CoUninitialize(); return 0; }
Partager