Compact Framework不支持Assembly.GetEntryAssembly来确定启动.exe。 那么有另一种方法来获取正在执行的.exe的名称吗?

编辑:我在Peter Foot的博客上找到答案: 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);

===============>>#1 票数:4 已采纳

我不确定它是否适用于托管代码(甚至是紧凑的框架),但在Win32中,您可以调用GetModuleFileName来查找正在运行的exe文件。

MSDN:GetModuleFileName

===============>>#2 票数:1

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

但是如果你把它放在DLL程序集中,我相信它会给你汇编文件名。

“Full”框架上的相同调用将返回带有“file:\\”前缀的.exe文件。

===============>>#3 票数:0

在托管代码中,我认为你可以使用它: http//msdn.microsoft.com/en-us/library/system.windows.forms.application.executablepath.aspx

Application.ExecutablePath

  ask by Jack Snipes translate from so

未解决问题?本站智能推荐:

2回复

获取exe文件的版本而不在.NET Compact Framework中加载

我有一个在.NET Compact Framework 3.5上运行的移动应用程序和在同一平台上运行的更新程序。 当用户点击应用程序快捷方式时,更新程序应用程序首先运行并检查是否有新版本的主应用程序。 是可用的。 为此,我使用Assembly.LoadFrom方法加载主exe程序集并获取当
1回复

WinCE删除应用程序仍然在启动时调用EXE

我有一些问题从CE设备卸载我的应用程序。 我的应用程序初始化SHCreateShortcut(@“\\ Windows \\ StartUp \\ Daemon.lnk”,“\\”“+”Program Files \\ Daemon \\ Daemon.exe“+”\\“”)有一个SHCr
2回复

删除Windows ce上的执行文件

我想在Windows CE上制作一个卸载程序。 问题是我要在执行所有其他操作后删除卸载程序本身。 这有可能吗? 还是有某种方法可以使您变得别开生面?
1回复

表单加载后如何执行代码(Compact Framework 3.5)?

我们希望在窗体加载到Win CE 5.0驱动的设备上后执行代码。 正在使用.NET Compact Framework 3.5(C#)开发该应用程序。 我尝试处理Shown事件 ,不幸的是,该事件未包含在Compact Framework中(据我所知)。 有类似的功能吗?
1回复

启动后立即在Win CE中执行.net应用程序

我想在WinCE OS启动后立即执行我们的应用程序,该应用程序是在Compact Framework中编写的。 我们已经有了这个功能。 但问题是我能够在应用程序开始运行之前看到WinCE桌面2-3秒,我不希望这种情况发生。 我们系统的用户不应该看到桌面。 可能是什么原因? 这是否意味着
2回复

如何获取.NET Compact Framework中所有已加载程序集(引用)的编程列表

我在Windows CE上运行并使用Compact Framework。 我需要获取我的应用程序已加载的所有引用程序集的列表。 能够访问这些程序集的AssemblyName(对象)会很高兴。 一个例子就像通过执行以下操作来获取正在运行的程序集:Assembly.GetExecuting
2回复

在哪里部署配置文件和exe文件?

我的问题很简单,我有一个在WinCE上运行的设备。 该设备是附加的闪存磁盘设备,因此我应将config和exe文件部署在哪里? 在闪存盘上还是在%PROGRAM FILES%中? 此外,我添加了一个XML设置文件作为“新元素”,因此它出现在“属性”部分(请参见屏幕截图),如何在设备上部
2回复

exe无法在Windows CE 5.0模拟器中启动

我正在为运行windowce CE的设备开发移动应用程序。 我正在尝试在Windows CE模拟器上启动我的应用程序。 在模拟器上,我安装了net Compact Framework 3.5和Compact SQL。 我的应用程序也可以从cab成功安装,但是当我尝试运行我的应用程序时,没有
1回复

已安装的.exe使用手持设备上的哪些位置作为其依赖文件?

我有一种奇怪的情况:我正在处理的项目的旧.exe在手持设备上运行。 新版本则不需要(甚至完全相同的代码也没有添加)。 即使在一个手持设备上运行的.exe也不会在另一手持设备上运行。 见这对一些血淋淋的细节。 基于此 ,我认为我可以找出问题所在。 但是此PC实用程序告诉我该
2回复

为什么我的模拟器部署失败并显示“该进程无法访问文件,因为该文件正在被另一个进程使用”?

我正在将Windows CE解决方案从.NET 1.1移植到3.5 我能够“部署”(一次)(到Pocket PC 2003 SE Emulator),然后运行.exe,该文件失败并显示错误消息。 关闭仿真器后,我在导致问题的构造函数中的Visual Studio 2008 IDE中放