2010-06-01 5 views
0

J'ai une application .exe écrite en vb.net. Quand je fais des raccourcis vers l'application, dis sur le bureau (ou n'importe où ailleurs) et puis clique dessus je veux programmer le chemin de ce raccourci, c.-à-d. C: /Users/xxx/Desktop/shortcut.lnk.Comment obtenir le chemin d'un raccourci (PAS le chemin cible) dans .net?

Je veux cela pour pouvoir stocker les raccourcis des paires: (programme + args cmd différents).

+0

Avez-vous vu cette autre question: http://stackoverflow.com/questions/1125958/how-do-i-discover-how-my-process-was-started? –

+0

Maintenant, j'ai, mais je ne sais toujours pas comment obtenir ce que je veux. Dim pc Comme PerformanceCounter = New PerformanceCounter ("Process", "Création d'ID de processus", Process.GetCurrentProcess.ProcessName) Dim SDIC Comme Specialized.StringDictionary = Process.GetProcessById (CType (pc.NextValue, Integer)). StartInfo .EnvironmentVariables J'ai essayé ceci et aucune valeur dans sDic ne contient "Desktop" (je mets un raccourci sur mon bureau). – okkko

+0

De http://msdn.microsoft.com/en-us/netframework/aa569609.aspx#Question5: System.WMI Win32_Process a un champ CommandLine. Reportez-vous à la documentation MSDN pour plus de détails sur cette classe. J'ai regardé un peu mais il semble compliqué/je ne sais pas comment le faire .. – okkko

Répondre

1

Votre ordinateur de bureau ne serait pas le processus parent puisque ce n'est pas un processus, je suppose que l'explorateur ou quelque chose le serait s'il démarrait à partir d'un raccourci. La manière la plus simple d'obtenir ce que vous voulez est de changer les raccourcis pour envoyer un paramètre à votre application quand il le lance. Ainsi, par exemple, le raccourci sur le bureau pourrait envoyer la chaîne "desktop". Ensuite, vous pouvez simplement le ramasser comme un paramètre de ligne de commande normal.

Si vous avez déclaré une fonction Main comme:

Public Shared Sub Main(ByVal args As String()) 

Ensuite, il semble que l'une des chaînes dans le paramètre args.

+0

Beaucoup plus simple, alors vous n'avez pas besoin de changer votre exe lorsque vous ajoutez un nouveau raccourci au système. –

Questions connexes