2013-04-05 81 views
0

由于内存问题,我正在使用由制造商“切片”的Win Ce 5.0。它启动一个应用程序(一个使用Platform Builder制作的BIN图像),它会消耗一些内存。如何在WinCe中查找进程ID?

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

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

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

愿意提供我的观点和荣誉谁可以帮我:)


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

USB连接 - 复位后 - 不工作(它作为检测AT9S81) - 用于闪光装置 - 用于闪光装置 - - 后设备 - 不工作(检测为AT9S81)它需要一些时间来检测作为活动同步(PROTOTYPE - 请记住,改变idVendor)

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

+0

做一个谷歌搜索'C#windows CE如何按名称查找进程ID'这里有一个我为你做的http://social.msdn.microsoft.com/forums/en-US/vssmartdevicesnative/thread/7148cbdc -401a-4727-a9db-fe0c704a303b – MethodMan 2013-04-05 15:32:58

+0

试过这个。所有的MSDN技巧和窍门都经过测试。我正在寻找更多的黑客攻击手段,因为我无法通过本书做到这一点。 – siranen 2013-04-05 15:36:29

+0

您可以使用VS 2008开发WinCE 5.0应用程序吗?我记得对于WinCE 7.0使用的是VS 2008,对于WinCE 6.0使用的是VS 2005,我期望WinCE 5.0可以使用VS的早期版本。 – garzanti 2013-04-05 15:40:54

回答

1

你是说你有一个旧的,不受支持的CE设备,你正在尝试使用?

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

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

+0

你可以帮助我使用可能的Platform Builder配置吗? – siranen 2013-04-08 08:40:28