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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? regsvr.pas

?? 源代碼
?? PAS
字號(hào):
unit RegSvr;

{
  Inno Setup
  Copyright (C) 1997-2004 Jordan Russell
  Portions by Martijn Laan
  For conditions of distribution and use, see LICENSE.TXT.

  Registers OLE servers & type libraries after a reboot

  $jrsoftware: issrc/Projects/RegSvr.pas,v 1.5 2004/07/11 18:50:54 jr Exp $
}

interface

procedure RunRegSvr;

implementation

uses
  Windows, SysUtils, PathFunc, CmnFunc2, InstFunc, InstFnc2, FileClass;

procedure DeleteOldTempFiles(const Path: String);
{ Removes any old isRS-???.tmp files from Path. Not strictly necessary, but
  in case a prior multi-install run left behind multiple .tmp files now is a
  good time to clean them up. }
var
  H: THandle;
  FindData: TWin32FindData;
  Filename: String;
begin
  H := FindFirstFile(PChar(Path + 'isRS-???.tmp'), FindData);
  if H <> INVALID_HANDLE_VALUE then begin
    try
      repeat
        { Yes, this StrLIComp is superfluous. When deleting files from
          potentionally the Windows directory I can't help but be *extra*
          careful. :) }
        if (StrLIComp(FindData.cFileName, 'isRS-', Length('isRS-')) = 0) and
           (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0) then begin
          Filename := Path + FindData.cFileName;
          { If the file is read-only, try to strip the attribute }
          if FindData.dwFileAttributes and FILE_ATTRIBUTE_READONLY <> 0 then
            SetFileAttributes(PChar(Filename), FindData.dwFileAttributes
              and not FILE_ATTRIBUTE_READONLY);
          DeleteFile(Filename);
        end;
      until not FindNextFile(H, FindData);
    finally
      Windows.FindClose(H);
    end;
  end;
end;

function RenameToNonRandomTempName(const Filename: String): String;
{ Renames Filename to a name in the format: isRS-nnn.tmp. Returns the new
  filename if successful, or '' if not.
  Note: This is an NT-only function, as it calls MoveFileEx. }
var
  Path, NewFilename: String;
  Attribs: DWORD;
  Attempts, I: Integer;
begin
  Result := '';
  Path := PathExtractPath(Filename);
  Attempts := 0;
  for I := 0 to 999 do begin
    NewFilename := Path + Format('isRS-%.3u.tmp', [I]);
    Attribs := GetFileAttributes(PChar(NewFilename));
    if Attribs <> $FFFFFFFF then begin
      { Skip any directories that happen to named NewFilename }
      if Attribs and FILE_ATTRIBUTE_DIRECTORY <> 0 then
        Continue;
      { If the existing file is read-only, try to strip the attribute }
      if Attribs and FILE_ATTRIBUTE_READONLY <> 0 then
        SetFileAttributes(PChar(NewFilename), Attribs and not FILE_ATTRIBUTE_READONLY);
    end;
    if MoveFileEx(PChar(Filename), PChar(NewFilename), MOVEFILE_REPLACE_EXISTING) then begin
      Result := NewFilename;
      Break;
    end;
    Inc(Attempts);
    { Limit MoveFileEx calls to 10 since it can be really slow over network
      connections when a file is in use }
    if Attempts = 10 then
      Break;
  end;
end;

procedure DeleteSelf;
var
  SelfFilename, NewFilename: String;
begin
  SelfFilename := NewParamStr(0);
  if Win32Platform = VER_PLATFORM_WIN32_NT then begin
    { On NT, RestartReplace will fail if the user doesn't have admin
      privileges. We don't want to leak temporary files, so try to rename
      ourself to a non-random name. This way, future runs should just keep
      overwriting the same temp file. }
    DeleteOldTempFiles(PathExtractPath(SelfFilename));
    NewFilename := RenameToNonRandomTempName(SelfFilename);
    if NewFilename <> '' then
      RestartReplace(NewFilename, '')
    else
      RestartReplace(SelfFilename, '');
  end
  else
    RestartReplace(SelfFilename, '');
end;

procedure RunRegSvr;
var
  Mutex: THandle;
  F: TTextFileReader;
  L, ListFilename, RegFilename: String;
