在任务管理器中映像名称如果是中文就不能正常显示?
我现在需要判断某个进程是否存在,可要是进程名称为中文
我就无法比较了,请问我该如何处理。谢谢!
我现在需要判断某个进程是否存在,可要是进程名称为中文
我就无法比较了,请问我该如何处理。谢谢!
解决方案 »
- 在中文XP系统下用vb编写韩文程序的问题
- 如何根据网络(外网)时间来校正自己电脑时间
- 直接拖到图标上
- ShellExecute返回的是什么值?如何转换成程序的句柄
- 数据类型不匹配问题
- 请教高手一个应该算简单的问题!
- 为什么用vb的crystal report预先做好的rpt文件当数据更新时,rpt文件不能随之变化呢?有没有一种方法或函数能实现呢?
- 急!谁有现成的VB+SQL的采购管理系统的代码和设计(毕业设计)
- 请问:怎样将一个记录集装载到DataGird控件之中??
- 汉字转化BCD码?
- 怎样将excel表中的内容导入到sqlserver数据库中?
- 璇烽棶濡備綍璇诲彇CPU娓╁害锛熶緥濡俶obmeter灏辫兘璇诲彇寰堝绉嶉厤缃紝杞欢鏈韩鎻愬強閭d箞灏忥紝搴旇鏄‖浠舵棤鍏崇殑
代码如下
Option ExplicitPrivate Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function ExitProcess Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Const LOCALE_STIMEFORMAT = &H1003
Private Const LOCALE_SSHORTDATE = &H1F
Private Const WM_SETTINGCHANGE = &H1A
Private Const HWND_BROADCAST = &HFFFF&Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long'***************************************'获得进程的句柄
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
'终止进程
Private Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, _
ByVal uExitCode As Long) As Long
'创建一个系统快照
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" _
(ByVal lFlags As Long, lProcessID As Long) As Long
'获得系统快照中的第一个进程的信息
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" _
(ByVal mSnapShot As Long, uProcess As PROCESSENTRY32) As Long
'获得系统快照中的下一个进程的信息
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" _
(ByVal mSnapShot As Long, uProcess As PROCESSENTRY32) As LongPrivate Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szexeFile As String * 260&
End Type
Private Const TH32CS_SNAPPROCESS As Long = 2&
Dim mresult
Private Sub cmdRefresh_Click()
doList
End Sub
Private Sub Form_Load()
lvwPrss.ListItems.Clear
lvwPrss.ColumnHeaders.Clear
lvwPrss.ColumnHeaders.Add , , "进程ID", 1500
lvwPrss.ColumnHeaders.Add , , "进程名", 5600
lvwPrss.LabelEdit = lvwManual
lvwPrss.FullRowSelect = True
lvwPrss.HideSelection = False
lvwPrss.HideColumnHeaders = False
lvwPrss.View = lvwReport
End Sub
Private Sub Form_Activate()
doList
End Sub
'listview的大小随窗体变化
Private Sub Form_Resize()
lvwPrss.Move 0, 0, Me.ScaleWidth - cmdRefresh.Width, Me.ScaleHeight
cmdRefresh.Move lvwPrss.Width - lvwPrss.Left
cmdDelete.Move lvwPrss.Width - lvwPrss.Left
cmdExit.Move lvwPrss.Width - lvwPrss.Left
End SubPrivate Sub doList()
Dim uProcess As PROCESSENTRY32
Dim mSnapShot As Long
Dim mName As String
Dim i As Integer
Dim mlistitem As ListItem
lvwPrss.ListItems.Clear
DoEvents
uProcess.dwSize = Len(uProcess)
mSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
If mSnapShot Then
mresult = ProcessFirst(mSnapShot, uProcess)
'失败则返回false
Do While mresult
i = InStr(1, uProcess.szexeFile, Chr(0))
mName = LCase$(Left$(uProcess.szexeFile, i - 1))
Set mlistitem = lvwPrss.ListItems.Add(, , Text:=uProcess.th32ProcessID)
mlistitem.SubItems(1) = mName
mresult = ProcessNext(mSnapShot, uProcess)
Loop
End If
cmdDelete.Enabled = (lvwPrss.ListItems.Count > 0)
End Sub'强行终止当前进程
Private Sub cmdDelete_Click()
If lvwPrss.ListItems.Count = 0 Then
Exit Sub
End If
If MsgBox("真的终止" & lvwPrss.Name & " 进程吗?", vbYesNo + vbQuestion) <> vbYes Then
Exit Sub
End If
Dim mProcID As Long
mProcID = OpenProcess(1&, -1&, lvwPrss.SelectedItem)
TerminateProcess mProcID, 0&
DoEvents
lvwPrss.ListItems.Remove (lvwPrss.SelectedItem.Index)
lvwPrss.Refresh
End Sub
'显示错误信息
Sub ErrMsgProc(mMsg As String)
MsgBox mMsg & vbCrLf & Err.Number & Space(5) & Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload Form1
End Sub
我用的是windows2000 高级服务器版
我试过了!中文不能正确显示.
我用的是windows2000 高级服务器版
======================
那么有没有试过访问wmi的win32_process????
我的程序是在打了SP6的VB里开发编译的。
这个方法是很不错。
是这样的。我们头让按照系统设计作。
设计上让我从一个ini文件中读取要升级程序的名称
然后判断进程是否存在。呵呵!