Ir para conteúdo
Fórum Script Brasil

ipc

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Tudo que ipc postou

  1. Não seria somente incorporar um .RES e no click do botão gerar um .EXE ?
  2. ipc

    Socket Error

    Colega, Tente limpar todo seu IdMessage e simplesmente colocar em Body: "Teste". Veja se ele envia. Se não enviar, tente se logar implicitamente informando: SMTP.AuthenticationType := atLogin; SMTP.UserID := "minha_conta@meuprovedor.com.br" SMTP.Password := "senha_da_minha_conta" SMTP.Port := 25; SMTP.Connect; // coloque um break-point aqui e clique F8 Se conexão Ok, SMTP.Send(IdMessage); // outro break-point aqui e clique F8 Poste o resultado
  3. ipc

    Socket Error

    Qual a função que você utiliza?
  4. Não, coloque JPeg no uses e depois:Image1.Picture.LoadFromFile('Caminho\Imagem.jpg'); Acho melhor carregar de um TMemoryStream:var MS:TMemoryStream begin MS := TMemoryStream.Create; Image1.Picture.Graphic.SaveToStream(MS); MS.Position := 0; parambyname('pfoto').LoadFromStream(MS); MS.Free; end;
  5. Srs Estou subclasseando o Explorer para interceptar algumas msgs da systray. Código na dll: Instalação da hook: begin HHook_Message := SetWindowsHookEx(WH_GetMessage, @LL_Messsage_Proc, HInstance, 0); // instala a hook HTray := FindWindow('Shell_TrayWnd', nil); // pega o handle da bandeja PostMessage(HTray, WM_USer+167, 157, 134); // envia a msg p/ subclassear end; Código na callback:function LL_Messsage_Proc(nCode:Integer; WP:WParam; LP:lParam):Integer; stdcall; var Msg:TMsg; begin CopyMemory(@Msg, Pointer(LP), SizeOf(TMsg)); if (Msg.message = (WM_User+167)) and (Msg.wParam = 157) and (Msg.lParam = 134) then begin HTray := FindWindow('Shell_TrayWnd', nil); HProc := SetWindowLong(HTray, GWL_WndProc, DWord(@_Window_Proc_Lock)); // subclassea o Explorer Exit; end; Result := CallNextHookEx(HHook_Message, nCode, WP, LP); // passa a msg p/ outras hooks end; Código da WindowProc:function _Window_Proc_Lock(h:Thandle; iMsg:UInt; WP:WParam; LP:LParam):Integer; stdcall; begin Result := CallWindowProc(Pointer(HProc), HTray, iMsg, WP, LP); end;Ou seja, simplesmente chamo a WindowProc original dele e mesmo assim recebo intermitentemente o famoso erro: O Windows Explorer encontrou um erro e precisa ser fechado. Será que de tempos em tempos ele modifica sua WindowProc ? E se modificar, como se pode saber disso ? E se não modificar, o que está errado ?
×
×
  • Criar Novo...