mIRC takephoto

empty 21.03.02 17:23

dll tiedosto mirkkiin joka ottaa kuvan nettikameralla ja tallentaa tiedostoon

 Tekstiversio  Arvo: 0 (0 ääntä)  Äänestä: +  -
library mwebcam;
uses
  SysUtils,Windows,Classes,Messages,graphics,jpeg;

type TLoadInfo = packed record mVersion:DWORD; mHwnd:HWND; mKeep:Boolean;
end;
PLoadInfo = ^TLoadInfo;
const
  dib_name='temp.bmp';
  jpeg_name='temp.jpg';
  quality = 100;
  WM_CAP_START = WM_USER;
  WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
  WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
  WM_CAP_SAVEDIB = WM_CAP_START + 25;
  WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
var
h,hWndC : THandle;
dib_filename:string;
function capCreateCaptureWindowA(lpszWindowName : PCHAR; dwStyle : longint; x : integer; y : integer; nWidth : integer; nHeight : integer; ParentWin : HWND; nId : integer): HWND; STDCALL EXTERNAL 'AVICAP32.DLL';
function takephoto(mWnd:hWnd;aWnd:hWnd;Data:PChar;Parms:PChar;Show:Boolean; NoPause:Boolean):Integer;export;stdcall;
var pic:TPicture; jpg:TJPEGImage;
begin
  dib_filename:=dib_name;
  hWndC:=capCreateCaptureWindowA('Webcam',WS_VISIBLE,0,0,1,1,h,0);
  SendMessage(hWndC,WM_CAP_DRIVER_CONNECT,0,0);
  SendMessage(hWndC,WM_CAP_SAVEDIB,0,integer(dib_filename));
  SendMessage(hWndC,WM_CAP_DRIVER_DISCONNECT,0,0);
  pic:=TPicture.Create;
  jpg:=TJPEGImage.Create;
  pic.LoadFromFile(dib_name);
  pic.Bitmap.Canvas.Brush.Style := bsSolid;
  pic.Bitmap.Canvas.Brush.Color := clBlack;
  pic.Bitmap.Canvas.Font.Color := clWhite;
  pic.Bitmap.Canvas.Font.Name := 'Lucida console';
  pic.Bitmap.Canvas.TextOut(1,1,FormatDateTime('dd.mm.yyyy hh:mm', Now));
  jpg.Assign (pic.Bitmap);
  pic.savetofile(dib_name);
  pic.Free;
  jpg.CompressionQuality := quality;
  jpg.SaveToFile (jpeg_name);
  jpg.Free;
  result:=3;
end;
function version(mWnd:hWnd;aWnd:hWnd;Data:PChar;Parms:PChar;Show:Boolean;NoPause:Boolean):Integer;export;stdcall;
begin strcopy(data,'Webcam mIRC DLL by Hawku'); result:=3; end;
exports takephoto,version;
end.