Ir para conteúdo
Fórum Script Brasil
  • 0

Relógio Despertador duvida código


Topera

Pergunta

Bom galera estava aqui e quis voltar a treinar programação em delphi e quero desenvolver um programa que controle meu mouse e teclado quando o relógio despertar, quando despertar executar programa, sair programa algo do tipo

Minha duvia é o seguinte, montei o relógio mas quando coloquei a programação no componente TIME deu um erro acho que seria de concatenação.

O código para quem puder me ajudar

[b]begin[/b]
Label1.caption := timetostr(time);
if(radiobutton1.checked= true) and (time()>=strtotime(edit1.text)) then
Beep();

[b]end;[/b]

Bom pelo que eu vi do erro seria algo do tipo time e string, se alguém puder me ajudar e algo tambem que gostaria de saber é porque na segunda linha do lado de time segue () e em beep tambem

muito obrigado

Por enquanto seria isso depois gostaria de saber como posso fazer com que o programa controle meu teclado e mouse se alguém souber e quiser postar aqui tambem ficarei grato :blush:

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0
quero desenvolver um programa que controle meu mouse e teclado quando o relógio despertar, quando despertar executar programa, sair programa algo do tipo
Veja estes exemplos:

http://www.delphimais.com/modules/wfdownlo...id=2&lid=23

https://www.scriptbrasil.com.br/script/delp...pertadorFRM.zip

http://www.planetadelphi.com.br/download/4...me(despertador)

begin

Label1.caption := timetostr(time);

if(radiobutton1.checked= true) and (time()>=strtotime(edit1.text)) then

Beep();

end;

Bom pelo que eu vi do erro seria algo do tipo time e string,

Com relação a este código não existe erro .... talvez o unico problema esteja na digitação da hora no edit ... voce deve digitar a hora completa

exemplo: 10:23:00

e algo tambem que gostaria de saber é porque na segunda linha do lado de time segue () e em beep tambem

o delphi explica: o parenteses serve para:

Chamar procedures e funções

Comentar e compilar diretivas

Enumerar tipos

Avaliar tipos

Avaliar tipos de interface

Determinar regras de procedencia de operadores

Avaliar parametros

Como símbolos especiais

Para maiores informações veja no help do delphi ( F1 )

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ae muito obrigado a vocês dois Resolvido...

A unica coisa que se puderem me ajudar agora é como posso fazer pra controlar meu mouse e teclado se puderem manda algum link ow algo do tipo ficarei grato, porque até agora não consegui achar nada a respeito.

Abraço e Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
A unica coisa que se puderem me ajudar agora é como posso fazer pra controlar meu mouse e teclado se puderem manda algum link ow algo do tipo ficarei grato, porque até agora não consegui achar nada a respeito.

como voce não especificou que tipo de controle quer sobre o teclado e mouse, veja esse exemplo de como bloquear teclado e mouse por 5 segundos ou mais

exemplo:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

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

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure BlockInput(ABlockInput : boolean); stdcall; external 'USER32.DLL';

procedure TForm1.Button1Click(Sender: TObject);
begin
  BlockInput(True);
  Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // coloque o interval do timer para 5000  ( 5 segundos )
  BlockInput(false);
  Timer1.Enabled:=false;
end;

end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
como voce não especificou que tipo de controle quer sobre o teclado e mouse...

Quiria executar um programa quando despertar o relógico, e executar fazer com que o mouse clique em alguns botoes e depois fazer com que digite login e password...

Bom achei um código para executar o programa!

// Executa um programa, espera a finalização e captura o código de saída
// coloque na seção uses: Windows (já deve ter!)
// chame-a assim: ExecAndWait('C:\seu programa.exe', '/teste', cod)
// onde "cod" é uma variável (tipo Integer) na  função ou procedimento
// que chamar a ExecAndWait; essa variável receberá o código de saída
// do programa quando ele é finalizado.

