Dicas delphi
[pic]
Mac Address do adaptador de rede
A função abaixo retorna o Mac Address do adaptador de rede: function MacAddress: string; var Lib: Cardinal; Func: function(GUID: PGUID): Longint; stdcall; GUID1, GUID2: TGUID; begin Result := ''; Lib := LoadLibrary('rpcrt4.dll'); if Lib 0 then begin @Func := GetProcAddress(Lib, 'UuidCreateSequential'); if Assigned(Func) then begin if (Func(@GUID1) = 0) and (Func(@GUID2) = 0) and (GUID1.D4[2] = GUID2.D4[2]) and (GUID1.D4[3] = GUID2.D4[3]) and (GUID1.D4[4] = GUID2.D4[4]) and (GUID1.D4[5] = GUID2.D4[5]) and (GUID1.D4[6] = GUID2.D4[6]) and (GUID1.D4[7] = GUID2.D4[7]) then begin Result := IntToHex(GUID1.D4[2], 2) + '-' + IntToHex(GUID1.D4[3], 2) + '-' + IntToHex(GUID1.D4[4], 2) + '-' + IntToHex(GUID1.D4[5], 2) + '-' + IntToHex(GUID1.D4[6], 2) + '-' + IntToHex(GUID1.D4[7], 2); end; end; end; end; Início
[pic]
Escrever no Bloco de Notas
Problema:
Gostaria verificar se o bloco de notas está aberto e, caso esteja, escrever um texto a partir de um programa feito em Delphi. Isto é possível?
Solução:
Sim, isto é possível. O código abaixo escreve o conteúdo de uma variável no Bloco de Notas caso ele esteja aberto no momento do Click em Button1: procedure TForm1.Button1Click(Sender: TObject); var JanelaPrincipal, JanelaFilha: THandle; I: integer; Texto: string; begin Texto := 'Daniel'; JanelaPrincipal := FindWindow('Notepad', nil); if JanelaPrincipal > 0 then begin JanelaFilha := FindWindowEx(JanelaPrincipal, 0, 'Edit', nil); if JanelaFilha > 0 then begin for I := 1 to Length(Texto) do PostMessage(JanelaFilha, WM_CHAR, Ord(Texto[I]), 0); end; end; end; Observações:
Uma alternativa mais interessante seria abrir o