• 剪贴板增强---Kawvin增强剪贴板_V2.0


    #Persistent  
    SetWorkingDir,%A_ScriptDir%      ;设置工作目录  
    #MaxThreadsPerHotkey 5              ;最大热键数量  
    #NoEnv  
    ;#Warn  
    #SingleInstance force                      ;单脚本运行  
    #WinActivateForce                          ;强制激活窗体  
    Process Priority,,High                       ;线程,主,高级  
    CoordMode, Mouse                          ;鼠标相对于屏幕  
    AutoTrim,on                                     ;自动省略首尾的空格和Tab  
    SetBatchLines -1                              ;让脚本无休眠地执行(换句话说,也就是让脚本全速运行)  
    ComObjError(0)                               ;禁用  COM 错误通告  
    Menu, Tray, UseErrorLevel               ;阻止显示对话框和终止线程  
    ; #NoTrayIcon  
      
    Label_DefVar:  
        global MyAppVer:="Kawvin增强剪贴板v2.0(Q285781427)"  
        global MyClipBoard_ini:= "MyClipBoard.ini"  
          
        global All_Modes:="一次复制多次粘贴|多次复制一次粘贴|同时使用2个剪贴板|临时记事本|禁用"  
        global Sel_Mode:=                       ;当前模式  
        global EnableSound:=                ;启用声音  
        global CopyHotKey:=                 ;复制热键  
        global PasteHotKey:=                    ;粘贴热键  
        global BackHotKey:=                 ;多次向前  
        global PrevHotKey:=                 ;多次向后  
        global MenuHotKey:=             ;菜单热键  
        global ListWinHotKey:=              ;列表窗体热键  
        global LCopyHotKey:=                ;用于显示-复制热键  
        global LPasteHotKey:=               ;用于显示-粘贴热键  
        global LBackHotKey:=                ;用于显示-多次向前  
        global LPrevHotKey:=                    ;用于显示-多次向后  
        global LMenuHotKey:=                ;用于显示-菜单热键  
        global LListWinHotKey:=         ;用于显示-列表窗体热键  
      
        global MyClipMenu:=         ;定义剪贴板菜单  
        global CurWin_Title:=           ;当前鼠标下的窗体标题  
          
        global MyUseTongPei :=0     ;设置是否启用通配符  
        global MyPasteLine :=0      ;定义目前将要粘贴的行数  
        global MyClipArray:={}      ;定义剪贴板历史记录  
        global MyMaxID:=0           ;最大序号  
        global MySel:=                  ;定义临时存放变量  
        global MySelRich:=              ;定义临时存放变量  
        global MyAutoEnter :=       ;定义是否自动回车  
        global MyFirText:=              ;第一剪贴板内容  
        global MySecText:=          ;第二剪贴板内容  
        global MyWS:=                   ;位数  
        global MyStart:=                ;起始序号  
        global MyEnd:=                  ;终止序号  
        global MySpace:=                ;间距  
      
    Label_Start:  
        iniRead,Sel_Mode,%MyClipBoard_ini%,通用设置,当前模式  
        iniRead,EnableSound,%MyClipBoard_ini%,通用设置,启用声音  
        iniRead,CopyHotKey,%MyClipBoard_ini%,通用设置,复制热键  
        iniRead,PasteHotKey,%MyClipBoard_ini%,通用设置,粘贴热键  
        iniRead,BackHotKey,%MyClipBoard_ini%,通用设置,多次向前  
        iniRead,PrevHotKey,%MyClipBoard_ini%,通用设置,多次向后  
        iniRead,MenuHotKey,%MyClipBoard_ini%,通用设置,菜单热键  
        iniRead,ListWinHotKey,%MyClipBoard_ini%,通用设置,窗体热键  
      
        ;替换热键到正常键  
        LCopyHotKey:=MyFun_RetrunKeys(CopyHotKey)  
        LPasteHotKey:=MyFun_RetrunKeys(PasteHotKey)  
        LBackHotKey:=MyFun_RetrunKeys(BackHotKey)  
        LPrevHotKey:=MyFun_RetrunKeys(PrevHotKey)  
        LMenuHotKey:=MyFun_RetrunKeys(MenuHotKey)  
        LListWinHotKey:=MyFun_RetrunKeys(ListWinHotKey)  
        SkSub_CreatTrayMenu()  
      
      
    Label_RegHotKey:  
        CopyHotKey=$%CopyHotKey%  
        PasteHotKey=$%PasteHotKey%  
        BackHotKey=$%BackHotKey%  
        PrevHotKey=$%PrevHotKey%  
        MenuHotKey=$%MenuHotKey%  
        ListWinHotKey=$%ListWinHotKey%  
        if (Sel_Mode!="禁用")  
        {  
            hotkey,%CopyHotKey%,Label_Copy  
            hotkey,%PasteHotKey%,Label_Paste  
            hotkey,%BackHotKey%,Label_PasteBack  
            hotkey,%PrevHotKey%,Label_PastePrev  
            hotkey,%MenuHotKey%,TrayHandle_ShowMyClipArrayMenu  
            hotkey,%ListWinHotKey%,TrayHandle_ShowListWin  
        }  
      
    Label_DrawGUI:  
        gui Destroy  
        if Sel_Mode=一次复制多次粘贴  
        {  
            gui Main:+AlwaysOnTop  
            Gui Font, w700 cRed  
            Gui, Add, Text, x10 y5  h20 , 复制/添加:%LCopyHotKey%,1次粘贴:%LPasteHotKey%,②多次向:前%LBackHotKey%/后%LPrevHotKey%  
            Gui Font  
            Gui, Add, Edit, vMyFirText x12 y22 w360 h330 ,  
            Gui Font, w700 cRed  
            Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车  
            Gui Font  
            Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , ①数据确认  
            Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置  
            Gui Font, s10 w700 cRed  
            gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%  
            Gui Font  
            Gui, Show, x127 y87 h402 w385, %MyAppVer%  
        }   
        if Sel_Mode=多次复制一次粘贴  
        {  
            gui Main:+AlwaysOnTop  
            Gui Font, w700 cRed  
            Gui, Add, Text, x10 y5  h20 ,复制/添加:%LCopyHotKey%,粘贴:%LPasteHotKey%  
            Gui Font  
            Gui, Add, Edit, vMyFirText x12 y22 w360 h330 ,  
            Gui Font, w700 cRed  
            Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车  
            Gui Font  
            ;Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , 数据确认  
            Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置  
            Gui Font, s10 w700 cRed  
            gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%  
            Gui Font  
            Gui, Show, x127 y87 h402 w385, %MyAppVer%  
        }   
        if Sel_Mode=同时使用2个剪贴板  
        {  
            gui Main:+AlwaysOnTop  
            Gui Font, w700 cRed  
            Gui, Add, Text, x10 y5  h20 , 第1剪切板(复制:Alt+F11,粘贴:%LBackHotKey%)  
            Gui Font  
            Gui, Add, Edit, vMyFirText x12 y22 w360 h185 ,  
            Gui Font, w700 cRed  
            Gui, Add, Text, x12 y213 h20 , 第2剪切板(复制:Alt+F12,粘贴:%LPrevHotKey%)  
            Gui, Add, CheckBox, vMyUseTongPei gLabel_EnabledTongPei x273 y210 w120 h20 , 启用通配符(*)  
            Gui Font  
            Gui, Add, Edit, vMySecText x12 y230 w360 h90 ,  
            Gui, Add, Text, x12 y334 w30 h20 , 位数  
            Gui, Add, Edit, vMyWS x38 y330 w50 h20 ,  
            Gui, Add, UpDown, range1-9 x82 y330 w20 h20 , 1  
            Gui, Add, Text, x108 y334 w30 h20 , 起始  
            Gui, Add, Edit, vMyStart x134 y330 w50 h20 , 1  
            Gui, Add, UpDown, range1-999 x162 y330 w20 h20 , 1  
            Gui, Add, Text, x204 y334 w30 h20 , 终止  
            Gui, Add, Edit, vMyEnd x230 y330 w50 h20 ,  
            Gui, Add, UpDown, range1-999 x212 y330 w20 h20 , 99  
            Gui, Add, Text, x295 y334 w30 h20 , 间距  
            Gui, Add, Edit, vMySpace x322 y330 w50 h20 ,  
            Gui, Add, UpDown, range1-999 x352 y330 w20 h20 , 1  
            Gui Font, w700 cRed  
            Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车  
            Gui Font  
            ;Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , 数据确认  
            Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置  
            Gui Font, s10 w700 cRed  
            gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%  
            Gui Font  
            Gui, Show, x127 y87 h402 w385, %MyAppVer%  
        }   
        if Sel_Mode=临时记事本  
        {  
            gui Main:+AlwaysOnTop  
            Gui Font, w700 cRed  
            Gui, Add, Text, x10 y5  h20 , 复制/添加:%LCopyHotKey%,1次粘贴:%LPasteHotKey%,②多次向:前%LBackHotKey%/后%LPrevHotKey%  
            Gui Font  
            Gui, Add, Edit, vMyFirText x12 y22 w360 h330 ,  
            Gui Font, w700 cRed  
            Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车  
            Gui Font  
            Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , ①数据确认  
            Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置  
            Gui Font, s10 w700 cRed  
            gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%  
            Gui Font  
            Gui, Show, x127 y87 h402 w385, %MyAppVer%  
        }   
        WinGet, MyID, ID, A   ; 获取 窗体ID.  
        WinGetPos,,, MyWindowWidth, MyWindowHeight, A  
      
        ;---- 放置屏幕键盘在屏幕的底部(考虑到任务栏的位置):  
        SysGet, MyWorkArea, MonitorWorkArea, %MyMonitor%  
      
        ; 计算用户窗体X坐标:  
        MyWindowX = %MyWorkAreaRight%  
        MyWindowX -= %MyWorkAreaLeft%  ; 现在 MyWindowX 包含了显示器的宽度.  
        MyWindowX -= %MyWindowWidth%  
        MyWindowX += %MyWorkAreaWidth%  ; 计算水平靠右的位置.  
        ; 以下操作是为了防止窗体不是主显示器,或者任务栏停靠在屏幕左侧:  
        MyWindowX += %MyWorkAreaLeft%  
      
        ; 计算用户窗体Y坐标:  
        MyWindowY = %MyWorkAreaBottom%  
        MyWindowY -= %MyWindowHeight%  
      
        WinMove, A,, %MyWindowX%, %MyWindowY%  
        WinSet, AlwaysOnTop, On, ahMyid %MyID%  
        ;WinSet, TransColor, %TransColor% 220, ahMyid %MyID%  
    return  
      
    ;=========================  
    ;我的过程  
    SkSub_CreatTrayMenu()  
    {  
        Menu,Tray,DeleteAll  
        Menu, Tray, NoStandard        ;自定义菜单放在标准菜单上面  
        iniRead,Sel_Mode,%MyClipBoard_ini%,通用设置,当前模式  
        if Sel_Mode=禁用  
            menu,tray,icon,ICONSKCx.ico  
        else  
            menu,tray,icon,ICONSKC.ico  
        loop,parse,All_Modes,`|  
        {  
            if A_LoopField!=  
            {  
                Menu, tray, add,%A_LoopField%,TrayHandle_ModeChange  
                if (A_LoopField=Sel_Mode)  
                    menu,tray,Check ,%A_LoopField%  
            }  
        }  
        Menu,tray, add ; 分隔符  
        menu,tray,add,清空剪贴板,TrayHandle_ClearCllipBoard  
        Menu, tray, add ,剪贴板序列菜单,TrayHandle_ShowMyClipArrayMenu  
        Menu, tray, add ,显示剪贴板列表窗体,TrayHandle_ShowListWin  
        Menu, tray, add ; 分隔符  
        Menu,tray, add,参数设置,TrayHandle_EditSetting  
        Menu,tray, add ; 分隔符  
        Menu, tray, add ,退出,TrayHandle_Exit  
        Menu, Tray, Default, 剪贴板序列菜单  
        Menu, Tray, Click, 1   
    }  
    return  
      
    SkSub_CreatMyClipArrayMenu()  
    {  
        if MyClipArray.Length()<=1  
            return  
        Menu,MyClipMenu,DeleteAll  
        loop % MyClipArray.Length()  
        {  
            MyClipItem:=  
            if strlen(MyClipArray[A_Index])>20  
            {  
                MyClipItem:=substr(MyClipArray[A_Index],1,20) . "......"   
            } else {  
                MyClipItem:=% MyClipArray[A_Index]  
            }  
            menu,MyClipMenu,add,%MyClipItem%,MenuHandle_SetMenuItemToClipBoard  
            menu,MyClipMenu,Icon,%MyClipItem%,ICONS%A_Index%.ico  
        }  
        menu,MyClipMenu,add  
        menu,MyClipMenu,add,清空历史记录,MenuHandle_ClearMenuItem  
        ;Menu, MyClipMenu, Show   
    }  
    return  
      
    TrayHandle_ShowMyClipArrayMenu:  
    {  
        ;MouseGetPos,Menu_X, Menu_Y  
        MouseGetPos,,,CurWin_id         ;当前鼠标下的进程ID  
        WinGet, CurWin_Fullpath,ProcessPath,Ahk_ID %CurWin_id%    ;当前进程的路径  
        WinGetTitle, CurWin_Title,Ahk_ID %CurWin_id%    ;当前进程的标题  
        Menu, MyClipMenu, Show  
    }  
    return  
      
    MenuHandle_SetMenuItemToClipBoard:  
        MyPasteLine:=A_ThisMenuItemPos  
        ClipBoard:=MyClipArray[MyPasteLine]  
        ClipWait,0.5  
        send,^{vk56}  
    return  
      
    MenuHandle_ClearMenuItem:  
        MyClipArray:={}  
        Clipboard:=  
        Menu,MyClipMenu,DeleteAll  
    return  
      
    TrayHandle_ShowListWin:  
        gosub ,Label_GetData  
        GuiControlGet,MyFirText,,MyFirText  
        MouseGetPos,,,CurWin_id         ;当前鼠标下的进程ID  
        WinGet, CurWin_Fullpath,ProcessPath,Ahk_ID %CurWin_id%    ;当前进程的路径  
        WinGetTitle, CurWin_Title,Ahk_ID %CurWin_id%    ;当前进程的标题  
        Gui MyListWin:New  
        Gui MyListWin:+AlwaysOnTop  
        Gui MyListWin:Font, s12  
        Gui MyListWin:Add,Text, x5 y13  h21,指定的程序:  
        Gui,MyListWin:Add, DropDownList,x100 y10 w300 vactivewindow,   
        Gui MyListWin:Add,Button,x405 y9 w70 gMySub_RefreshList,刷新  
        MySub_RefreshList()  
        MyListItems:=  
        if MyClipArray.Length()=0  
            return  
        loop % MyClipArray.Length()  
        {  
            if (A_Index=1)  
                MyListItems:=MyClipArray[A_Index]  
            else  
                MyListItems:=MyListItems . "|" . MyClipArray[A_Index]  
        }  
          
        Gui MyListWin:Add,ListBox,  x5  w470 h465 vMyListItem gMySub_PastMyListItem, %MyListItems%  
        Gui MyListWin:Font  
        Gui MyListWin:Show, w480 h500, 剪贴板列表  
    return  
      
    TrayHandle_ClearCllipBoard:  
        Clipboard:=  
    return  
      
    TrayHandle_ModeChange:  
        Sel_Mode:=A_ThisMenuItem  
        iniwrite,%Sel_Mode%,%MyClipBoard_ini%,通用设置,当前模式  
        Reload  
    return  
          
    TrayHandle_EditSetting:  
        ;gui Destroy  
        gui MySetWin:New  
        ;Gui MySetWin:+OwnerMain  
        gui MySetWin:+AlwaysOnTop  
        Gui MySetWin:Font, s12  
        Gui MySetWin:Add, GroupBox, x11 y6 w315 h185, 热键指定:通用  
        Gui MySetWin:Font  
        Gui MySetWin:Font, s11  
        Gui MySetWin:Add, Text, x25 y35 w105 h23 +0x200 Right, 复制:  
        Gui MySetWin:Add, Edit, x145 y35 w165 h21  
        Gui MySetWin:Add, Text, x25 y65 w105 h23 +0x200 Right, 一次性粘贴:  
        Gui MySetWin:Add, Edit, x145 y65 w165 h21  
        Gui MySetWin:Add, Text, x25 y95 w105 h23 +0x200 Right, 向前粘贴:  
        Gui MySetWin:Add, Edit, x145 y95 w165 h21  
        Gui MySetWin:Add, Text, x25 y125 w105 h23 +0x200 Right, 向后粘贴:  
        Gui MySetWin:Add, Edit, x145 y125 w165 h21  
        Gui MySetWin:Add, Text, x25 y155 w105 h23 +0x200 Right, 弹出菜单:  
        Gui MySetWin:Add, Edit, x145 y155 w165 h21  
        Gui MySetWin:Add, Button, x65 y205 w75 h30, 确认  
        Gui MySetWin:Add, Button, gWinSetButtonCancel x200 y205 w75 h30, 取消  
        Gui MySetWin:Font  
        Gui MySetWin:Show, w340 h250, 参数设置  
    return  
      
    MySub_RefreshList()  
    {  
        droplist:=  
        GuiControl,MyListWin:,activewindow,|  
        WinGet, id, list,,, Program Manager  
        Loop, %id%  
        {  
            this_id := id%A_Index%  
            WinGetTitle, this_title, ahk_id %this_id%  
            if this_title=  
                continue  
            if (this_title=CurWin_Title)  
                droplist=%droplist%%this_title%||  
            else  
                droplist=%droplist%%this_title%|  
        }  
        GuiControl,MyListWin:,activewindow, %droplist%  
        ;Gui, MyListWin:Add, DropDownList,x100 y5 w370 vactivewindow, %droplist%  
    }  
      
    MySub_PastMyListItem()  
    {  
        GuiControlget,activewindow,MyListWin:  
        ;MsgBox % activewindow  
        if A_GuiEvent =DoubleClick  
        {  
            ClipBoard:=MyClipArray[A_EventInfo]  
            sleep 100  
            ;WinWaitActive, %CurWin_Title% ,,5  
            WinActivate, %activewindow%  
            send,^{vk56}  
        }  
    }  
      
    WinSetButtonCancel:  
    {  
        Gui MySetWin:Destroy  
        return  
    }  
      
    MySetWin确认:  
    {  
        Gui MySetWin:Destroy  
        return  
    }  
      
    Label_Copy:  
        if (Sel_Mode="一次复制多次粘贴" or Sel_Mode="多次复制一次粘贴" or Sel_Mode="临时记事本")  
        {  
            Clipboard =  
            Send, ^{vk43}  
            ClipWait,0.5  
            if ( ErrorLevel  )          ;如果没有选择到什么东西,则退出  
                Return  
            if MyFirText=  
                MyFirText=%Clipboard%  
            else  
                MyFirText=%MyFirText%`n%Clipboard%  
            Clipboard =  
            GuiControl,,MyFirText,%MyFirText%  
        }   
    return  
      
    Label_Paste:  
        Critical, On  
        GuiControlget, MyAutoEnter  
        GuiControlget, MyFirText  
        if (Sel_Mode="一次复制多次粘贴" or Sel_Mode="多次复制一次粘贴" or Sel_Mode="临时记事本")  
        {  
            if MyFirText=  
                return  
            else  
            {  
                if MyClipArray.Length()=0  
                    Clipboard:=MyFirText  
                sleep 100  
                if (MyAutoEnter=1)      ;如果自动回车  
                {  
                    send,^{vk56}  
                    send,{Enter}  
                } else {  
                    send,^{vk56}  
                }  
                Clipboard:=  
            }  
        }   
    return  
      
    !F11::  
        Critical, On  
        if Sel_Mode=同时使用2个剪贴板  
        {  
            GuiControl,,MyFirText,  
            Clipboard =  
            Send, ^{vk43}  
            ClipWait,0.5  
            if ( ErrorLevel  )          ;如果没有选择到什么东西,则退出  
                Return  
            GuiControl,,MyFirText,%Clipboard%  
            Clipboard =  
        }   
    return  
      
    !F12::  
        Critical, On  
        if Sel_Mode=同时使用2个剪贴板  
        {  
            GuiControl,,MySecText,  
            Clipboard =  
            Send, ^{vk43}  
            ClipWait,0.5  
            if ( ErrorLevel  )          ;如果没有选择到什么东西,则退出  
                Return  
            GuiControl,,MySecText,%Clipboard%  
            Clipboard =  
        }   
    return  
      
    Label_PasteBack:  
        Critical, On  
        GuiControlget, MyAutoEnter  
        if (Sel_Mode="一次复制多次粘贴" or  Sel_Mode="临时记事本")  
        {  
            if (MyPasteLine=-1) ;粘贴行数-1时,退出  
                Return  
            MyPasteLine -=1  
            if (MyPasteLine <1)  ;粘贴行数大于最大行数,不粘贴  
            {  
                MyPasteLine:=0  
                return  
            }  
            Clipboard:=MyClipArray[MyPasteLine]  
            sleep 100  
            if (MyAutoEnter=1)      ;如果自动回车  
            {  
                send,^{vk56}  
                send,{Enter}  
            } else {  
                send,^{vk56}  
            }  
            Clipboard:=  
        }   
        if (Sel_Mode="同时使用2个剪贴板")  
        {  
            GuiControlGet, MyFirText  
            if MyFirText=  
                return  
            else  
            {  
                Clipboard:=MyFirText  
                sleep 100  
                if (MyAutoEnter=1)      ;如果自动回车  
                {  
                    send,^{vk56}  
                    send,{Enter}  
                } else {  
                    send,^{vk56}  
                }  
                Clipboard:=  
            }  
        }   
    return  
      
    Label_PastePrev:  
        Critical, On  
        GuiControlget, MyAutoEnter  
        if (Sel_Mode="一次复制多次粘贴" or  Sel_Mode="临时记事本")  
        {  
            if (MyPasteLine=-1) ;粘贴行数-1时,退出  
                Return  
            MyPasteLine +=1  
            if (MyPasteLine > MyMaxID)   ;粘贴行数大于最大行数,不粘贴  
            {  
                MyPasteLine:=MyMaxID+1  
                return  
            }  
            Clipboard:=MyClipArray[MyPasteLine]  
            sleep 100  
            if (MyAutoEnter=1)      ;如果自动回车  
            {  
                send,^{vk56}  
                send,{Enter}  
            } else {  
                send,^{vk56}  
            }  
            Clipboard:=  
        }   
        if (Sel_Mode="同时使用2个剪贴板")  
        {  
            GuiControlGet, MySecText  
            GuiControlGet, MyWS  
            GuiControlGet, MyStart  
            GuiControlGet, MyEnd  
            GuiControlGet, MySpace  
            GuiControlGet, MyUseTongPei  
            if MySecText=       ;第二剪贴板为空,退出  
                Return  
            if (MyUseTongPei=0) ;不启用通配符  
            {  
                Clipboard:=MySecText  
                sleep 100  
                if (MyAutoEnter=1)  ;如果自动回车  
                {  
                    send,^{vk56}  
                    send,{Enter}  
                } else {  
                    send,^{vk56}  
                }  
                Clipboard:=  
            }  
            if (MyUseTongPei=1) ;启用通配符  
            {  
                if (MyStart<MyEnd+1) ;如果起始值小于终止值  
                {  
                    MyTemStr:=MySecText  
                    ;MyPiPei:=MyFun_MakeN0(MyStart,MyWS)  
                    MyPiPei:=substr("000000000" . MyStart,1-MyWS)  
                    stringreplace,MyTemStr,MyTemStr,(*),%MyPiPei%,all  
                    MyStart:=MyStart+MySpace  
                    GuiControl,,MyStart,%MyStart%  
                    Clipboard:=MyTemStr  
                    sleep 100  
                    if (MyAutoEnter=1)  ;如果自动回车  
                    {  
                        send,^{vk56}  
                        send,{Enter}  
                    } else {  
                        send,^{vk56}  
                    }  
                    Clipboard:=  
                }  
            }  
        }   
    return  
      
    ; 粘贴后自动回车  
    Label_AutoEnter:  
    {  
        if (MyAutoEnter=1)  
            MyAutoEnter:=0  
        else   
            MyAutoEnter:=1  
    return  
    }  
      
    ; 清空重置  
    Label_Clear:  
    {  
        MyPasteLine:=-1  
        MyClipArray:={}  
        MyMaxID:=0  
        MyFirText:=  
        MySecText:=  
        MyWS:=1  
        MyStart:=1  
        MyEnd:=99  
        MySpace:=1  
        GuiControl,,MyFirText,  
        GuiControl,,MySecText,  
        GuiControl,,MyWS,1  
        GuiControl,,MyStart,1  
        GuiControl,,MyEnd,99  
        GuiControl,,MySpace,1  
        ;清空菜单  
        Clipboard:=  
        Menu,MyClipMenu,DeleteAll  
    Return  
    }  
      
    ; 获取数据  
    Label_GetData:  
    {  
        GuiControlGet, MyFirText  
        MyClipArray:={}  
        if (Sel_Mode="一次复制多次粘贴" or Sel_Mode="临时记事本")  
        {  
            ;读取内容到数组  
            loop,parse,MyFirText,`n`|,`r  
            {  
                TemStr:=A_LoopField  
                if (TemStr="")  
                    continue  
                MyClipArray.push(Temstr)  
            }  
            MyMaxID:=MyClipArray.Length()  
            MyPasteLine:=0  
        }  
        ;创建菜单  
        SkSub_CreatMyClipArrayMenu()  
    return  
    }  
      
    ; 启用通配符  
    Label_EnabledTongPei:  
    {  
        if (MyUseTongPei =0)  
        {  
            MyUseTongPei :=1  
            GuiControlGet,MySecText,,MySecText  
            GuiControl,,MySecText,%MySecText%(*)  
        }else {  
            MyUseTongPei :=0  
            GuiControlGet,MySecText,,MySecText  
            StringReplace,MySecText,MySecText,(*),,All  
            GuiControl,,MySecText,%MySecText%  
        }  
    return  
    }  
      
    MyFun_RetrunKeys(HotKeyString)  
    {  
        StringReplace,HotKeyString,HotKeyString,`+,Shift`+,All  
        StringReplace,HotKeyString,HotKeyString,`!,Alt`+,All  
        StringReplace,HotKeyString,HotKeyString,`^,Ctrl`+,All  
        StringReplace,HotKeyString,HotKeyString,`#,Win`+,All  
        return , % HotKeyString  
    }  
      
    GuiClose:  
    TrayHandle_Exit:  
    ExitApp  
  • 相关阅读:
    转载文章:用.NET开发MSN聊天机器人 MSN聊天机器人开发揭秘
    ppc全屏程序(转)
    表设计中遇到的多对多的关系解决方案 (zt)
    using ZedGraph
    DataTable.Select(expression)
    你认识它吗?什么是QR码?
    分享《Windows Mobile平台应用与开发》源代码
    收藏信息
    六世喇嘛仓央嘉措诗集
    使用Axis开发Web Service程序
  • 原文地址:https://www.cnblogs.com/zhanglei1371/p/6664883.html
Copyright © 2020-2023  润新知