2013-04-05 77 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