manefilho 0 Denunciar post Postado Abril 10, 2013 Olá pessoal do Fórum iMasters! Mais uma vez to precisando da ajuda de vocês. To desenvolvendo um programa de controle de tempo para Lan House simples, não tem muitos recursos. Bem, o que eu to tendo dificuldade em terminar é a parte onde o balcão se comunica com os computadores clientes. Eu estou fazendo assim, no programa Cliente do Balcão eu tenho um ClienteSocket e no programa Servidor dos computadores do clientes eu tenho o ServerSocket. No programa do Balcão onde tem o Cliente Socket eu coloquei botões que fazem com o que o ClienteSocket envie comandos de desligamento, como Desligar, Reiniciar, Travar, etc. E preciso também que o ClienteSocket envie um texto, do MaskEdit do programa Cliente, para um Caption de um Panel no programa Servidor dos outros Computadores. Resumindo: Preciso enviar os comandos para as maquinas dos clientes de desligamento, e enviar também o tempo que a máquina vai ficar ativa (o crédito que o cliente adicionou) para o Caption do Panel do Servidor. Bem, eu to tendo problemas quanto a isso. Tentei de várias maneiras e não consegui, alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Eisenheim 67 Denunciar post Postado Abril 10, 2013 Olá amigo. Teria como compartilhar parte do seu código para que possamos analisar e ai te auxiliar? Até a próxima. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
manefilho 0 Denunciar post Postado Abril 10, 2013 Claro mano mano! :yes: Esse é o código fonte do programa do balcão: {----------------------------------------------------------------------------------- Controle de Computadores - Lan House Bela Vista Versão: 2.0 Revisão: 36 Source: 2.0 Essa é a Source (código fonte) da janela principal, ou seja, a primeira janela do programa. A sua edição é permitida, lembre-se de não omitir os créditos dos desenvolvedores originais ou dos recursos utilizados. Você pode usar como base esse código fonte, mas não pode altera-lo para vende-lo. A venda de todo ou parte do programa é restrita, o seu código fonte é aberto e pode ser alterado como desejado. Caso altere algo e queira destribuir, você pode adicionar seus créditos na janela "Sobre" (frm_Sobre). Adicione seu nome e o que alterou no programa. Não utilize esses códigos fontes em outros projetos sem comunicar ao desenvolvedor original. Esse código fonte foi desenvolvido sob medida para a Lan House Bela Vista. A cópia para uso em outra forma é restrita a não ser que seja comunicado ao desenvolvedor do programa. Desenvolvido por: Francisco Assis Dantas Filho Email: manefilho1@hotmail.com ------------------------------------------------------------------------------------} unit UPrincipal; interface {----------------------------------------------------------------------------------- ---> Adicionado a Uses Clipbrd - Adicionado a Uses para copiar o Email do "lbl_EmailDesenvolvedor" para a área de transferência. IniFiles - Adicionado a Uses para criar e manipular arquivos de informação de configuração, ou seja, usado para manipular arquivos "Ini" ou "Inf". ------------------------------------------------------------------------------------} uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, Menus, ExtCtrls, ComCtrls, StdCtrls, Clipbrd, pngimage, IniFiles, JvComponentBase, JvFormMagnet; type Tfrm_Principal = class(TForm) mm_MenuPrincipal: TMainMenu; il_ImagensMenus: TImageList; Sistema1: TMenuItem; AtualizarStatus1: TMenuItem; N2: TMenuItem; Configuraes1: TMenuItem; Sair1: TMenuItem; Comandos1: TMenuItem; Desligarcomputador1: TMenuItem; Reiniciarcomputador1: TMenuItem; Bloquearcomputador1: TMenuItem; N3: TMenuItem; Crdito1: TMenuItem; Iniciarcrdito1: TMenuItem; Salvarcrdito1: TMenuItem; N4: TMenuItem; Fecharcrdito1: TMenuItem; Ferramentas1: TMenuItem; Calculadora1: TMenuItem; MeuComputador1: TMenuItem; Ajuda1: TMenuItem; picosdeajuda1: TMenuItem; Sobreosistema1: TMenuItem; Maiscomandos1: TMenuItem; Bloqueartela1: TMenuItem; Bloquearmouse1: TMenuItem; Bloquearteclado1: TMenuItem; Desligarmonitor1: TMenuItem; sb_BarraDeStatus: TStatusBar; pnl_Forma: TPanel; pc_Computadores: TPageControl; ts_PC1: TTabSheet; ts_PC2: TTabSheet; ts_PC3: TTabSheet; ts_PC4: TTabSheet; ts_PC6: TTabSheet; ts_PC7: TTabSheet; ts_PC8: TTabSheet; ts_PC5: TTabSheet; pnl_TituloPC1: TPanel; pnl_PC1: TPanel; pnl_TituloPC3: TPanel; pnl_TituloPC2: TPanel; pnl_TituloPC4: TPanel; pnl_TituloPC5: TPanel; pnl_TituloPC6: TPanel; pnl_TituloPC7: TPanel; pnl_TituloPC8: TPanel; t_DataHoraAtual: TTimer; gb_HoraEntrada1: TGroupBox; gb_HoraSaida1: TGroupBox; gb_TempoRestante1: TGroupBox; gb_TempoCorrido1: TGroupBox; pnl_HoraEntrada1: TPanel; pnl_HoraSaida1: TPanel; pnl_TempoRestante1: TPanel; pnl_TempoCorrido1: TPanel; gb_StatusComputador: TGroupBox; gb_ComandosRemotos1: TGroupBox; btn_Desligar1: TButton; btn_Reiniciar1: TButton; btn_Bloquear1: TButton; btn_BloquearTela1: TButton; btn_BloquearMouse1: TButton; btn_BloquearTeclado1: TButton; btn_DesligarMonitor1: TButton; gb_Informacoes1: TGroupBox; lbl_NomeCliente1: TLabel; lbl_ClienteAnterior1: TLabel; lbl_TempoAdicionado1: TLabel; pnl_NomeCliente1: TPanel; pnl_ClienteAnterior1: TPanel; pnl_TempoAdicionado1: TPanel; lbl_ValorPagar1: TLabel; pnl_ValorPagar1: TPanel; lbl_StatusPagamento1: TLabel; pnl_StatusPagamento1: TPanel; lbl_ValorTempoAberto1: TLabel; pnl_ValorTempoAberto1: TPanel; btn_AdicionarCredito1: TButton; btn_FecharCredito1: TButton; btn_AdicionarMaisCredito1: TButton; btn_SalvarCredito1: TButton; Carregarcrditosalvo1: TMenuItem; btn_CarregarCreditoSalvo1: TButton; lbl_Sistema1: TLabel; lbl_EmailDesenvolvedor1: TLabel; pnl_PC2: TPanel; lbl_Sistema2: TLabel; lbl_EmailDesenvolvedor2: TLabel; gb_HoraEntrada2: TGroupBox; pnl_HoraEntrada2: TPanel; gb_HoraSaida2: TGroupBox; pnl_HoraSaida2: TPanel; gb_TempoRestante2: TGroupBox; pnl_TempoRestante2: TPanel; gb_TempoCorrido2: TGroupBox; pnl_TempoCorrido2: TPanel; gb_ComandosLocais2: TGroupBox; btn_AdicionarCredito2: TButton; btn_FecharCredito2: TButton; btn_AdicionarMaisCredito2: TButton; btn_SalvarCredito2: TButton; btn_CarregarCreditoSalvo2: TButton; gb_ComandosRemotos2: TGroupBox; btn_Desligar2: TButton; btn_Reiniciar2: TButton; btn_Bloquear2: TButton; btn_BloquearTela2: TButton; btn_BloquearMouse2: TButton; btn_BloquearTeclado2: TButton; btn_DesligarMonitor2: TButton; gb_Informacoes2: TGroupBox; lbl_NomeCliente2: TLabel; lbl_ClienteAnterior2: TLabel; lbl_TempoAdicionado2: TLabel; lbl_ValorPagar2: TLabel; lbl_StatusPagamento2: TLabel; lbl_ValorTempoAberto2: TLabel; pnl_NomeCliente2: TPanel; pnl_ClienteAnterior2: TPanel; pnl_TempoAdicionado2: TPanel; pnl_ValorPagar2: TPanel; pnl_StatusPagamento2: TPanel; pnl_ValorTempoAberto2: TPanel; pnl_PC3: TPanel; lbl_Sistema3: TLabel; lbl_EmailDesenvolvedor3: TLabel; gb_HoraEntrada3: TGroupBox; pnl_HoraEntrada3: TPanel; gb_HoraSaida3: TGroupBox; pnl_HoraSaida3: TPanel; gb_TempoRestante3: TGroupBox; pnl_TempoRestante3: TPanel; gb_TempoCorrido: TGroupBox; pnl_TempoCorrido3: TPanel; gb_ComandosLocais3: TGroupBox; btn_AdicionarCredito3: TButton; btn_FecharCredito3: TButton; btn_AdicionarMaisCredito3: TButton; btn_SalvarCredito3: TButton; btn_CarregarCreditoSalvo3: TButton; gb_ComandosRemotos3: TGroupBox; btn_Desligar3: TButton; btn_Reiniciar3: TButton; btn_Bloquear3: TButton; btn_BloquearTela3: TButton; btn_BloquearMouse3: TButton; btn_BloquearTeclado3: TButton; btn_DesligarMonitor3: TButton; gb_Informacoes3: TGroupBox; lbl_NomeCliente3: TLabel; lbl_ClienteAnterior3: TLabel; lbl_TempoAdicionado3: TLabel; lbl_ValorPagar3: TLabel; lbl_StatusPagamento3: TLabel; lbl_ValorTempoAberto3: TLabel; pnl_NomeCliente3: TPanel; pnl_ClienteAnterior3: TPanel; pnl_TempoAdicionado: TPanel; pnl_ValorPagar3: TPanel; pnl_StatusPagamento3: TPanel; pnl_ValorTempoAberto3: TPanel; pnl_PC4: TPanel; lbl_Sistema4: TLabel; lbl_EmailDesenvolvedor4: TLabel; gb_HoraEntrada4: TGroupBox; pnl_HoraEntrada4: TPanel; gb_HoraSaida4: TGroupBox; pnl_HoraSaida4: TPanel; gb_TempoRestante4: TGroupBox; pnl_TempoRestante4: TPanel; gb_TempoCorrido4: TGroupBox; pnl_TempoCorrido4: TPanel; gb_ComandosLocais4: TGroupBox; btn_AdicionarCredito4: TButton; btn_FecharCredito4: TButton; btn_AdicionarMaisCredito4: TButton; btn_SalvarCredito4: TButton; btn_CarregarCreditoSalvo4: TButton; gb_ComandosRemotos4: TGroupBox; btn_Desligar4: TButton; btn_Reiniciar4: TButton; btn_Bloquear4: TButton; btn_BloquearTela4: TButton; btn_BloquearMouse4: TButton; btn_BloquearTeclado4: TButton; btn_DesligarMonitor4: TButton; gb_Informacoes4: TGroupBox; lbl_NomeCliente4: TLabel; lbl_ClienteAnterior4: TLabel; lbl_TempoAdicionado4: TLabel; lbl_ValorPagar4: TLabel; lbl_StatusPagamento4: TLabel; lbl_ValorTempoAberto4: TLabel; pnl_NomeCliente4: TPanel; pnl_ClienteAnterior4: TPanel; pnl_TempoAdicionado4: TPanel; pnl_ValorPagar4: TPanel; pnl_StatusPagamento4: TPanel; pnl_ValorTempoAberto4: TPanel; pnl_PC5: TPanel; lbl_Sistema5: TLabel; lbl_EmailDesenvolvedor5: TLabel; gb_HoraEntrada5: TGroupBox; pnl_HoraEntrada5: TPanel; gb_HoraSaida5: TGroupBox; pnl_HoraSaida5: TPanel; gb_TempoRestante5: TGroupBox; pnl_TempoRestante5: TPanel; gb_TempoCorrido5: TGroupBox; pnl_TempoCorrido5: TPanel; gb_ComandosLocais5: TGroupBox; btn_AdicionarCredito5: TButton; btn_FecharCredito5: TButton; btn_AdicionarMaisCredito5: TButton; btn_SalvarCredito5: TButton; btn_CarregarCreditoSalvo5: TButton; gb_ComandosRemotos5: TGroupBox; btn_Desligar5: TButton; btn_Reiniciar5: TButton; btn_Bloquear5: TButton; btn_BloquearTela5: TButton; btn_BloquearMouse5: TButton; btn_BloquearTeclado5: TButton; btn_DesligarMonitor5: TButton; gb_Informacoes5: TGroupBox; lbl_NomeCliente5: TLabel; lbl_ClienteAnterior5: TLabel; lbl_TempoAdicionado5: TLabel; lbl_ValorPagar5: TLabel; lbl_StatusPagamento5: TLabel; lbl_ValorTempoAberto5: TLabel; pnl_NomeCliente5: TPanel; pnl_ClienteAnterior5: TPanel; pnl_TempoAdicionado5: TPanel; pnl_ValorPagar5: TPanel; pnl_StatusPagamento5: TPanel; pnl_ValorTempoAberto5: TPanel; pnl_PC6: TPanel; lbl_Sistema6: TLabel; lbl_EmailDesenvolvedor6: TLabel; gb_HoraEntrada6: TGroupBox; pnl_HoraEntrada6: TPanel; gb_HoraSaida6: TGroupBox; pnl_HoraSaida6: TPanel; gb_TempoRestante6: TGroupBox; pnl_TempoRestante6: TPanel; gb_TempoCorrido6: TGroupBox; pnl_TempoCorrido6: TPanel; gb_ComandosLocais6: TGroupBox; btn_AdicionarCredito6: TButton; btn_FecharCredito6: TButton; btn_AdicionarMaisCredito6: TButton; btn_SalvarCredito6: TButton; btn_CarregarCreditoSalvo6: TButton; gb_ComandosRemotos6: TGroupBox; btn_Desligar6: TButton; btn_Reiniciar6: TButton; btn_Bloquear6: TButton; btn_BloquearTela6: TButton; btn_BloquearMouse6: TButton; btn_BloquearTeclado6: TButton; btn_DesligarMonitor6: TButton; gb_Informacoes6: TGroupBox; lbl_NomeCliente6: TLabel; lbl_ClienteAnterior6: TLabel; lbl_TempoAdicionado6: TLabel; lbl_ValorPagar6: TLabel; lbl_SatusPagamento6: TLabel; lbl_ValorTempoAberto6: TLabel; pnl_NomeCliente6: TPanel; pnl_ClienteAnterior6: TPanel; pnl_TempoAdicionado6: TPanel; pnl_ValorPagar6: TPanel; pnl_StatusPagamento6: TPanel; pnl_ValorTempoAberto6: TPanel; pnl_PC7: TPanel; lbl_Sistema7: TLabel; lbl_EmailDesenvolvedor7: TLabel; gb_HoraEntrada7: TGroupBox; pnl_HoraEntrada7: TPanel; gb_HoraSaida7: TGroupBox; pnl_HoraSaida7: TPanel; gb_TempoRestante7: TGroupBox; pnl_TempoRestante7: TPanel; gb_TempoCorrido7: TGroupBox; pnl_TempoCorrido7: TPanel; gb_ComandosLocais7: TGroupBox; btn_AdicionarCredito7: TButton; btn_FecharCredito7: TButton; btn_AdicionarMaisCredito7: TButton; btn_SalvarCredito7: TButton; btn_CarregarCreditoSalvo7: TButton; gb_ComandosRemotos7: TGroupBox; btn_Desligar7: TButton; btn_Reiniciar7: TButton; btn_Bloquear7: TButton; btn_BloquearTela7: TButton; btn_BloquearMouse7: TButton; btn_BloquearTeclado7: TButton; btn_DesligarMonitor7: TButton; gb_Informacoes7: TGroupBox; lbl_NomeCliente7: TLabel; lbl_ClienteAnterior7: TLabel; lbl_TempoAdicionado7: TLabel; lbl_ValorPagar7: TLabel; lbl_ValorTempoAberto7: TLabel; pnl_NomeCliente7: TPanel; pnl_ClienteAnterior7: TPanel; pnl_TempoAdicionado7: TPanel; pnl_ValorPagar7: TPanel; pnl_StatusPagamento7: TPanel; pnl_ValorTempoAberto7: TPanel; lbl_StatusPagamento7: TLabel; pnl_PC8: TPanel; lbl_Sistema8: TLabel; lbl_EmailDesenvolvedor8: TLabel; gb_HoraEntrada8: TGroupBox; pnl_HoraEntrada8: TPanel; gb_HoraSaida8: TGroupBox; pnl_HoraSaida8: TPanel; gb_TempoRestante8: TGroupBox; pnl_TempoRestante8: TPanel; gb_TempoCorrido8: TGroupBox; pnl_TempoCorrido8: TPanel; gb_ComandosLocais8: TGroupBox; btn_AdicionarCredito8: TButton; btn_FecharCredito8: TButton; btn_AdicionarMaisCredito8: TButton; btn_SalvarCredito8: TButton; btn_CarregarCreditoSalvo8: TButton; gb_ComandosRemotos8: TGroupBox; btn_Desligar8: TButton; btn_Reiniciar8: TButton; btn_Bloquear8: TButton; btn_BloquearTecla8: TButton; btn_BloquearMouse8: TButton; btn_BloquearTeclado8: TButton; btn_DesligarMonitor8: TButton; gb_Informacoes8: TGroupBox; lbl_NomeCliente8: TLabel; lbl_ClienteAnterior8: TLabel; lbl_TempoAdicionado8: TLabel; lbl_ValorPagar8: TLabel; lbl_StatusPagamento8: TLabel; lbl_ValorTempoAberto8: TLabel; pnl_NomeCliente8: TPanel; pnl_ClienteAnterior8: TPanel; pnl_TempoAdicionado8: TPanel; pnl_ValorPagar8: TPanel; pnl_StatusPagamento8: TPanel; pnl_ValorTempoAberto8: TPanel; ts_Configuracoes: TTabSheet; gb_ConfiguraConexao: TGroupBox; edt_IPPC1: TLabeledEdit; edt_IPPC2: TLabeledEdit; edt_IPPC3: TLabeledEdit; edt_IPPC4: TLabeledEdit; edt_IPPC5: TLabeledEdit; edt_IPPC6: TLabeledEdit; edt_IPPC7: TLabeledEdit; edt_IPPC8: TLabeledEdit; edt_PortaPC1: TLabeledEdit; edt_PortaPC2: TLabeledEdit; edt_PortaPC3: TLabeledEdit; edt_PortaPC4: TLabeledEdit; edt_PortaPC8: TLabeledEdit; edt_PortaPC7: TLabeledEdit; edt_PortaPC6: TLabeledEdit; edt_PortaPC5: TLabeledEdit; img_Logo: TImage; lbl_Informacao: TLabel; btn_Aplicar: TButton; btn_Cancelar: TButton; od_SelecionaSkin: TOpenDialog; img_Logo2: TImage; Label1: TLabel; Label2: TLabel; jfm_Ima: TJvFormMagnet; procedure t_DataHoraAtualTimer(Sender: TObject); procedure lbl_EmailDesenvolvedor1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Sair1Click(Sender: TObject); procedure Sobreosistema1Click(Sender: TObject); procedure picosdeajuda1Click(Sender: TObject); procedure Configuraes1Click(Sender: TObject); procedure btn_AplicarClick(Sender: TObject); procedure btn_CancelarClick(Sender: TObject); procedure ts_ConfiguracoesShow(Sender: TObject); procedure Calculadora1Click(Sender: TObject); procedure MeuComputador1Click(Sender: TObject); procedure AtualizarStatus1Click(Sender: TObject); procedure Iniciarcrdito1Click(Sender: TObject); procedure btn_FecharCredito1Click(Sender: TObject); procedure Desligarcomputador1Click(Sender: TObject); procedure Reiniciarcomputador1Click(Sender: TObject); procedure Bloquearcomputador1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_Principal: Tfrm_Principal; ArqConfiguracao: TIniFile; implementation uses USobre, UTestaConexao, UAdicionaTempo; {$R *.dfm} procedure Tfrm_Principal.AtualizarStatus1Click(Sender: TObject); begin // ---> Mostra o assistente de teste de conexão frm_TestarConexao.ShowModal; end; procedure Tfrm_Principal.Bloquearcomputador1Click(Sender: TObject); begin end; procedure Tfrm_Principal.btn_AplicarClick(Sender: TObject); var data: TIniFile; begin data := TIniFile.Create('config\config.ini'); // Nome do arquivo Ini que será criado // ---> O conteúdo será gravado data.WriteString('ip', 'ip1', edt_ippc1.Text); data.WriteString('ip', 'ip2', edt_ippc2.Text); data.WriteString('ip', 'ip3', edt_ippc3.Text); data.WriteString('ip', 'ip4', edt_ippc4.Text); data.WriteString('ip', 'ip5', edt_ippc5.Text); data.WriteString('ip', 'ip6', edt_ippc6.Text); data.WriteString('ip', 'ip7', edt_ippc7.Text); data.WriteString('ip', 'ip8', edt_ippc8.Text); data.WriteString('port', 'port1', edt_portapc1.Text); data.WriteString('port', 'port2', edt_portapc2.Text); data.WriteString('port', 'port3', edt_portapc3.Text); data.WriteString('port', 'port4', edt_portapc4.Text); data.WriteString('port', 'port5', edt_portapc5.Text); data.WriteString('port', 'port6', edt_portapc6.Text); data.WriteString('port', 'port7', edt_portapc7.Text); data.WriteString('port', 'port8', edt_portapc8.Text); data.Free; //Libera a memória MessageDlg('As informações foram salvas com êxito! :)', mtInformation, [mbOK], 0); // Mostra menssagem mostrando que a informações foram salvas end; procedure Tfrm_Principal.btn_CancelarClick(Sender: TObject); begin // ---> Esconde a aba de configurações if MessageDlg('Configuração do Sistema' + #13 + 'Você salvou as configurações antes de fechar?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin // Caso responda que Sim... ts_Configuracoes.TabVisible := False; // ...esconde a aba configurações. pc_Computadores.ActivePage := ts_PC1; // Mostra a aba do PC 1 ts_PC1.SetFocus; // Direciona a tenção para a aba do PC 1 end else // Fim, mas caso... ts_Configuracoes.TabVisible := True; // ...a resposta seja "Não", deixa a aplicação rodando pc_Computadores.ActivePage := ts_Configuracoes; // Seleciona a aba configurações ts_Configuracoes.SetFocus; // Direciona a atenção para a aba Configurações end; procedure Tfrm_Principal.btn_FecharCredito1Click(Sender: TObject); begin // ---> Limpa todas as informações if MessageDlg('Limpar informações PC1', 'Tem certeza que deseja limpar as informações do Cliente 1?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin // Pergunta se quer limpar, se disser sim... // Limpa tudo... pnl_HoraEntrada1.Caption := ('00:00:00'); pnl_HoraSaida1.Caption := ('00:00:00'); pnl_TempoRestante1.Caption := ('00:00:00'); pnl_TempoCorrido1.Caption := ('00:00:00'); pnl_ClienteAnterior1.Caption := (pnl_NomeCliente1.Caption); pnl_NomeCliente1.Caption := ('Nenhum'); pnl_TempoAdicionado1.Caption := ('00:00:00'); pnl_ValorPagar1.Caption := ('R$ 00,00'); pnl_StatusPagamento1.Caption := ('Sem uso!'); pnl_ValorTempoAberto1.Caption := ('R$ 00,00'); MessageDlg('As informações foram limpas! :)', mtInformation, [mbOK], 0); // Mostra messagem que tudo foi limpo end else // Mas caso responda que não frm_Principal.SetFocus; // Volta para a janela principal pc_Computadores.ActivePageIndex := 0; // Seleciona a primeira aba MessageDlg('As informações não foram alteradas! :)', mtInformation, [mbOK], 0); // Mostra menssagem que nada foi alterado end; procedure Tfrm_Principal.Calculadora1Click(Sender: TObject); begin // ---> Executa a calculadora WinExec('calc.exe',SW_Normal); end; procedure Tfrm_Principal.Configuraes1Click(Sender: TObject); begin // ---> Mostra a aba de configurações ts_Configuracoes.TabVisible := True; end; procedure Tfrm_Principal.Desligarcomputador1Click(Sender: TObject); begin end; procedure Tfrm_Principal.FormClose(Sender: TObject; var Action: TCloseAction); begin // ---> Pedir confirmação para fechar a aplicação if MessageDlg('Sair da aplicação' + #13 + 'Tem certeza que deseja encerrar a aplicação?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin // Caso responda que Sim... Action := caFree; // ...deixa a ação livre para ser executada (fecha a aplicação). end else // Fim, mas caso... Action := caNone; // ...a resposta seja "Não", deixa a aplicação rodando end; procedure Tfrm_Principal.FormShow(Sender: TObject); var data: TIniFile; begin // ---> Ao exibir a janela principal (frm_Principal), mostra a primeira aba (PC1) do "pc_Computadores" (PageControl) pc_Computadores.ActivePage := ts_PC1; // Exibe a primeira aba // ---> Oculta a aba "Configurações" ts_Configuracoes.TabVisible := False; // ---> Verifica arquivo de Skin end; procedure Tfrm_Principal.Iniciarcrdito1Click(Sender: TObject); begin // ---> Mostra dialogo para adicionar crédito frm_AdicionarCredito.ShowModal; end; procedure Tfrm_Principal.lbl_EmailDesenvolvedor1Click(Sender: TObject); begin // --- > Ao clicar no Email (lbl_EmailDesenvolvedor) copia o Email para a área de transferência (adicionado "Clipbrd" nas Uses), mostra menssagem Clipboard.AsText := lbl_EmailDesenvolvedor1.Caption; // Copia Email para área de transferência MessageDlg('Email copiado para a área de transferência!', mtInformation, [mbOK], 0); // Mostra menssagem end; procedure Tfrm_Principal.MeuComputador1Click(Sender: TObject); begin // ---> Mostra o "Meu Computador" WinExec('exeplorer.exe',SW_Normal); end; procedure Tfrm_Principal.picosdeajuda1Click(Sender: TObject); begin // ---> Mostra onde obter ajuda MessageDlg('Você pode obter ajuda com o desenvolvedor do sistema pelo endereço de Email: manefilho1@hotmail.com ou pode solicitar a presença do mesmo. Esse endereço pode ser usado como menssageiro instantanêo.', mtInformation, [mbOK], 0); // Mostra menssagem end; procedure Tfrm_Principal.Reiniciarcomputador1Click(Sender: TObject); begin end; procedure Tfrm_Principal.Sair1Click(Sender: TObject); begin // ---> Chama a ação "Close" Close; end; procedure Tfrm_Principal.Sobreosistema1Click(Sender: TObject); begin // ---> Mostra a janela "Sobre" (frm_Sobre) [Adicionado "USobre" nas Uses) frm_Sobre.ShowModal; end; procedure Tfrm_Principal.ts_ConfiguracoesShow(Sender: TObject); var data: TIniFile; begin data := TIniFile.Create('config\config.ini'); // Nome do arquivo Ini que será criado // ---> O conteúdo será lido edt_ippc1.Text := data.ReadString('ip', 'ip1', ''); edt_ippc2.Text := data.ReadString('ip', 'ip2', ''); edt_ippc3.Text := data.ReadString('ip', 'ip3', ''); edt_ippc4.Text := data.ReadString('ip', 'ip4', ''); edt_ippc5.Text := data.ReadString('ip', 'ip5', ''); edt_ippc6.Text := data.ReadString('ip', 'ip6', ''); edt_ippc7.Text := data.ReadString('ip', 'ip7', ''); edt_ippc8.Text := data.ReadString('ip', 'ip8', ''); edt_portapc1.Text := data.ReadString('port', 'port1', ''); edt_portapc2.Text := data.ReadString('port', 'port2', ''); edt_portapc3.Text := data.ReadString('port', 'port3', ''); edt_portapc4.Text := data.ReadString('port', 'port4', ''); edt_portapc5.Text := data.ReadString('port', 'port5', ''); edt_portapc6.Text := data.ReadString('port', 'port6', ''); edt_portapc7.Text := data.ReadString('port', 'port7', ''); edt_portapc8.Text := data.ReadString('port', 'port8', ''); data.Free; //Libera a memória end; procedure Tfrm_Principal.t_DataHoraAtualTimer(Sender: TObject); begin // ---> Muda campos do StatusBar (sb_BarraDeStatus) sb_BarraDeStatus.Panels[0].Text := 'Administrador: LBV'; // Obtem nome do Administrador sb_BarraDeStatus.Panels[1].Text := 'Balcão - Lan House Bela Vista'; // Nome do computador sb_BarraDeStatus.Panels[2].Text := '' + FormatDateTime('dddd", "dd" de "mmmm" de "yyyy', Now); // Obtem data atual do sistema sb_BarraDeStatus.Panels[3].Text := '' + FormatDateTime('hh:mm:ss', Now); // Obtem hora atual do sistema end; end. Esse é o código fonte do programa dos computadores dos clientes (Form Principal): {----------------------------------------------------------------------------------- Controle de Computadores - Lan House Bela Vista Versão: 2.0 Revisão: 36 Source: 2.0 Essa é a Source (código fonte) da janela principal, ou seja, a primeira janela do programa. A sua edição é permitida, lembre-se de não omitir os créditos dos desenvolvedores originais ou dos recursos utilizados. Você pode usar como base esse código fonte, mas não pode altera-lo para vende-lo. A venda de todo ou parte do programa é restrita, o seu código fonte é aberto e pode ser alterado como desejado. Caso altere algo e queira destribuir, você pode adicionar seus créditos na janela "Sobre" (frm_Sobre). Adicione seu nome e o que alterou no programa. Não utilize esses códigos fontes em outros projetos sem comunicar ao desenvolvedor original. Esse código fonte foi desenvolvido sob medida para a Lan House Bela Vista. A cópia para uso em outra forma é restrita a não ser que seja comunicado ao desenvolvedor do programa. Desenvolvido por: Francisco Assis Dantas Filho Email: manefilho1@hotmail.com ------------------------------------------------------------------------------------} unit UPrincipal; interface {----------------------------------------------------------------------------------- ---> Adicionado a Uses IniFiles - Adicionado a Uses para criar e manipular arquivos de informação de configuração, ou seja, usado para manipular arquivos "Ini" ou "Inf". ------------------------------------------------------------------------------------} uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IniFiles, ExtCtrls, jpeg, pngimage, ScktComp; type Tfrm_Principal = class(TForm) img_background: TImage; pnl_titulo: TPanel; t_relogio: TTimer; pnl_relogio: TPanel; t_protecao: TTimer; ss_server: TServerSocket; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure t_relogioTimer(Sender: TObject); procedure t_protecaoTimer(Sender: TObject); procedure ss_serverClientRead(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } fecha: Boolean; end; var frm_Principal: Tfrm_Principal; implementation {$R *.dfm} Function GetStateK (Key: integer): boolean; begin Result := Odd (GetKeyState (Key)); end; procedure Tfrm_Principal.FormClose(Sender: TObject; var Action: TCloseAction); begin If Not fecha Then Action := caNone Else Action := caFree; end; procedure Tfrm_Principal.FormKeyPress(Sender: TObject; var Key: Char); begin If GetStateK (VK_LMENU) And (Key = 'VK_F4') Then fecha := False; end; procedure Tfrm_Principal.FormShow(Sender: TObject); var data: TIniFile; begin // ---> Carrega título da janela, e título do Label data := TIniFile.Create('config\config.ini'); // Nome do arquivo Ini que será criado // ---> O conteúdo será gravado frm_Principal.Caption := data.ReadString('cliente', 'nome', ''); pnl_titulo.Caption := data.ReadString('cliente', 'nome', ''); data.Free; //Libera a memória pnl_relogio.Caption := '' + FormatDateTime('dddd", "dd" de "mmmm" de "yyyy', Now) + ' ' + FormatDateTime('hh:mm:ss', Now); // Obtem data atual do sistema end; procedure Tfrm_Principal.ss_serverClientRead(Sender: TObject; Socket: TCustomWinSocket); begin if Socket.ReceiveText = 'desligar' then begin WinExec('shutdown.exe -s -t 01', SW_NORMAL); end else if Socket.ReceiveText = 'reiniciar' then begin WinExec('shutdown.exe -r -t 01', SW_NORMAL); end else if Socket.ReceiveText = 'desbloquear' then begin end else if Socket.ReceiveText = 'bloquear' then begin end else if Socket.ReceiveText = 'bloqueartela' then begin end else if Socket.ReceiveText = 'bloquearmouse' then begin end else if Socket.ReceiveText = 'bloquearteclado' then begin end else if Socket.ReceiveText = 'desligarmonitor' then begin end else if Socket.ReceiveText = 'tempoesgotado' then begin end; end; procedure Tfrm_Principal.t_protecaoTimer(Sender: TObject); begin frm_Principal.SetFocus; end; procedure Tfrm_Principal.t_relogioTimer(Sender: TObject); begin pnl_relogio.Caption := '' + FormatDateTime('dddd", "dd" de "mmmm" de "yyyy', Now) + ' ' + FormatDateTime('hh:mm:ss', Now); // Obtem data atual do sistema end; end. Form onde contém o Panel para contar o tempo: unit UContador; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IniFiles, ExtCtrls, MPlayer; type Tfrm_Contador = class(TForm) pnl_contador: TPanel; t_aviso: TTimer; t_contador: TTimer; t_contadorR: TTimer; mp_audio: TMediaPlayer; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure t_avisoTimer(Sender: TObject); private { Private declarations } public { Public declarations } fecha: Boolean; end; var frm_Contador: Tfrm_Contador; implementation {$R *.dfm} Function GetStateK (Key: integer): boolean; begin Result := Odd (GetKeyState (Key)); end; procedure Tfrm_Contador.FormClose(Sender: TObject; var Action: TCloseAction); begin If Not fecha Then Action := caNone Else Action := caFree; end; procedure Tfrm_Contador.FormKeyPress(Sender: TObject; var Key: Char); begin If GetStateK (VK_LMENU) And (Key = 'VK_F4') Then fecha := False; end; procedure Tfrm_Contador.FormShow(Sender: TObject); var data: TIniFile; begin // ---> Carrega título da janela, e título do Label data := TIniFile.Create('config\config.ini'); // Nome do arquivo Ini que será criado // ---> O conteúdo será gravado frm_Contador.Caption := data.ReadString('cliente', 'contador', ''); data.Free; //Libera a memória mp_audio.FileName := ('media\temp_missing.wav'); mp_audio.Open; frm_Contador.Top := Screen.Height - frm_Contador.Height - 40; frm_Contador.Left := Screen.Width - frm_Contador.Width - 5; end; procedure Tfrm_Contador.t_avisoTimer(Sender: TObject); begin if pnl_contador.Caption = ('00:03:00') then begin MessageDlg('Seu tempo está acabando!' + #13 + '' + #13 + 'O seu tempo está acabando, resta apenas 3 minutos! Salve o seu trabalho e/ou feche suas contas de rede sociais.', mtInformation, [mbOK], 0); mp_audio.Play; end; end; end. O que eu quero é que os comandos do programa do balcão sejam enviados para o Servidor dos computadores clientes. Eu tento e não consigo, dá certo o Cliente se conecta ao Servidor e tudo, mais quando eu clico pra enviar o comando, nada acontece, principalmente para enviar o Texto do MaskEdit que tá no Balcão, para o Caption do Panel no Servidor. Aí tá sem o código fonte de enviar os comandos por que eu apaguei ontem e deixei o código assim como vocês tão vendo... Alguma solução? Compartilhar este post Link para o post Compartilhar em outros sites
Eisenheim 67 Denunciar post Postado Abril 10, 2013 Olá amigo. Vou analisar e ver o que consigo descobrir pra te ajudar. Até a próxima. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites