以下function可以找到非汉字的进程,比如 notepad.exe ,但如果是汉字就找不到,如:记事本.exe
代码如下:我跟踪过ExtractFileName(FProcessEntry32.szExeFile)的值,到了 记事本.exe 时,就出来个乱码,不能和“记事本.exe”配对。。大家帮帮忙。function  MyFun_GetProcessID(ProcessName:  string):  Cardinal;
var  
   FSnapshotHandle:  THandle;  
   FProcessEntry32:  TProcessEntry32;  
   Ret:  Boolean;  
   TmpProcessName:  string;  
   TmpProcessID:  DWORD;  
begin  
   TmpProcessID  :=  0;                                        //如果没有找到  
   //创建系统快照  
   FSnapshotHandle  :=  CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,  0);  
   //先初始化  FProcessEntry32  的大小  
   FProcessEntry32.dwSize  :=  SizeOf(FProcessEntry32);  
   Ret  :=  Process32First(FSnapshotHandle,  FProcessEntry32);  
   //循环枚举出系统开启的所有进程,找出“ProcessName”所指定的进程  
   while  Ret  do  
   begin  
       TmpProcessName  :=  ExtractFileName(FProcessEntry32.szExeFile);
       if  TmpProcessName  =  ProcessName  then
       begin  
           TmpProcessID  :=  FProcessEntry32.th32ProcessID;  
           Break;  
       end;  
       Ret  :=  Process32Next(FSnapshotHandle,  FProcessEntry32);
   end;  
   CloseHandle(FSnapshotHandle);  
   Result  :=  TmpProcessID;  
end;