Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
11 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 11 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
Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Tudo dá errado

3/2/2017, 16:50 por Douglas Pascini

Troquei de maquina, achei que seria uma boa, [Você precisa estar registrado e conectado para ver esta imagem.]  pois passei para uma maquina melhor.

Instalei o …

Comentários: 1

URGENTE - Instalação do aplicativo

24/1/2017, 08:51 por Douglas Pascini

Bom dia. Estou com um problema, ao fazer a instalação (colocar os arquivo) do aplicativo na …

Comentários: 0

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: 3

Estatísticas
Temos 7014 usuários registrados
O último usuário registrado atende pelo nome de Jhoniker Braulio (IOTech)

Os nossos membros postaram um total de 20 mensagens em 11 assuntos

Serviços do Windows

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

Anexo Serviços do Windows

Mensagem por Marcos Guedes em 23/8/2009, 23:21

Abaixo segue uma ótima rotina para incluir e remover serviços no windows. (Não fui eu quem fiz!)
Fiz uma pequena adaptação, mas a quem interessar, poderá analisar a rotina original no seguinte link:
- [Você precisa estar registrado e conectado para ver este link.]

Código:
/// <sumary>
/// Fonte: http://www.c-sharpcorner.com/UploadFile/sachin.nigam/InstallingWinServiceProgrammatically11262005061332AM/InstallingWinServiceProgrammatically.aspx
/// </sumary>

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace Servicos
{
    public class InstalarServico
    {
        private string caminhoServico = "";
        private string nomeServico = "";
        private string nomeExibicao = "";
        private string mensagemStatus = ""; // Armazena o status da operação
        private TextBox txtStatus = null;


        #region Importando DLL's
        [DllImport("advapi32.dll")]
        private static extern IntPtr OpenSCManager(string lpMachineName, string lpSCDB, int scParameter);

        [DllImport("Advapi32.dll")]
        private static extern IntPtr CreateService(IntPtr SC_HANDLE, string lpSvcName, string lpDisplayName,
            int dwDesiredAccess, int dwServiceType, int dwStartType, int dwErrorControl, string lpPathName,
            string lpLoadOrderGroup, int lpdwTagId, string lpDependencies, string lpServiceStartName, string lpPassword);

        [DllImport("advapi32.dll")]
        private static extern void CloseServiceHandle(IntPtr SCHANDLE);

        [DllImport("advapi32.dll")]
        private static extern int StartService(IntPtr SVHANDLE, int dwNumServiceArgs, string lpServiceArgVectors);

        [DllImport("advapi32.dll", SetLastError = true)]
        private static extern IntPtr OpenService(IntPtr SCHANDLE, string lpSvcName, int dwNumServiceArgs);

        [DllImport("advapi32.dll")]
        private static extern int DeleteService(IntPtr SVHANDLE);

        [DllImport("kernel32.dll")]
        private static extern int GetLastError();
        #endregion

        public void setCaminhoServico(string caminho)
        {
            /**
            * Altera o caminho do serviço
            */
            this.caminhoServico = caminho;
        }
                     
        public void setNomeServico(string nome)
        {
            /**
            * Altera o nome do serviço
            */
            this.nomeServico = nome;
        }

        public void setNomeExibicao(string nome)
        {
            /**
            * Altera o nome para exibição
            */
            this.nomeExibicao = nome;
        }

        public void setTxtStatus(TextBox txtStatus)
        {
            this.txtStatus = txtStatus;
        }

        public string getMensagemStatus()
        {
            /**
            * Retorna a mensagem de status da operação.
            */
            return this.mensagemStatus;
        }

        public bool instalarServico()
        {
            /**
            * Instala o serviço
            */
            #region Verifica se as variáveis necessárias estão preenchidas
            if (
                (this.caminhoServico.Length == 0) ||
                (this.nomeServico.Length == 0) ||
                (this.nomeExibicao.Length == 0)
            )
            {               
                this.mensagemStatus = "Campos não preenchidos";

                if (this.txtStatus != null)
                    this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                this.mensagemStatus = "Campos não preenchidos";
                return false;
            }
            #endregion

            #region Declaração de constantes
            int SC_MANAGER_CREATE_SERVICE = 0x0002;
            int SERVICE_WIN32_OWN_PROCESS = 0x00000010;
            //int SERVICE_DEMAND_START = 0x00000003;
            int SERVICE_ERROR_NORMAL = 0x00000001;
            int STANDARD_RIGHTS_REQUIRED = 0xF0000;
            int SERVICE_QUERY_CONFIG = 0x0001;
            int SERVICE_CHANGE_CONFIG = 0x0002;
            int SERVICE_QUERY_STATUS = 0x0004;
            int SERVICE_ENUMERATE_DEPENDENTS = 0x0008;
            int SERVICE_START = 0x0010;
            int SERVICE_STOP = 0x0020;
            int SERVICE_PAUSE_CONTINUE = 0x0040;
            int SERVICE_INTERROGATE = 0x0080;
            int SERVICE_USER_DEFINED_CONTROL = 0x0100;
            int SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED |
            SERVICE_QUERY_CONFIG |
            SERVICE_CHANGE_CONFIG |
            SERVICE_QUERY_STATUS |
            SERVICE_ENUMERATE_DEPENDENTS |
            SERVICE_START |
            SERVICE_STOP |
            SERVICE_PAUSE_CONTINUE |
            SERVICE_INTERROGATE |
            SERVICE_USER_DEFINED_CONTROL);
            int SERVICE_AUTO_START = 0x00000002;
            #endregion Constants declaration.

            try
            {
                IntPtr sc_handle = OpenSCManager(null, null, SC_MANAGER_CREATE_SERVICE);
                if (sc_handle.ToInt32() != 0)
                {
                    IntPtr sv_handle = CreateService(sc_handle, this.nomeServico, this.nomeExibicao,
                        SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,
                        this.caminhoServico, null, 0, null, null, null);
                    if (sv_handle.ToInt32() == 0)
                    {
                        CloseServiceHandle(sc_handle);
                       
                        this.mensagemStatus = "Não foi possível instalar o serviço";
                       
                        if (this.txtStatus != null)
                            this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                        return false;
                    }
                    else
                    {
                        // Inicia o serviço
                        int i = StartService(sv_handle, 0, null);
                        // Se o valor de i for zero, então houve um erro ao iniciar o serviço.
                        // Obs: O erro pode ocorrer se o serviço já esteja funcionando ou algum outro problema.
                        if (i == 0)
                        {
                            this.mensagemStatus = "Não foi possível iniciar o serviço";

                            if (this.txtStatus != null)
                                this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                            return false;
                        }
                        this.mensagemStatus = "Serviço iniciado com sucesso";

                        if (this.txtStatus != null)
                            this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                        CloseServiceHandle(sc_handle);
                        return true;
                    }
                }
                else
                {
                    this.mensagemStatus = "SCM não foi aberto com sucesso";

                    if (this.txtStatus != null)
                        this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                    return false;
                }
            }
            catch (Exception oErro)
            {
                this.mensagemStatus = oErro.Message;

                if (this.txtStatus != null)
                    this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                return false;
            }
        }

        public bool desinstalarServico()
        {
            /**
            * Desinstala o serviço
            */
            #region Verifica se as variáveis necessárias estão preenchidas
            if (this.nomeServico.Length == 0)
            {
                this.mensagemStatus = "Campos não preenchidos";

                if (this.txtStatus != null)
                    this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                return false;
            }
            #endregion

            int GENERIC_WRITE = 0x40000000;
            IntPtr sc_hndl = OpenSCManager(null, null, GENERIC_WRITE);
            if (sc_hndl.ToInt32() != 0)
            {
                int DELETE = 0x10000;
                IntPtr svc_hndl = OpenService(sc_hndl, this.nomeServico, DELETE);
                [Você precisa estar registrado e conectado para ver este link.]
                if (svc_hndl.ToInt32() != 0)
                {
                    int i = DeleteService(svc_hndl);
                    if (i != 0)
                    {
                        CloseServiceHandle(sc_hndl);

                        this.mensagemStatus = "Serviço deletado com sucesso";

                        if (this.txtStatus != null)
                            this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                        return true;
                    }
                    else
                    {
                        CloseServiceHandle(sc_hndl);

                        this.mensagemStatus = "Não foi possível excluir o serviço especificado";

                        if (this.txtStatus != null)
                            this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                        return false;
                    }
                }
                else
                {
                    this.mensagemStatus = "Não foi possível excluir o serviço especificado";

                    if (this.txtStatus != null)
                        this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                    return false;
                }
            }
            else
            {
                this.mensagemStatus = "Não foi possível excluir o serviço especificado";

                if (this.txtStatus != null)
                    this.txtStatus.Text += "\r\n" + this.mensagemStatus;

                return false;
            }
        }

        /*
        public static void Main()
        {
            string caminhoServico = @"C:\servico\servico.exe";
            string nomeServico = "Nome do Serviço";
            string nomeExibicao = "Nome para exibição";

            InstalarServico obj = new InstalarServico();
            obj.setCaminhoServico(caminhoServico);
            obj.setNomeServico(nomeServico);
            obj.setNomeExibicao(nomeExibicao);
            obj.instalarServico();
        }
        */
    }
}


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

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Serviços do Windows

Mensagem por Marcos Guedes em 24/8/2009, 00:18

Abaixo segue um aplicativo que fiz para testar a rotina:
- [Você precisa estar registrado e conectado para ver este link.]

A quem interessar, segue o link do projeto:
- [Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Serviços do Windows

Mensagem por anderson_rodrigo em 30/8/2010, 14:22

Marcos,

Vou aproveitar seu topico para colocar aqui como fazer uma aplicação de Serviços do Windows.

Neste link abaixo explica toda a montagem e até a geração do instalador para rodar a aplicação.

[Você precisa estar registrado e conectado para ver este link.]


Para complementar, na minha aplicação fiz ele iniciar a aplicação a partir de uma caminho em um arquivo de texto.

No Metodo OnStart.
Código:


 protected override void OnStart(string[] args)
        {

            string sysDrive = System.Environment.GetEnvironmentVariable("SystemDrive") + @"";
            string filePath = Path.Combine(sysDrive, "arquivo.txt");

            FileInfo lcArquivo = new FileInfo(@filePath);

            TextReader reader = lcArquivo.OpenText();

            string localArquivo = reader.ReadLine();

            reader.Close();


            Process.Start(@localArquivo);
        }


Para fechar a aplicação:

No Metodo OnStop

Código:

 protected override void OnStop()
        {

            Process[] processInMachine = Process.GetProcesses();

            foreach (Process itemProcess in processInMachine)
            {
                if (itemProcess.ProcessName == "integracao")
                {
                    int pid = itemProcess.Id;

                    Process procSel = Process.GetProcessById(pid);
                    procSel.Kill();
                }
            }
        }



anderson_rodrigo
Começando a Participar
Começando a Participar


Voltar ao Topo Ir em baixo

Anexo Re: Serviços do Windows

Mensagem por Marcos Guedes em 30/8/2010, 16:39

Reputado, Anderson!

_________________
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

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