Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 22-06-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
force1758,

Cita:
Empezado por Wikipedia:

Windows Management Instrumentation (WMI)
is a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).

Tomado del link : http://en.wikipedia.org/wiki/Windows...nstrumentation
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ActiveX, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Obtiene Información de un Proceso Activo en Memoria con WMI
function GetProcessInformation(ProcessName : String) : String;
const
   wbemFlagForwardOnly = $00000020;

var
   FSWbemLocator : OLEVariant;
   FWMIService : OLEVariant;
   FWbemObjectSet : OLEVariant;
   FWbemObject : OLEVariant;
   oEnum : IEnumvariant;
   iValue : LongWord;
   SQLWMI : String;

begin

   FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

   FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');

   SQLWMI := 'SELECT Name, ProcessId, Caption, ExecutablePath FROM Win32_Process Where Name = ' + QuotedStr(ProcessName);

   FWbemObjectSet := FWMIService.ExecQuery(SQLWMI,'WQL',wbemFlagForwardOnly);

   oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;

   if oEnum.Next(1, FWbemObject, iValue) = 0 then
   begin
      Result := String(FWbemObject.ExecutablePath);
      FWbemObject:=Unassigned;
   end
   else
      raise Exception.Create('El Programa No Se Encuentra Activo en Memoria');

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage(Format('El Path del Programa en Disco es: %s',[GetProcessInformation('notepad.exe')]));
end;

end.
El código anterior es una variante de la solución mostrada en el Msg #2 utilizando la Clase Win32_Process de WMI como se sugirió en el Msg #3.

Nota: WMI es un medio muy versátil para obtener y manejar informacion en Windows, en el ejemplo de hace un Select a cuatro propiedades de la Clase Win32_Process (Aunque solo se requiere la propiedad ExecutablePath) como una muestra de las capacidades de WMI.

Te sugiero revisar estos links:
Cita:
Windows Management Instrumentation : http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

WMI Delphi Code Creator : http://theroadtodelphi.wordpress.com...-code-creator/
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 22-06-2013 a las 09:51:52.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Detectar proceso en ejecucion C++ dmartinezn C++ Builder 6 28-08-2012 22:07:16
Controlar la ejecución de un proceso satelier.martin Varios 3 14-04-2011 01:35:33
Como Terminar La Ejecucion De Un Proceso kurono Varios 2 01-02-2008 17:10:44
Parar ejecucion de un proceso trohan Varios 3 01-02-2008 17:05:18
¿Cómo saber la ubicación del ejecutable que levantó un proceso? Alcolea Windows 1 24-11-2007 22:58:43


La franja horaria es GMT +2. Ahora son las 23:41:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi