Сведения о вопросе

NOTtoday

18:49, 28th August, 2020

Теги

Как я могу узнать имя исполняющего ?exe?

Просмотров: 373   Ответов: 3

Компактная платформа не поддерживает Assembly.GetEntryAssembly для определения запуска .exe. Так что есть еще один способ получить имя исполнителя .exe?

EDIT: я нашел ответ в блоге Питера фута: http://peterfoot.net/default.aspx вот код:

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);



  Сведения об ответе

P_S_S

17:59, 27th August, 2020

Я не уверен, работает ли он с управляемым кодом (или даже с compact framework), но в Win32 вы можете вызвать GetModuleFileName, чтобы найти запущенный файл exe.

MSDN: GetModuleFileName


  Сведения об ответе

lats

04:59, 17th August, 2020

string exefile = Assembly.GetExecutingAssembly().GetName().CodeBase;

Но если вы поместите его в DLL assembly, я думаю, что он даст вам имя файла assembly.

Тот же вызов на платформе "Full" вернет файл .exe с префиксом "file:\".


  Сведения об ответе

piter

23:24, 18th August, 2020

В управляемом коде, я думаю, вы можете использовать это: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.executablepath.aspx

Application.ExecutablePath


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться