Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
10 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 10 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
Bloquear edição do ListBox

17/6/2010, 15:13 por Julio

Pessoal

Boa Tarde!

Tnho uma listbox apenas para exibir o resultado.
Preciso bloquear a listbox …

Comentários: 17

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 0

COMO ESTÃO DESENVOLVENDO EM WEB?

22/8/2016, 10:48 por AJC

Pessoal, já lí sobre vários topicos aqui no forum sobre desenvolvimento web
mas ainda nada …

Comentários: 2

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 0

dll pertocheck

15/12/2016, 12:45 por FERNANDOMATRELLA

Alguem teria ja desenvolvido a comunicação com essa dll estou tento muito trabalho aqui e nenhum …

Comentários: 1

Estatísticas
Temos 6989 usuários registrados
O último usuário registrado atende pelo nome de rodiney

Os nossos membros postaram um total de 4 mensagens em 2 assuntos

Processos x Visual Foxpro

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Anexo Processos x Visual Foxpro

Mensagem por Marcos Guedes em 13/8/2009, 12:21

Segue um rotina que poderá ser muito útil.
A mesma tem por finalidade listar todos os processos em execução, e também eliminar um processo específico.
Obs: Não fui eu quem fiz!
Código:
#DEFINE process_vm_read              16
#DEFINE process_query_information  1024
#DEFINE dword                          4

DEFINE CLASS processos AS CUSTOM

   *!* Fonte:
   *!* http://www.portalfox.com/index.php?name=News&file=article&sid=1057&mode=nested&order=0&thold=0
   *!* http://www.portalfox.com/index.php?name=News&file=article&sid=329&mode=nested&order=0&thold=0

   HIDDEN csprocesses AS STRING
   HIDDEN csmodules AS STRING

   PROCEDURE prc_listarprocessos AS void
      LPARAMETERS csmodules AS STRING, csprocesses AS STRING
      *!* Lista todos os processos em execução
      *!* Devolve dois cursores com dados relativos aos processos

      m.csmodules = THIS.csmodules
      m.csprocesses = THIS.csprocesses

      *--------------------------------------------------
      *  Módulos y Procesos Ejecutados en NT/W2000
      *--------------------------------------------------
      *  Definición de Variables
      *--------------------------------------------------

      LOCAL lcprocbuf
      LOCAL lnbufsize
      LOCAL lnprocessbufret
      LOCAL lnprocno
      LOCAL lnprocid
      LOCAL hprocess
      LOCAL lcmodbuf
      LOCAL lnmodbufret
      LOCAL lnmodno
      LOCAL lcfilename
      LOCAL lcbasename

      lnbufsize = 4096
      lcprocbuf = REPLI(CHR(0), lnbufsize)
      lnprocessbufret = 0

      IF enumprocesses (@lcprocbuf, lnbufsize, @lnprocessbufret) = 0
         ? "Error code:", getlasterror()
         RETURN
      ENDIF

      *--------------------------------------------------
      *  Cursor de los Procesos ejecutados
      *--------------------------------------------------
      SELECT 0
      CREATE CURSOR (THIS.csprocesses) (procid N(16), hproc N(16), errcode N(6))
      INDEX ON procid TAG procid ASCENDING

      *--------------------------------------------------
      *  Cursor de los Módulos ejecutados
      *--------------------------------------------------
      SELECT 0
      CREATE CURSOR (THIS.csmodules) (procid N(16), hmod N(16), basename c(30), filename c(250))
      INDEX ON basename TAG basename ASCENDING

      FOR lnprocno=1 TO lnprocessbufret/dword
         lnprocid = THIS.buf2dword(SUBSTR(lcprocbuf, (lnprocno-1)*dword+1, dword))
         hprocess = openprocess (process_query_information + process_vm_read, 0, lnprocid)

         IF hprocess  > 0
            INSERT INTO (THIS.csprocesses) VALUES (lnprocid, hprocess, 0)

            lnbufsize = 4096
            lcmodbuf = REPLI(CHR(0), lnbufsize)
            lnmodbufret = 0

            IF enumprocessmodules(hprocess, @lcmodbuf, lnbufsize, @lnmodbufret)  > 0

               FOR lnmodno=1 TO lnmodbufret/dword
                  hmodule = THIS.buf2dword(SUBSTR(lcmodbuf, (lnmodno-1)*dword+1, dword))

                  lcfilename = SPACE(250)
                  lnbufsize = getmodulefilenameex (hprocess, hmodule, @lcfilename, LEN(lcfilename))
                  lcfilename = LEFT(lcfilename, lnbufsize)

                  lcbasename = SPACE(250)
                  lnbufsize = getmodulebasename (hprocess, hmodule, @lcbasename, LEN(lcbasename))
                  lcbasename = LEFT (lcbasename, lnbufsize)

                  INSERT INTO (THIS.csmodules) VALUES (lnprocid, hmodule, lcbasename, lcfilename)
               ENDFOR
            ENDIF
            = closehandle (hprocess)
         ELSE
            *  5 = Acceso denegado
            * 87 = Parametro incorrecto
            INSERT INTO (THIS.csprocesses) VALUES (lnprocid, hprocess, getlasterror())
         ENDIF
      ENDFOR
   ENDPROC

   PROCEDURE prc_eliminarprocesso
   LPARAMETERS tcprocessid as String
      *!* Elimina um processo em execução
      IF VARTYPE(tcprocessid) = 'C' AND NOT EMPTY(tcprocessid)
         loservice = GETOBJECT("winmgmts://./root/cimv2")
         loprocesses = loservice.execquery([SELECT * FROM Win32_Process WHERE Name = '] + ALLTRIM(tcprocessid) + ['])
         FOR EACH loprocess IN loprocesses
            loprocess.TERMINATE(0)
         NEXT
      ENDIF
      RETURN
   ENDPROC

   FUNCTION prc_executando
      LPARAMETERS cnomeexe AS STRING
      *!* Verifica se um executável está em execução

      LOCAL executando AS logical
      LOCAL csVerificar as String

      m.executando = .F.
      m.csVerificar = SYS(2015)

      THIS.prc_listarprocessos()
      USE IN SELECT(THIS.csprocesses) && Deleta o cursor que não será usado

      *!* Procura pelo processo no cursor
      SELECT(THIS.csmodules)
      GO TOP      
      SELECT TOP 1 basename FROM (THIS.csmodules) ;
         WHERE UPPER(basename) = UPPER(m.cnomeexe) ;
         ORDER BY basename INTO CURSOR (m.csVerificar)
         
      *!* Verifica se o processo foi encontrado
      IF RECCOUNT(m.csVerificar)>0 THEN
         m.executando = .T.
      ENDIF
      
      *!* Fecha os cursores
      USE IN SELECT(m.csVerificar)
      USE IN SELECT(THIS.csmodules)
      
      RETURN m.executando
   ENDFUNC


   HIDDEN FUNCTION buf2dword (lcbuffer)
      RETURN ASC(SUBSTR(lcbuffer, 1,1)) + ASC(SUBSTR(lcbuffer, 2,1)) * 256 + ASC(SUBSTR(lcbuffer, 3,1)) * 65536 + ASC(SUBSTR(lcbuffer, 4,1)) * 16777216
   ENDFUNC

   HIDDEN PROCEDURE INIT AS void
      *--------------------------------------------------
      *  Declaración de Funciones API
      *--------------------------------------------------
      THIS.csprocesses = SYS(2015)
      THIS.csmodules = SYS(2015)

      DECLARE INTEGER GetLastError IN kernel32
      DECLARE INTEGER CloseHandle IN kernel32 INTEGER Handle
      DECLARE INTEGER OpenProcess IN kernel32 INTEGER dwDesiredAccessas, INTEGER bInheritHandle, INTEGER dwProcId
      DECLARE INTEGER EnumProcesses IN psapi STRING @ lpidProcess, INTEGER cb, INTEGER @ cbNeeded
      DECLARE INTEGER GetModuleFileNameEx IN psapi INTEGER hProcess, INTEGER hModule, STRING ModuleName, INTEGER nSize
      DECLARE INTEGER GetModuleBaseName IN psapi INTEGER hProcess, INTEGER hModule, STRING @ lpBaseName, INTEGER nSize
      DECLARE INTEGER EnumProcessModules IN psapi INTEGER hProcess, STRING @ lphModule, INTEGER cb, INTEGER @ cbNeeded
   ENDPROC