procedure ExecAndWait (const Filename, Parms: String; var ExitCode: Integer);
var
  CmdLine: String;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
  Msg: TMsg;
  function AddQuotes (const S: String): String;
   begin
     Result := Trim(S);
     if (AnsiPos(' ', Result) <> 0) and
        ((Result[1] <> '"') or (AnsiLastChar(Result)^ <> '"')) then
       Result := '"' + Result + '"';
   end;
begin
  CmdLine := AddQuotes(Filename) + ' ' + Parms;

  FillChar (StartupInfo, SizeOf(StartupInfo), 0);
  StartupInfo.cb := SizeOf(StartupInfo);
  if not CreateProcess(nil, PChar(CmdLine), nil, nil, False, 0, nil, nil,
     StartupInfo, ProcessInfo) then
    raise Exception.Create('Ocorreu um erro inesperado e não foi possível concluir a ação.');
  with ProcessInfo do begin
    { Don't need the thread handle, so close it now }
    CloseHandle (hThread);
    { Wait until the process returns. Uses MsgWaitForMultipleObjects
      because it has to check the message queue so the "feedback"
      cursor doesn't stay on. }
    repeat
      while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do begin
        TranslateMessage (Msg);
        DispatchMessage (Msg);
      end;
    until MsgWaitForMultipleObjects(1, hProcess, False, INFINITE,
      QS_ALLINPUT) <> WAIT_OBJECT_0+1;
    { Get the exit code }
    GetExitCodeProcess (hProcess, DWORD(ExitCode));
    { Then close the process handle }
    CloseHandle (hProcess);
  end;
end;

Bom to tentando colocar o código se eu não der conta posto aqui, mas tambem não sei como fazer com que o meu mouse clique nos botoes especificados, a caso da senha tenho +/- uma ideia como tipo criar uma sql e comparar o login e senha com o do programa executado.

Abrass

Link para o comentário
Compartilhar em outros sites

  • 0

Não presisa de tudo isso para abrir o programa..

Basta:

ShellExecute(0, nil, 'Local do programa', nil, nil, SW_SHOWNORMAL)

(tem que declara o shell API)

Estou tentando fazer oque você falou... mas n sei "digitar" com o delphi

mas ate agora tem isso:

var

hora: TdateTime;

h,m,s,ms:word;

begin

// hora = hora do sistema

hora:= now;

DecodeTime(hora,h,m,s,ms);

//vamos verificar se a hora atual é a hora desejada

//no caso utilizei a hora 10:15:00 AM

if (h = StrToInt('2'))and(m=StrToInt('6'))and(s=StrToInt('20'))then begin

//abre o programa

ShellExecute(0, nil, 'Local do programa', nil, nil, SW_SHOWNORMAL);

//movimenta o mouse

Mouse_event(MOUSEEVENTF_MOVE,10,10,0,0);

//clicar com o mouse(botão esquerdo):

Mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //clica

Mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //solta

end;

end;

EM: Mouse_event(MOUSEEVENTF_MOVE,10,10,0,0); 10 e 10 são a localizaçõ do mouse assim você pode fazer com que ele va ate os botoes e clique.

Dica: Entre uma movimentação e outra utilize o Sleep(1000); para que de tempo do programa mudar de tela ao clique do botão anterior

Link para o comentário
Compartilhar em outros sites

  • 0
EM: Mouse_event(MOUSEEVENTF_MOVE,10,10,0,0); 10 e 10 são a localizaçõ do mouse assim você pode fazer com que ele va ate os botoes e clique.[/cote]

Fiz o teste e funcionou Muito Obrigado só gostaria de saber se tem como fazer o cursor mover para o lado oposto do eixo exemplo: X: frente, traz Y: baixo, cima...

Muito Obrigado a vocês pela a antenção e a paciencia viu =D

Abraços e muito obrigado novamente

Editado por Topera
Link para o comentário
Compartilhar em outros sites

  • 0

Aeee eu consegui fazer depois di mexe com o código é muito simples.

Só declarar duas variaveis como inteiro exemplo

var
  Form1: TForm1;
  X, Y: Integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
   mouse_event(mouseeventf_move,x-20,0,0,0);
end;

Agora sim, muito obrigado pela a atenção e já ta add brhvitor6

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...