亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? in_mail_dll.pas

?? delphi處理插件的一個例子
?? PAS
字號:
unit In_Mail_Dll;
{版權所有 楓葉在線 HTTP://WWW.SKYGZ.COM SKYGZ@QQ.COM 風鈴夜思雨}
interface

uses
  Windows, Forms, SysUtils, Controls, Classes,
  StdCtrls, Plugins, ExtCtrls, Graphics, ScktComp;

type
  THT = class
  private
    procedure Timer(Sender: TObject);
  end;

type
  TForm1 = class(TForm)
    FrmBG: TImage;
    ImgClose: TImage;
    LbMailID: TLabel;
    LbMailMsg: TLabel;
    TimerHide: TTimer;
    LbMove: TLabel;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ImgCloseClick(Sender: TObject);
    procedure LbMoveMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

var
  Form1: TForm1;
  ExeHandle: Hwnd;
  StrExePath: string;
  V: Integer;
  IsRun: Boolean;
  HT: THT;
  Timer: TTimer;

function PluginInfo: PPluginInfo; cdecl; export;
function Getmodule: PPluginModule; cdecl;

function GetDllHandle(): Hwnd; cdecl;
function GetDllInstance(): THandle; cdecl;
function GetDllPath(): PChar; cdecl;
procedure SetExeInfo(This_Handle: Hwnd; This_ExePath: PChar); cdecl;
procedure SetAbout(This_Module: PPluginModule); cdecl;
procedure SetConfig(This_Module: PPluginModule); cdecl;
function Initialize(This_Module: PPluginModule): Integer; cdecl;
function Terminate(This_Module: PPluginModule): Integer; cdecl;
function Start(This_Module: PPluginModule): Integer; cdecl;
function Stop(This_Module: PPluginModule): Integer; cdecl;

function Base64Encode(const s: string): string;
function Base64Decode(const s: string): string;
implementation

uses Config;

{$R *.dfm}

const
  Ver = '1.00';

  Info: TPluginInfo = (
    Version: Ver;
    Description: '郵件檢測插件';
    Module: Getmodule);

  DllModule: TPluginModule = (
    Description: '郵件檢測插件';
    DllHandle: GetDllHandle;
    DllInstance: GetDllInstance;
    DllPath: GetDllPath;
    ExeInfo: SetExeInfo;
    About: SetAbout;
    Config: SetConfig;
    Initialize: Initialize;
    Terminate: Terminate;
    Start: Start;
    Stop: Stop);

function PluginInfo: PPluginInfo;
begin
  result := @Info;
end;

function Getmodule: PPluginModule;
begin
  result := @DllModule;
end;

procedure SetExeInfo(This_Handle: Hwnd; This_ExePath: PChar);
begin
  ExeHandle := This_Handle;
  StrExePath := StrPas(This_ExePath);
end;

function GetDllHandle(): Hwnd;
begin
  result := application.Handle;
end;

function GetDllInstance(): THandle;
begin
  result := HInstance;
end;

function GetDllPath(): PChar;
var //獲取DLL路徑
  ModuleName: string;
begin
  SetLength(ModuleName, 260);
  GetModuleFileName(HInstance, PChar(ModuleName), Length(ModuleName));
  result := PChar(ModuleName);
end;

procedure SetAbout(This_Module: PPluginModule);
begin
  MessageBox(ExeHandle, '風鈴夜思雨制作', 'About', MB_ICONINFORMATION);
end;

procedure SetConfig(This_Module: PPluginModule);
begin
  frmconfig.RWINI(true);
  Timer.Enabled := false;
  frmconfig.ShowModal;
  if IsRun then Timer.Enabled := true;
end;

function Initialize(This_Module: PPluginModule): Integer;
begin
  application.CreateForm(TForm1, Form1);
  application.CreateForm(TFrmConfig, frmconfig);
  IsRun := false;
  result := 1;
end;

function Terminate(This_Module: PPluginModule): Integer;
begin
  if Assigned(frmconfig) then frmconfig.Free;
  if Assigned(Form1) then Form1.Free;
  result := 1;
end;

function Start(This_Module: PPluginModule): Integer;
begin
  frmconfig.RWINI(true);
  if IsRun = false then
  begin
    Timer.OnTimer := HT.Timer;
    Timer.Interval := 60000;
    V := 0;
    Timer.Enabled := true;
  end;
  IsRun := true;
  result := 1;
end;

function Stop(This_Module: PPluginModule): Integer;
begin
  if IsRun then
  begin
    Timer.Enabled := false;
    IsRun := false;
  end;
  result := 1;
end;

function Base64Encode(const s: string): string;
var //加密
  i, c1, c2, c3: Integer;
  m, n: Integer;
const
  Base64: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz+/~!@#$%^&*(){}[]<>?-\|`_';
begin
  result := '';
  m := 1;
  n := 0;
  for i := 1 to (Length(s) div 3) do
  begin
    c1 := Ord(s[m]);
    c2 := Ord(s[m + 1]);
    c3 := Ord(s[m + 2]);
    m := m + 3;
    result := result + Base64[(c1 shr 2) and $3F + 1];
    result := result + Base64[((c1 shl 4) and $30) or ((c2 shr 4) and $0F) + 1];
    result := result + Base64[((c2 shl 2) and $3C) or ((c3 shr 6) and $03) + 1];
    result := result + Base64[c3 and $3F + 1];
    n := n + 4;
    if (n = 76) then
    begin
      n := 0;
      // Result := Result+#13#10;
    end;
  end;
  if (Length(s) mod 3) = 1 then
  begin
    c1 := Ord(s[m]);
    result := result + Base64[(c1 shr 2) and $3F + 1];
    result := result + Base64[(c1 shl 4) and $30 + 1];
//    Result := Result+'=';
//    Result := Result+'=';
  end;
  if (Length(s) mod 3) = 2 then
  begin
    c1 := Ord(s[m]);
    c2 := Ord(s[m + 1]);
    result := result + Base64[(c1 shr 2) and $3F + 1];
    result := result + Base64[((c1 shl 4) and $30) or ((c2 shr 4) and $0F) + 1];
    result := result + Base64[(c2 shl 2) and $3C + 1];
//    Result := Result+ '=';
  end;
end;

function Base64Decode(const s: string): string;
var //解密
  i, m, n: Integer;
  c1, c2, c3, c4: Integer;
const
  Base64: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz+/~!@#$%^&*(){}[]<>?-\|`_';
begin
  result := '';
  n := 1;
  m := Length(s);
//  if s[m]='='then m:=m-1;
//  if s[m]='='then m:=m-1;
  for i := 1 to m div 4 do
  begin
    c1 := Pos(s[n], Base64) - 1;
    c2 := Pos(s[n + 1], Base64) - 1;
    c3 := Pos(s[n + 2], Base64) - 1;
    c4 := Pos(s[n + 3], Base64) - 1;
    n := n + 4;
    result := result + Chr(((c1 shl 2) and $FC) or ((c2 shr 4) and $3));
    result := result + Chr(((c2 shl 4) and $F0) or ((c3 shr 2) and $0F));
    result := result + Chr(((c3 shl 6) and $C0) or c4);
  end;
  if m mod 4 = 2 then
  begin
    c1 := Pos(s[n], Base64) - 1;
    c2 := Pos(s[n + 1], Base64) - 1;
    result := result + Chr(((c1 shl 2) and $FC) or ((c2 shr 4) and $3));
  end;

  if m mod 4 = 3 then
  begin
    c1 := Pos(s[n], Base64) - 1;
    c2 := Pos(s[n + 1], Base64) - 1;
    c3 := Pos(s[n + 2], Base64) - 1;
    result := result + Chr(((c1 shl 2) and $FC) or ((c2 shr 4) and $3));
    result := result + Chr(((c2 shl 4) and $F0) or ((c3 shr 2) and $0F));
  end;
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
//  Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST or WS_EX_TOOLWINDOW;
  Params.WndParent := ExeHandle; //用于不用在任務欄上顯示
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  Hide;
  CanClose := false; //不能關閉,否則會整個程序退出
  Exit;
end;

function Pop3ChkMail(Host, User, Password: string; var MailList: TStringList): Boolean;
  function SocketRec(Socket: TCustomWinSocket; TimeOut: Integer; Crlf: string = #13#10): string;
  var
    Buf: array[0..4095] of Char;
    RR: Integer;
    TS: TStringStream; //保存所有的數據
    FSocketStream: TWinSocketStream;
  begin
    TS := TStringStream.Create('');
    FSocketStream := TWinSocketStream.Create(Socket, TimeOut);
    while (Socket.Connected = true) do
    begin
      if not FSocketStream.WaitForData(TimeOut) then Break;
      ZeroMemory(@Buf, SizeOf(Buf));
      RR := FSocketStream.Read(Buf, 1);
      if RR = 0 then Break;
      TS.Write(Buf, RR);
      if Pos(Crlf, TS.DataString) <> 0 then Break;
    end;
    result := TS.DataString;
    if Pos(Crlf, result) = 0 then result := '';
    TS.Free;
    FSocketStream.Free;
  end;

  function Pop3Response(Str: string): Boolean;
  begin
    if Pos('+OK', Str) > 0 then result := true else result := false;
  end;

  function ChkCommand(CS: TClientSocket): Boolean;
  var Cmd: string;
  begin
    while CS.Active do
    begin
      Cmd := SocketRec(CS.Socket, 60 * 1000);
      result := Pop3Response(Cmd);
      if result = false then
      begin
        CS.Socket.SendText('QUIT' + #13#10);
        CS.Active := false;
        CS.Free;
      end;
      Exit;
    end;
  end;
var CS: TClientSocket;
  Cmd: string;
begin
  try
    result := false;
    CS := TClientSocket.Create(nil);
    CS.ClientType := ctBlocking;
    CS.Host := Host;
    CS.Port := 110;
    CS.Active := true;
    if ChkCommand(CS) = false then Exit;

    CS.Socket.SendText('USER ' + User + #13#10);
    if ChkCommand(CS) = false then Exit;
    CS.Socket.SendText('PASS ' + Password + #13#10);
    if ChkCommand(CS) = false then Exit;
    CS.Socket.SendText('LIST' + #13#10);
    if ChkCommand(CS) = false then Exit;
    while true do
    begin
      Cmd := SocketRec(CS.Socket, 60 * 1000);
      MailList.Add(Cmd);
      if Pos('.', Cmd) > 0 then Break;
    end;
    CS.Socket.SendText('QUIT' + #13#10);
    CS.Active := false;
    CS.Free;
    result := true;
  except;
    CS.Free;
  end;
end;

procedure THT.Timer(Sender: TObject);
var i: Integer;
  MailList: TStringList;
  Frm: TForm1;
begin
  V := V + 1;
  with frmconfig do
  begin
    for i := 0 to ListView1.Items.Count - 1 do
    begin
      if V = StrToInt(ListView1.Items[i].SubItems.Strings[3]) then
      begin
        MailList := TStringList.Create;
        Pop3ChkMail(ListView1.Items[i].SubItems.Strings[0], ListView1.Items[i].SubItems.Strings[1], Base64Decode(ListView1.Items[i].SubItems.Strings[2]), MailList);
        if MailList.Count > 0 then
        begin
          Frm := TForm1.Create(nil);
          Frm.Top := screen.Height - Frm.Height;
          Frm.Left := screen.Width - Frm.Width;
          Frm.LbMailID.Caption := ListView1.Items[i].Caption;
          Frm.LbMailMsg.Caption := '你有 ' + IntToStr(MailList.Count - 1) + ' 封新郵件!';
          Frm.FormStyle := fsStayOnTop;
          Frm.Show;
          SetWindowRgn(Frm.Handle, CreateRoundRectRgn(0, 0, Frm.Width + 1, Frm.Height + 1, 5, 5), true);
          Frm.TimerHide.Enabled := true;
        end;
        MailList.Free;
      end;
    end;
    if V >= MaxTime then V := 0;
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TForm1.ImgCloseClick(Sender: TObject);
begin
  TimerHide.Enabled := false;
  close;
end;

procedure TForm1.LbMoveMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  SendMessage(Handle, $0112, $F012, 0);
end;

initialization
  HT := THT.Create;
  Timer := TTimer.Create(nil);

finalization
  if Assigned(Timer) then Timer.Free;
  if Assigned(HT) then HT.Free;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
337p粉嫩大胆噜噜噜噜噜91av| 大胆亚洲人体视频| 欧美精品 日韩| 亚洲精品伦理在线| 在线中文字幕一区二区| 亚洲精品国产一区二区精华液| 91蜜桃在线观看| 亚洲美女视频在线观看| 欧美性猛交一区二区三区精品| 一区二区高清免费观看影视大全| 欧美日韩国产综合视频在线观看| 午夜精品久久久久久久久久久| 欧美日本一道本在线视频| av在线不卡电影| 亚洲精品成a人| 欧美放荡的少妇| 国产一区二区久久| 成人免费在线视频观看| 欧美日韩在线亚洲一区蜜芽| 日韩成人午夜精品| 国产色综合久久| 91在线无精精品入口| 亚洲成人av一区| www国产精品av| 99re热视频这里只精品| 天天影视网天天综合色在线播放| 26uuu亚洲综合色| 成人a级免费电影| 亚洲123区在线观看| 精品美女在线观看| 99国产一区二区三精品乱码| 天堂资源在线中文精品| 久久久99精品久久| 在线观看91视频| 精品在线视频一区| 亚洲另类在线制服丝袜| 日韩欧美国产系列| 99精品欧美一区| 久久精品国产色蜜蜜麻豆| 中文字幕一区视频| 日韩欧美在线网站| 色综合久久综合网97色综合| 欧美一区二区网站| 波多野结衣中文字幕一区| 午夜亚洲福利老司机| 国产日韩av一区| 欧美精品久久天天躁| 成人av在线一区二区三区| 三级在线观看一区二区| 综合亚洲深深色噜噜狠狠网站| 91麻豆精品国产无毒不卡在线观看| 成人激情视频网站| 狠狠狠色丁香婷婷综合激情 | 视频一区视频二区中文字幕| 中文字幕精品综合| 日韩欧美在线网站| 欧美日韩五月天| 91美女精品福利| 高清久久久久久| 国产麻豆视频一区二区| 男男成人高潮片免费网站| 亚洲欧美日韩一区二区三区在线观看 | 日韩一区二区在线观看视频| 99久久99久久精品免费观看 | 欧美日韩国产电影| 91一区在线观看| 岛国av在线一区| 国产精品一二三区| 韩国av一区二区三区在线观看| 日韩vs国产vs欧美| 亚洲福利一区二区三区| 亚洲免费伊人电影| 中文字幕乱码日本亚洲一区二区 | av在线不卡免费看| 久久综合av免费| 56国语精品自产拍在线观看| 欧美性色黄大片手机版| 色呦呦网站一区| 不卡av在线免费观看| proumb性欧美在线观看| 国产自产高清不卡| 美女mm1313爽爽久久久蜜臀| 日韩av在线发布| 亚洲综合成人在线| 午夜久久福利影院| 亚洲午夜在线电影| 一区二区三区欧美久久| 亚洲精品成人悠悠色影视| 中文字幕一区av| 一区二区三区四区不卡在线| 亚洲男女一区二区三区| 亚洲激情第一区| 亚洲午夜av在线| 亚洲国产视频一区二区| 一区二区三区在线免费视频| 一级做a爱片久久| 亚洲一区二区三区四区在线观看| 亚洲国产一区二区视频| 午夜伊人狠狠久久| 毛片基地黄久久久久久天堂| 国产一区二区三区美女| 成人午夜av影视| av激情综合网| 91久久一区二区| 欧美日韩中文另类| 在线播放一区二区三区| 日韩欧美国产一区在线观看| 久久久美女毛片| 中文字幕一区二区三区不卡在线 | 一区二区三区四区乱视频| 一区二区三区四区乱视频| 午夜影视日本亚洲欧洲精品| 麻豆精品新av中文字幕| 国产a区久久久| 91成人在线观看喷潮| 欧美一级艳片视频免费观看| 国产午夜精品一区二区三区嫩草| 国产jizzjizz一区二区| 91黄色免费观看| 日韩欧美久久一区| 中文字幕欧美一| 日韩福利电影在线观看| 国产999精品久久久久久| 日本精品一级二级| 日韩欧美国产麻豆| 国产精品三级av| 日韩av网站在线观看| kk眼镜猥琐国模调教系列一区二区| 欧美日韩一级二级| 国产日韩欧美精品在线| 日韩欧美中文字幕一区| 亚洲天堂福利av| 奇米色一区二区三区四区| jlzzjlzz国产精品久久| 欧美三级韩国三级日本三斤 | 国产麻豆9l精品三级站| 欧洲一区在线观看| 久久网站最新地址| 天天亚洲美女在线视频| 99精品久久只有精品| 日韩欧美高清一区| 一区二区三区日韩精品| 国产福利一区二区三区视频在线 | 国产蜜臀av在线一区二区三区| 亚洲综合丝袜美腿| 丁香一区二区三区| 日韩你懂的电影在线观看| 亚洲免费资源在线播放| 国产馆精品极品| 日韩免费一区二区| 日韩精品每日更新| 一本大道av伊人久久综合| 国产人久久人人人人爽| 日韩av在线发布| 欧美日韩视频专区在线播放| 中文字幕一区二区三区在线观看| 激情欧美一区二区三区在线观看| 欧美日韩国产a| 亚洲中国最大av网站| 91亚洲精品久久久蜜桃网站| 久久久久久久久久久电影| 日本女优在线视频一区二区| 欧美午夜精品久久久久久超碰| 亚洲视频在线一区观看| 国产成人在线看| 国产女人18毛片水真多成人如厕| 蜜桃精品视频在线| 欧美人妖巨大在线| 亚洲欧美日韩久久| 99视频在线精品| 亚洲国产精品ⅴa在线观看| 国产成人激情av| 国产欧美一区视频| 成人免费视频网站在线观看| 中文字幕av免费专区久久| 国产激情视频一区二区三区欧美 | 国产在线视频一区二区三区| 日韩免费成人网| 狠狠色狠狠色合久久伊人| 精品国产乱码久久久久久久| 国产一区视频在线看| 国产日韩视频一区二区三区| 成人毛片在线观看| 曰韩精品一区二区| 欧美日本视频在线| 久久国产精品99精品国产| 欧美大尺度电影在线| 国产精品综合久久| 国产精品久久久久一区| 色综合网色综合| 亚洲韩国精品一区| 日韩亚洲欧美一区| 国产99一区视频免费| 成人免费在线视频| 欧美男同性恋视频网站| 久久成人综合网| 国产精品美女久久久久久久久久久| 91在线视频在线| 青青青伊人色综合久久| 久久美女艺术照精彩视频福利播放|