win32,ruby,列举所有进程
ruby吧
全部回复
仅看楼主
level 9
sevk 楼主

# CStruct Examples ,列举所有进程
require 'windows/tool_helper'
require 'win32struct'
include Windows::ToolHelper
module Windows
MAX_PATH = 260
module ToolHelper
class PROCESSENTRY32 < Win32Struct
DWORD :dwSize
DWORD :cntUsage
DWORD :th32ProcessID
DWORD :th32DefaultHeapID
DWORD :th32ModuleID
DWORD :cntThreads
DWORD :th32ParentProcessID
LONG :pcPriClassBase
DWORD :dwFlags
CHAR :szExeFile,[MAX_PATH]
end
end
end
def show_all_processes
proc_enrty32 = PROCESSENTRY32.new
proc_enrty32.dwSize = PROCESSENTRY32.__size__
snap_handle = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS,0)
if Process32First(snap_handle,proc_enrty32.data)
show_process proc_enrty32
while true
break if !Process32Next( snap_handle,proc_enrty32.data )
show_process proc_enrty32
end
end
end
def show_process proc_enrty32
printf"%20s 0x%08X\n",proc_enrty32.szExeFile.to_cstr,proc_enrty32.th32ProcessID
end
printf"%20s %s\n","<Process Name>","<PID>"
printf"%20s %s\n","--------------","-----"
show_all_processes
http://cstruct.rubyforge.org/examples/show_processes.rb.html
2011年03月02日 05点03分 1
level 1
、Enumerable#group_by():
<%
   employees = Employee.find(:all).group_by{|employee|
     employee.title
   }
%>
<% employees.each do |title, people| %>
   <h2><%= title %></h2>
   <ul>
     <% people.each do |person| %>
       <li><%= person.name %></li>
     <% end %>
   </ul>
<% end %>http://www.sevenmike.com/
2011年03月02日 10点03分 2
1