Ir para conteúdo
Fórum Script Brasil

Daninho

Membros
  • Total de itens

    9
  • Registro em

  • Última visita

Tudo que Daninho postou

  1. aauhahua blzz corn vlw brother vo testar aqui abraços
  2. fiz o seguinte, como nem tudo vem de mão beijada ahuahua criei um thread object usando o menu File > New > Thread Object criei uma variavel de Timer na Unit do Thread Object Timeout = class(TThread) private { Private declarations } timer: ttimer; procedure TimerOntimer(Sender: TObject); ... procedure Timeout.TimerOntimer(Sender: TObject); begin timer.Enabled := false; if ( not (assigned(hopenurl))) then InternetCloseHandle(hopenUrl); end; procedure Timeout.Execute; begin { Place thread code here } timer := TTimer.Create(nil); timer.Enabled := false; timer.Interval := 15000; timer.OnTimer := TimerOntimer; timer.Enabled := true; end; ta certo? ou não pode por ai, ou timers não são recomendáveis por em uma thread ou esse execute ta sendo executado varias vezes e vai dar um estouro de memória? auhahua procedure Timeout.TimerOntimer(Sender: TObject); begin timer.Enabled := false; if ( not (assigned(hopenurl))) then InternetCloseHandle(hopenUrl); end; no OnTimer do Timer que ta dentro da Thread eu fiz q se hopenurl não for maior do que nil ou seja nada, então ele fecha o Handle assim para o processo... e na Unit q ta a funcao eu fiz assim, variavel global var _timeout: Timeout; ... hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin _timeout := Timeout.Create(false); hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0); if Assigned(hService) then begin _timeout.Terminate; ... Ta errado, ta certo? auhaau abraços ai
  3. opa belezinha Sec fio, eu vi num tópico q você respondeu ajudando o cara a criar um thread só q infelizmente acho q o tópico tomo delete depois dos problemas q deu no fórum... assim, você poderia me ensinar o básico pra se criar um thread? ou alguém que saiba ahahua seria assim, tipo pra criar um timeout em algo exemplo, executa algo, e se em 15 segundos não terminar o thread finaliza explicando melhor vo postar o codigo Tem a biblioteca Wininet não é? do IE, tem um esquema q da pra fazer download de arquivos, só q se não conecta, ou net ta lenta ela fica travada e não tem timeout fica travado ate conectar, se não conecta o programa já era só no control alt del auhah mas isso é um bug q é ate dito pela microsoft, então acho q criando um thread eu conseguiria fazer um timeout falando a respeito do bug: http://support.microsoft.com/kb/q176420/ função é essa uses Wininet; function DownloadURL(aUrl, Dest: String): Boolean; var hSession: HINTERNET; hService: HINTERNET; lpBuffer: array[0..1024 + 1] of Char; dwBytesRead: DWORD; Stream : TMemoryStream; begin Result := False; // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0); if Assigned(hService) then try Stream := TMemoryStream.Create; while True do begin dwBytesRead := 1024; InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead); if dwBytesRead = 0 then break; lpBuffer[dwBytesRead] := #0; Stream.Write(lpBuffer, dwBytesRead); Application.ProcessMessages; end; Result := True; Stream.Position := 0; Stream.SaveToFile(Dest); finally InternetCloseHandle(hService); Stream.Free; end; end; finally InternetCloseHandle(hSession); end; end; hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); Até ai tudo bem, o problema ta em hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0); O programa inteiro fica congelado até que ele consiga abrir o URL Por thread é possivel fazer um timeout, sendo q eu defino algo como um timer sei lá q conta até X e se não passo desse InternetOpenURL então eu dou um InternetCloseHandle(hService) ou seja irá finalizar ali seria algo q em depois desse InternetOpenURL eu coloco vamos supor var done: boolean; .... hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0); if assigned(hservice) then begin done := true; .... e no thread eu faço q se em tanto tempo não tiver done = true então ele da um close no handle do InternetOpenURL alguém saberia me ajuda? abraços
  4. Daninho

    Segurança No Delphi

    ae daniel tipo, o que o protect xp faz cara não é tão simples de se fazer não, tem q ter um amplo conhecimento da API do windows, não é apenas configurações de segurança no delphi, você teria q mudar variáveis de ambiente do windows, exemplo, a shell.dll, shell32.dll, userunit.exe então teria q ter um bom conhecimento pra travar igual ele trava... a SDK do Windows vem junto com o Delphi em Help vo separar o que consegui mexer aqui ai te mando por email
  5. Daninho

    Dxbutton

    tipo, primeira coisa tenha certeza de q o componente suporta delphi 6... se sim tenta isso... desinstala o componente, tendo uma cópia dele em maos, do source não compilado .dcu, vai na pasta do delphi, coloca pro windows pesquisar por dxbutton, deleta tudo q aparecer tipo dxbutton.dcu e tal... copia o source do componente novamente e reinstala... se não der cara se vai ter q dar uns debug ou step by step pra achar o erro
  6. da, dá não é? mais não que seria tão fácil e que qualquer um saberia fazer... coisa bem complicada com thread ainda pra não haver perda de dados... ehehe boa sorte
  7. Daninho

    Iniciantes

    pergunte no fórum ué
  8. fala o nome do programa q eu descubro pra você q tipo de skin ele usa... isso se for feito em delphi é claro ai eu te passo aqui
×
×
  • Criar Novo...