【问题标题】:How to find process ID in WinCe?如何在 WinCe 中找到进程 ID?
【发布时间】:2013-03-28 02:17:35
【问题描述】:

我正在使用因内存问题而被制造商“切片”的 Win Ce 5.0。它启动一个消耗一些内存的应用程序(使用 Platform Builder 制作 BIN 图像)。

当我想开始调试时,它会冻结第一个应用程序并启动我一直在开发的新应用程序(VS 2008 Pro)。我不清楚第一个应用程序是否消耗了一些内存(因为我知道一些文件是静态的)并且一些数据点是 STUBBED。

主要问题是,Win Ce 只是一个启动第一个应用程序的引导加载程序。我无法禁用、切换或对其执行任何操作,因为它正在运行并启动 ActiveSync(这是我与 PC / VS 2008 Pro 通信的方式)

请帮我解决一下: 1.如何找到第一个应用程序进程ID(GetProcessById没有工作,GetProcessByName在.Net Ce Framework中不可用) 2.如何处理第一个应用程序加载的所有内存 - 我希望有尽可能多的可用内存) 3.最好的选择是有一个看门狗类来测试第一个应用程序是否没有做任何事情(没有启动任何进程/方法)

愿意将我的积分和荣誉提供给可以帮助我的人:)


另一个问题是 USB 调试:设备有错误的驱动程序(问题)

与设备的 USB 连接 - 重置后 - 不工作(它检测为 AT9S81) - 用于闪烁设备 - 后设备 - 不工作(它检测为 AT9S81) - 用于闪烁设备 - 它需要一些时间来检测为 Active Sync (PROTOTYPE--记得更改 idVendor)

这是操作系统问题/设备驱动程序/Windows 7 问题吗?

【问题讨论】:

  • C# windows CE How to find Process ID by Name 上进行谷歌搜索,这是我为你做的social.msdn.microsoft.com/forums/en-US/vssmartdevicesnative/…
  • 试过这个。所有 MSDN 提示和技巧都经过测试。我看起来更像是一个黑客,因为我不能“按书本”做到这一点。
  • 能用VS 2008开发WinCE 5.0的应用吗?我记得 WinCE 7.0 使用 VS 2008,WinCE 6.0 使用 VS 2005,我希望 WinCE 5.0 使用早期版本的 VS。

标签: c# memory process windows-ce pid


【解决方案1】:

您是说您正在尝试使用旧的、不受支持的 CE 设备吗?

  1. 通过 ToolHelp API 获取进程信息。您必须使用 CF P/Invoke 这些。 SDF 有完整的 ToolHelp 对象,你不想写。
  2. 您不能在另一个进程中“释放”内存。另一个进程管理自己的内存。您可以终止该进程,这会将其所有内存释放给操作系统。
  3. 您打算如何知道其他进程是否在“做任何事情”?如果它没有告诉你它什么时候在做某事,就很难知道它是否正在运行代码(可以通过使用 celog 拦截来查看 OS 调度程序来完成,但这是非常先进的东西,我不会推荐它作为第一个甚至第二个行动方案)。

如果您有权在设备上运行代码,我建议您修改操作系统,使其首先不运行正在运行的任何应用程序。调整 HKLM\Init 注册表项或启动它的任何内容。

【讨论】:

  • 您能帮我解决可能的 Platform Builder 配置吗?
猜你喜欢
  • 2022-01-17
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 2012-10-13
相关资源
最近更新 更多