2009-07-23 14 views

risposta

21

Application.ExecutablePath

System.Windows.Forms.Clipboard

System.Media. *

Application.Exit

+2

Queste sono probabilmente corrette per un'app Windows Form –

2

questo potrebbe non essere esattamente ciò che stai cercando, ma nel caso tu voglia prendere una scorciatoia, se aggiungi un riferimento all'assembly Microsoft.VisualBasic, puoi usare gli ingegnosi strumenti che i programmatori VB hanno accesso tramite lo spazio dei nomi MyServices.

+0

buona scorciatoia, ma sì, stavo cercando alternative universali. Sono sicuro che questo aiuterà qualcuno però. –

3

Se si sta convertendo un'applicazione WPF, è possibile utilizzare il seguente:

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

Penso che tu mare RCH è questa frase:

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

Queste My.Application.Info.DirectoryPath AppDomain.CurrentDomain.BaseDirectory ha dato risposte diverse per me. La risposta corretta sembra essere GetFilePath (System.Reflection.Assembly.GetExecutingAssembly.Location) – user2728841

2

Da decompilazione Microsoft.VisualBasic.dll, il codice vero e proprio che viene eseguito quando si chiama My.Application.Info.DirectoryPath è:

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

è esattamente lo stesso di:

My.Application.Info.DirectoryPath 

Se solo do:

Application.ExecutablePath 

Si otterrà il file di esecuzione aggiunto al percorso, che potrebbe non essere affatto utile.

+0

In base a [Scuzzlebutt] (http://stackoverflow.com/a/36102900/1677912), questo non è corretto. Il metodo GetParent restituisce un oggetto DirectoryInfo, non un percorso (stringa). È necessario utilizzare la proprietà FullName per ottenere effettivamente il percorso. Invece di 'System.IO.Directory.GetParent (Application.ExecutablePath)', usare 'System.IO.Directory.GetParent (Application.ExecutablePath) .FullName'. – Mogsdad