Wie kann ich den Namen des ausführenden .exe-Datei?
-
09-06-2019 - |
Frage
Die Compact Framework unterstützt nicht die Montage.GetEntryAssembly zu bestimmen, die gestartet wird .exe.So gibt es einen anderen Weg, um den Namen des ausführenden .exe-Datei?
EDIT:Ich fand die Antwort auf Peter Foot blog: http://peterfoot.net/default.aspx Hier ist der code:
byte[] buffer = new byte[MAX_PATH * 2];
int chars = GetModuleFileName(IntPtr.Zero, buffer, MAX_PATH);
if (chars > 0)
{
string assemblyPath = System.Text.Encoding.Unicode.GetString(buffer, 0, chars * 2);
}
[DllImport("coredll.dll", SetLastError = true)]
private static extern int GetModuleFileName(IntPtr hModule, byte[] lpFilename, int nSize);
Lösung
Ich bin mir nicht sicher, ob es funktioniert, die von verwaltetem code (oder auch die compact framework), aber in der Win32-aufrufen können Sie GetModuleFileName zu finden, der Laufenden exe-Datei.
Andere Tipps
string exefile = Assembly.GetExecutingAssembly().GetName().CodeBase;
Aber wenn man es in eine DLL-assembly, ich glaube, es wird geben Sie die assembly-Datei-Namen.
Das gleiche fordern die "Full" framework würde zurückgeben .exe-Datei mit "file:\" Präfix.
In managed code, ich glaube, diese können Sie verwenden:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.executablepath.aspx
Anwendung.ExecutablePath