ENDDEFINE

Como utilizar:
Código:
LOCAL csmodules AS STRING
LOCAL csprocesses AS STRING

STORE "" TO m.csmodules, csprocesses

obj = NEWOBJECT("processos")
*!* Lista todos os processos
obj.prc_listarprocessos(@m.csmodules, @m.csprocesses)
*!* Fecha todos os bloco de notas, caso esteja sendo executado
obj.prc_eliminarprocesso("notepad.exe")
*!* Verifica se o bloco de notas está em execução
?obj.prc_executando("notepad.exe")
obj = NULL

IF USED(m.csmodules) THEN
   SELECT(m.csmodules)
   GO TOP
   BROWSE
   USE IN SELECT(m.csmodules)
ENDIF

IF USED(m.csprocesses) THEN
   SELECT(m.csprocesses)
   GO TOP
   BROWSE
   USE IN SELECT(m.csprocesses)
ENDIF

Fontes: (Copie o link e cole em seu navegador)
portalfox.com/index.php?name=News&file=article&sid=1057&mode=nested&order=0&thold=0

portalfox.com/index.php?name=News&file=article&sid=329&mode=nested&order=0&thold=0


Última edição por Marcos Guedes em 8/7/2010, 23:53, editado 1 vez(es)

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Processos x Visual Foxpro

Mensagem por Tales Ruan em 15/8/2009, 09:22

Muito interessante.

Com certeza me será útil. Valeu!

Tales Ruan
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Anexo Re: Processos x Visual Foxpro

Mensagem por hugo em 7/4/2010, 02:13

legal isto ai

_________________
"A tristeza é a falta de alegria, mais sem ela eu não poderia entender a alegria do fato de que a felicidade existe!"
Helio Leites - [Você precisa estar registrado e conectado para ver este link.]

hugo
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Anexo Re: Processos x Visual Foxpro

Mensagem por mfelis em 7/4/2010, 08:33

boa classe

mfelis
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum