2009-07-23 23 views

Respuesta

21

Application.ExecutablePath

System.Windows.Forms.Clipboard

System.Media. *

Application.Exit

+2

Probablemente sean correctos para una aplicación de formularios de Windows –

2

esto puede no ser exactamente lo lo que está buscando, pero en caso de que quiera tomar un atajo, si agrega una referencia al ensamblado Microsoft.VisualBasic, puede usar las ingeniosas herramientas que los programadores de VB tienen acceso a través del espacio de nombres MyServices.

+0

buen atajo, pero sí, estaba buscando alternativas universales. Estoy seguro de que esto ayudará a alguien. –

3

Si va a convertir una aplicación de WPF, puede utilizar la siguiente:

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

Creo que el mar RCH es esta 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

Estos My.Application.Info.DirectoryPath AppDomain.CurrentDomain.BaseDirectory dieron respuestas diferentes para mí. La respuesta correcta parece ser GetFilePath (System.Reflection.Assembly.GetExecutingAssembly.Location) – user2728841

2

De descompilación Microsoft.VisualBasic.dll, el código real que se ejecuta cuando se llama a My.Application.Info.DirectoryPath es:

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

es exactamente lo mismo que:

My.Application.Info.DirectoryPath 

Si solo do:

Application.ExecutablePath 

Obtendrá el archivo de ejecución adjunto a la ruta, que puede no ser útil en absoluto.

+0

De acuerdo con [Scuzzlebutt] (http://stackoverflow.com/a/36102900/1677912), esto no es correcto. El método GetParent devuelve un objeto DirectoryInfo, no una ruta (cadena). Necesita utilizar la propiedad FullName para obtener realmente la ruta. En lugar de 'System.IO.Directory.GetParent (Application.ExecutablePath)', use 'System.IO.Directory.GetParent (Application.ExecutablePath) .FullName'. – Mogsdad