Bueno desde hace rato esta en versión beta y ahora han liberado la versión release, y con esta soporta el C# 3, y bueno como tenemos pendiente por allí lo del manual de C#, lo usaremos para poder probarlo, así que acá les dejo el link de descarga http://www.go-mono.com/mono-downloads/.
Se ve venir el Visual Studio 2010, la verdad es que aún no he probado de lleno el 2008 y veo venir ya el 2010, según el estudio dice que únicamente el 20% de código en la mayoría de las aplicaciones es nuevo, algo que es bastante interesante puesto, que no me había puesto a pensar eso, y también se menciona la que ha mejorado en Ajax UI, también tendremos que darle una vista a esto y algo que ayudará bastante al desarrollo, que hay 22 controles dentro del desarrollo de Ajax, espero lo disfruten.
Hola,bueno este codigo lo que hace es chequear si un proceso esta corriendo o no,usa una funcion que retorna un valor Boolean(verdadero o falso) segun se detecte si se esta ejecutandose…en este caso al apretar un boton chequea como proceso la calculadora de windows cuyo nombre de proceso es CALC.EXE, ustedes reemplazenlo por el que quieran saber…
Option Explicit
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
Private Declare Function GetModuleBaseName Lib "PSAPI.DLL" Alias "GetModuleBaseNameA" (ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Private Const PROCESS_VM_READ = &H10
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Function EstaCorriendo(ByVal NombreDelProceso As String) As Boolean
Const MAX_PATH As Long = 260
Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long
Dim sName As String
NombreDelProceso = UCase$(NombreDelProceso)
ReDim lProcesses(1023) As Long
If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then
For N = 0 To (lRet \ 4) - 1
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N))
If hProcess Then
ReDim lModules(1023)
If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then
sName = String$(MAX_PATH, vbNullChar)
GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH
sName = Left$(sName, InStr(sName, vbNullChar) - 1)
If Len(sName) = Len(NombreDelProceso) Then
If NombreDelProceso = UCase$(sName) Then EstaCorriendo = True: Exit Function
End If
End If
End If
CloseHandle hProcess
Next N
End If
End Function
Private Sub Command1_Click()
MsgBox EstaCorriendo("calc.exe")
End Sub