2009-07-23 4 views

Répondre

21

Application.ExecutablePath

System.Windows.Forms.Clipboard

System.Media. *

Application.Exit

+2

Ce sont probablement corrects pour une application Windows Forms –

2

Cela peut ne pas être exactement ce que Vous recherchez, mais juste au cas où vous voulez prendre un raccourci, si vous ajoutez une référence à l'assembly Microsoft.VisualBasic, vous pouvez utiliser les outils astucieux que les programmeurs VB ont accès via l'espace de noms MyServices.

+0

bon raccourci, mais oui, je cherchais des alternatives universelles. Je suis sûr que cela aidera quelqu'un. –

3

Si vous convertissez une application WPF, vous pouvez utiliser le suivant:

System.Reflection.Assembly.GetExecutingAssembly().Location; 
//gets file path with file name 

System.Windows.Clipboard; 

System.Media.SystemSounds.[Sound].Play(); 

System.Windows.Application.Current.Shutdown(); 
0

Je pense que vous mer RCH est cette phrase:

Application.StartupPath; 
//Get file path without file name. 
3
My.Application.Info.DirectoryPath 
    AppDomain.CurrentDomain.BaseDirectory 

My.Computer.Clipboard 
    System.Windows.Clipboard //(WPF) 
    System.Windows.Forms.Clipboard //(WinForms) 

My.Computer.Audio.PlaySystemSound() 
    System.Media.SystemSounds.*.Play() 

My.Application.Shutdown() 
    System.Windows.Forms.Application.Exit() //(WinForms) 
    or 
    System.Windows.Application.Current.Shutdown() //(WPF) 
    or 
    System.Environment.Exit(ExitCode) //(Both WinForms & WPF) 
+0

Ces My.Application.Info.DirectoryPath AppDomain.CurrentDomain.BaseDirectory ont donné des réponses différentes pour moi. La bonne réponse semble être GetFilePath (System.Reflection.Assembly.GetExecutingAssembly.Location) – user2728841

2

De décompiler Microsoft.VisualBasic.dll, le code réel qui est exécuté lors de l'appel My.Application.Info.DirectoryPath est:

Path.GetDirectoryName(
    new AssemblyInfo(
     Assembly.GetEntryAssembly() ?? Assembly.GetCallingAssembly()).Location); 
1
System.IO.Directory.GetParent(Application.ExecutablePath) 

est exactement le même que:

My.Application.Info.DirectoryPath 

Si vous seulement faire:

Application.ExecutablePath 

Vous obtiendrez le fichier d'exécution ajouté au chemin, ce qui peut ne pas être utile du tout.

+0

Selon [Scuzzlebutt] (http://stackoverflow.com/a/36102900/1677912), ce n'est pas correct. La méthode GetParent renvoie un objet DirectoryInfo, pas un chemin (chaîne). Vous devez utiliser la propriété FullName pour obtenir le chemin. Au lieu de 'System.IO.Directory.GetParent (Application.ExecutablePath)', utilisez 'System.IO.Directory.GetParent (Application.ExecutablePath) .FullName'. – Mogsdad