4.27.2010

列出所有執行中的 process name - in CE

如果是在 Windows XP/NT/2000 etc 會用 enumprocessmodule 這類的 RAPI。
但是在 CE 裡面這些 function 好像不 support。

CodeGuru 這一篇文章有 example,藥用 CreateToolhelp32Snapshot( )。
OS 要有 Core OS Services 的 Debugging Tools 的 Toolhelp API

MSDN 這一篇有說明 (要 toolhelp.lib)

sample code 是:

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>


#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
PROCESSENTRY32 pe32 = { 0 };

HANDLE hProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcSnap == INVALID_HANDLE_VALUE)
return 0;


pe32.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(hProcSnap,&pe32))
{
do{
wprintf(L"PID:%9d NAME: %s\r\n", pe32.th32ProcessID, pe32.szExeFile);
}while(Process32Next(hProcSnap, &pe32));
}

CloseHandle(hProcSnap);

return 0;
}


輸出的結果是:

PID: 4194306 NAME: NK.EXE
PID: 30736390 NAME: udevice.exe
PID: 41418754 NAME: udevice.exe
PID: 62521346 NAME: udevice.exe
PID: 79429634 NAME: udevice.exe
PID: 92995586 NAME: servicesd.exe
PID: 82313222 NAME: explorer.exe
PID: 97910798 NAME: enumallprocessconsole.exe

4.23.2010

Windows 喔,應該是防毒軟體的錯..

不過這應該不算是Windows 的錯:

McAfee錯誤更新 澳洲連鎖超商停業

其實收銀機這樣的東西應該不須要用Windows。
還裝防毒軟體的意義不知道是什麼?

收銀機可以 上 msn ? 可以讓 店員 run 自己的軟體?



倒是有一堆ATM都是用 windows ,要是有問題就糟了

read data from debug port

有關由 debugport 輸入讀方法, CE blog 又有一篇文章: OEMReadDebugByte in CE6.0

好像是說,以往 5.0 用的 OEMReadDebugByte 不能用了,要改用 nputDebugCharW.

4.21.2010

希臘字母發音

bookmark一下:希臘字母發音


  • α alpha
  • β beta
  • γ gamma
  • δ delta
  • ε epsilon
  • ζ zeta
  • η eta
  • θ theta
  • ι lota
  • κ kappa
  • λ lambda
  • μ mu
  • ν nu
  • ξ xi
  • ο omicron
  • π pi
  • ρ rho
  • σ sigma
  • τ tao
  • υ upsilon
  • φ phi
  • χ chi
  • ψ psi
  • ω omega

4.13.2010

Pre-Sysgen Build - build public, private folder 中 需要的 (list in _DEPTREE varialbe) project。
這個通作通常不需要作,因為這兩個(public, private) folder 的 code 通常是 build 好的,如果你需要改他,最好是clone出來到自己的 bsp 中

Sysgen -作一堆事,check 把dependent component拉進來,filter some files,generate header, source and files。
這階段的結果會放在 %_PROJECTROOT%\cesysgen\:
  • filter 完的 library放在 oak\lib, sdk\lib, ddk\lib
  • filter 完的 header放在 oak\inc, sdk\inc,ddk\inc
  • 這階段 build好的module(dll) 放在 oak\target
手動起動 sysgen 的方式是: blddemo -q
cesysgen 會花很多時間,如果你只要作某幾個 folder,可以在 %_PROJECTROOT% 目錄下 create 一個 %_TGTPROJ%.bat ,定義需要sysgen 的 subfolder 就可以:
_DEPTREE=winceos



重新enable "File/Symbol not found" Dialog

使用 KITL 來run application 時,如果沒有 pdb 或 pdb 內的path 找不到 source,VS2005 會自動跳出 dialog 要你指定。
但是dialog 下方有一個:disable dialog
按下去後,就在也不會跳出這個 dialog 了,也就是說,再也不會問你 source , pdb 在哪?

如果要再 enable 這個 "自動跳出" 的功能,這一篇 new group 文章有說明..

you can find some debugger options in VS2005.
go to tools -> options -> platform builder for CE -> System debugger ->
verbosity
just check the two messages is enabled
* Source file not found
* Symbols file not found

一團混亂的 Windows CE update and Rn

Windows CE 的 update 真是一團混亂,又有 update, 又有 R1,R2,R3

所謂 R? 不就是update 的總和嗎?
那不就有 年度 rollup ,為什麼還要有 R2, R3 ?

如果是分開的,那麼 裝 R3 update 還需要裝 其他 update 嗎?
如果要,安裝的順序是?

真是一團混亂呀!