begin
  if CompareText(NewParamStr(1), '/REG') <> 0 then
    Exit;

  { Try to create and acquire a mutex.
    In cases where multiple IS installers have each created their own RegSvr
    RunOnce entries in HKCU, Windows Explorer will execute them asynchronously.
    This could have undesirable ramifications -- what might happen if the same
    DLL were registered simultaneously by two RegSvr processes? Could the
    registry entries be in an incomplete/inconsistent state? I'm not sure, so
    a mutex is used here to ensure registrations are serialized. }
  Mutex := CreateMutex(nil, False, 'Inno-Setup-RegSvr-Mutex');
  if Mutex <> 0 then
    WaitForSingleObject(Mutex, INFINITE);
  try
    ListFilename := PathChangeExt(NewParamStr(0), '.lst');
    { The .lst file may not exist at this point, if we were already run
      previously, but the RunOnce entry could not be removed due to lack of
      admin privileges. }
    if NewFileExists(ListFilename) then begin
      F := TTextFileReader.Create(ListFilename, fdOpenExisting, faRead, fsRead);
      try
        while not F.Eof do begin
          L := F.ReadLine;
          if (Length(L) > 3) and (L[1] = '[') and (L[3] = ']') then begin
            RegFilename := Copy(L, 4, Maxint);
            try
              case L[2] of
                's': RegisterServer(RegFilename, True);
                't': RegisterTypeLibrary(RegFilename);
              end;
            except
              { can't show exceptions; SetupMessages haven't been loaded }
            end;
          end;
        end;
      finally
        F.Free;
      end;
    end;

    DeleteFile(ListFilename);

    try
      DeleteSelf;
    except
      { ignore exceptions }
    end;
  finally
    if Mutex <> 0 then begin
      ReleaseMutex(Mutex);
      CloseHandle(Mutex);
    end;
  end;
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色av电影| 色网综合在线观看| 亚洲精品大片www| 日韩欧美国产系列| 欧美性大战久久久久久久蜜臀| 精品一区二区三区不卡| 亚洲一区中文在线| 中文字幕国产精品一区二区| 欧美成人乱码一区二区三区| 欧美性高清videossexo| aaa欧美色吧激情视频| 国产一区二区三区国产| 日韩精品免费视频人成| 亚洲综合一区二区三区| 亚洲国产精品ⅴa在线观看| 日韩一区二区三区电影| 欧美午夜一区二区三区 | 丁香六月久久综合狠狠色| 日韩成人午夜精品| 午夜精彩视频在线观看不卡| 一区二区三区在线视频观看58 | 日韩理论片网站| 国产天堂亚洲国产碰碰| 精品久久久久久久人人人人传媒| 91精品国产欧美一区二区| 欧美三级视频在线| 91成人在线精品| 91免费在线播放| www.久久久久久久久| 成人免费va视频| www.亚洲色图| 99国产一区二区三精品乱码| 成人h动漫精品一区二区| 国产成a人亚洲精| 国产精品自拍毛片| 国产精品99久久久久久宅男| 国产一区二区三区蝌蚪| 国产夫妻精品视频| 成人精品视频.| www.综合网.com| 97精品电影院| 色吊一区二区三区| 欧美艳星brazzers| 欧美三区在线观看| 91麻豆精品国产91久久久更新时间| 欧美最猛性xxxxx直播| 欧美精品第一页| 日韩欧美国产wwwww| 日韩欧美国产精品| 久久精品视频网| 国产精品久久久一本精品| 成人免费视频在线观看| 一区二区三区高清| 三级久久三级久久久| 久久国产生活片100| 国产精品亚洲一区二区三区在线 | 日韩中文字幕不卡| 麻豆成人久久精品二区三区红| 久久超碰97中文字幕| 高清国产一区二区| 在线看日本不卡| 日韩欧美高清一区| 亚洲国产精品av| 亚洲午夜av在线| 另类调教123区| zzijzzij亚洲日本少妇熟睡| 欧美性猛交xxxx乱大交退制版 | 久久人人97超碰com| 国产精品久久久久9999吃药| 一区二区三区av电影| 美女一区二区视频| 99视频超级精品| 欧美一区国产二区| 亚洲国产电影在线观看| 亚洲国产中文字幕| 国产在线不卡视频| 91久久精品日日躁夜夜躁欧美| 7777精品伊人久久久大香线蕉 | 日本韩国精品在线| 欧美一区二区三区人| 国产精品久久久久7777按摩| 亚洲一区二区三区四区在线免费观看 | 欧美高清视频不卡网| 国产欧美一区二区三区网站| 亚洲成国产人片在线观看| 国产伦精品一区二区三区免费| 91久久奴性调教| 国产午夜精品在线观看| 午夜av电影一区| 91无套直看片红桃| 久久综合成人精品亚洲另类欧美| 亚洲狼人国产精品| 国产剧情av麻豆香蕉精品| 欧美精品一二三区| 中文字幕一区二区三区视频| 精品一区二区久久久| 一本色道a无线码一区v| 久久久精品蜜桃| 日韩电影免费在线观看网站| 一本到不卡精品视频在线观看| 日韩免费看的电影| 亚洲成人动漫一区| 成人动漫av在线| 久久久亚洲综合| 日本视频在线一区| 欧美日韩一区二区三区高清| 中文字幕一区二区在线观看| 国产毛片精品国产一区二区三区| 欧美午夜精品久久久久久孕妇| 欧美激情综合在线| 国精品**一区二区三区在线蜜桃| 欧美色电影在线| 一区二区三区鲁丝不卡| 99久久久精品| 国产精品麻豆视频| 国产精品1024| 久久只精品国产| 精品一区二区在线免费观看| 欧美日韩视频在线一区二区| 尤物在线观看一区| 91美女在线观看| **性色生活片久久毛片| 风间由美一区二区三区在线观看 | 日本一区二区动态图| 国产自产视频一区二区三区| 91精品国产乱| 亚洲不卡av一区二区三区| 在线观看日韩电影| 一区二区三区视频在线看| 91色在线porny| 亚洲精品免费在线播放| 色婷婷国产精品| 亚洲免费观看高清完整版在线观看熊| 成人a级免费电影| 国产精品传媒在线| jlzzjlzz亚洲女人18| 国产精品另类一区| www.日韩在线| 亚洲美女偷拍久久| 色哟哟欧美精品| 亚洲国产欧美日韩另类综合| 欧美日韩精品三区| 日本va欧美va精品| 欧美精品一区二区在线播放| 国产最新精品免费| 国产精品入口麻豆原神| 95精品视频在线| 亚洲最新在线观看| 91.xcao| 欧美午夜精品理论片a级按摩| 亚洲一区影音先锋| 欧美一卡2卡3卡4卡| 国内久久精品视频| 国产欧美精品在线观看| 97超碰欧美中文字幕| 亚洲电影视频在线| 精品国内二区三区| 成人av免费在线观看| 亚洲高清三级视频| 日韩久久久精品| av一区二区三区在线| 亚洲高清在线视频| 日韩精品一区二区三区中文不卡| 国产成人夜色高潮福利影视| 亚洲日本青草视频在线怡红院| 欧美日韩亚洲不卡| 国产九色sp调教91| 亚洲精品一二三四区| 日韩欧美美女一区二区三区| 成人免费观看男女羞羞视频| 亚洲福利视频一区| 亚洲精品一区二区三区99| 91麻豆.com| 开心九九激情九九欧美日韩精美视频电影 | 婷婷夜色潮精品综合在线| www欧美成人18+| 91蝌蚪porny成人天涯| 喷水一区二区三区| 日韩毛片一二三区| 日韩精品一区二区三区蜜臀| 91在线免费看| 国产一区免费电影| 亚洲国产精品久久久久秋霞影院 | 亚洲第一福利一区| 久久嫩草精品久久久精品| 欧美视频一区二区在线观看| 国产麻豆一精品一av一免费| 亚洲一区在线观看免费| 国产婷婷一区二区| 51精品国自产在线| 一本久久综合亚洲鲁鲁五月天| 久久国产精品99久久人人澡| 亚洲综合成人网| 中文字幕第一区综合| 欧美成人精精品一区二区频| 日本高清不卡在线观看| 国产激情视频一区二区三区欧美 | 亚洲五码中文字幕| 国产精品毛片久久久久久久| 日韩一区二区免费在线电影|