2009-07-23 16 views

Odpowiedz

21

Application.ExecutablePath

System.Windows.Forms.Clipboard

System.Media. *

Application.Exit

+2

Prawdopodobnie są poprawne dla aplikacji Windows Forms –

2

To nie może być dokładnie to, którego szukasz, ale na wypadek, gdybyś chciał skorzystać z skrótu, jeśli dodasz wzorzec do zestawu Microsoft.VisualBasic, możesz użyć sprytnych narzędzi, których programiści VB mają dostęp poprzez przestrzeń nazw MyServices.

+0

dobry skrót, ale tak, szukałem uniwersalnych alternatyw. Jestem pewien, że to pomoże komuś. –

3

Jeśli konwersja aplikacji WPF, można użyć podążając za:

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

Myślę, że jesteś morzem RCH jest to zdanie:

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

Te My.Application.Info.DirectoryPath AppDomain.CurrentDomain.BaseDirectory udzielił mi różnych odpowiedzi. Odpowiednią odpowiedzią wydaje się GetFilePath (System.Reflection.Assembly.GetExecutingAssembly.Location) – user2728841

2

Od dekompilacji Microsoft.VisualBasic.dll, rzeczywistego kodu, który zostanie wykonany podczas wywoływania My.Application.Info.DirectoryPath jest:

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

jest dokładnie taka sama, jak:

My.Application.Info.DirectoryPath 

Jeśli tylko do:

Application.ExecutablePath 

Otrzymasz plik wykonywalny dołączony do ścieżki, co może nie być w ogóle użyteczne.

+0

Według [Scuzzlebutt] (http://stackoverflow.com/a/36102900/1677912), nie jest to poprawne. Metoda GetParent zwraca obiekt DirectoryInfo, a nie ścieżkę (łańcuch). Aby uzyskać ścieżkę, musisz użyć właściwości FullName. Zamiast 'System.IO.Directory.GetParent (Application.ExecutablePath)', użyj 'System.IO.Directory.GetParent (Application.ExecutablePath) .FullName'. – Mogsdad