Clipper On Line • Ver Tópico - Executar processos sem usar .BAT, ShellExecute ou vbScripts

Executar processos sem usar .BAT, ShellExecute ou vbScripts

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Executar processos sem usar .BAT, ShellExecute ou vbScripts

Mensagempor rochinha » 30 Jul 2018 13:19

Amiguinhos,

Eis uma função da API do Windows para a execução de comandos em linha usando CreateProcess:
/*
* Função: Executar processos sem usar .BAT, ShellExecute ou vbScripts
* por Jose Carlos da Rocha
* em 30/Julho/2018
*/

#include "fivewin.ch"

Function main()

   //Desativa o serviço de audio do windows
   ? "MY_CreateProcess( 1, 'net stop Audiosrv')",;
   MY_CreateProcess( 1, "net stop Audiosrv")
   
   //Inicia o serviço de audio do windows
   ?"MY_CreateProcess( 1, 'net start Audiosrv')",;
   MY_CreateProcess( 1, "net start Audiosrv")

return

#pragma BEGINDUMP
   #include <windows.h>
   #include <hbapi.h>
   #include <stdio.h>
   #include <tchar.h>
   HB_FUNC( MY_CREATEPROCESS )
   {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    if( !CreateProcess( NULL,   // No module name (use command line)
        hb_parc(2),        // Command line
        NULL,              // Process handle not inheritable
        NULL,              // Thread handle not inheritable
        FALSE,             // Set handle inheritance to FALSE
        CREATE_NO_WINDOW,  // No creation flags
        NULL,              // Use parent's environment block
        NULL,              // Use parent's starting directory
        &si,               // Pointer to STARTUPINFO structure
        &pi )              // Pointer to PROCESS_INFORMATION structure
       )
       {
        printf( "Criaçao de Processo falhou (%d).\n", GetLastError() );
        return;
       }
    // Wait until child process exits.
    WaitForSingleObject( pi.hProcess, INFINITE );

    // Close process and thread handles.
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
   }
#pragma ENDDUMP


No exemplo foi necessário executar em usuário com direitos elevados para que o comando de tratamento de serviços fosse efetivo.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Executar processos sem usar .BAT, ShellExecute ou vbScripts

Mensagempor Eric.Developer » 28 Ago 2018 05:32

vocês adoram sobrecarregar os sistemas com códigos redundantes :%
isso já tem na sua ferramenta :-[ incluindo as ações: "aguardar" e "terminar" ....

Vou lhe dar outra sugestão para ignorar.... quando vocês postarem alguma dica, coloque "DICA: xxxxx", isso ajuda um pouco a identificar DICAS x QUESTÕES, aqui nesse fórum tudo é misturado, muito ruim.

rochinha escreveu:Eis uma função da API do Windows para a execução de comandos em linha usando CreateProcess:

No exemplo foi necessário executar em usuário com direitos elevados para que o comando de tratamento de serviços fosse efetivo.
Avatar de usuário

Eric.Developer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 31 Ago 2010 22:16
Curtiu: 0 vez
Mens.Curtidas: 8 vezes

Executar processos sem usar .BAT, ShellExecute ou vbScripts

Mensagempor alxsts » 28 Ago 2018 13:30

Olá!

Para distinguir dicas de questões, exite a seção Contribuições, Dicas e Tutoriais
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Executar processos sem usar .BAT, ShellExecute ou vbScripts

Mensagempor rochinha » 30 Ago 2018 13:37

Amiguinhos,

E quando a dica, contribuição for específica para Fivewin?

Vou também colocar em Dicas... não vai ficar mais misturado ainda?

Se não me engano um dos primeiros a usar FERRAMENTAS: blablabla, DICAS: blablabla ou ETC: blablabla foi o casa aqui. Tô Serto?!?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Executar processos sem usar .BAT, ShellExecute ou vbScripts

Mensagempor rochinha » 30 Ago 2018 14:46

Amiguinhos,

hazael
Antes do forum ter as divisões que hoje tem, realmente ficava confusa a busca. Tinhamos de ficar acompanhando os tópicos. E muitas vezes nas minhas postagens eu colocava títulos para seccionar.

Hoje com as divisões, postagens numa seção é referente aquela seção e pronto. Dúvidas podem ser genéricas mas Dicas nem sempre são.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro