#Persistent
SetWorkingDir,%A_ScriptDir% ;设置工作目录
#MaxThreadsPerHotkey ;最大热键数量
#NoEnv
;#Warn
#SingleInstance force ;单脚本运行
#WinActivateForce ;强制激活窗体
Process Priority,,High ;线程,主,高级
CoordMode, Mouse ;鼠标相对于屏幕
AutoTrim,on ;自动省略首尾的空格和Tab
SetBatchLines - ;让脚本无休眠地执行(换句话说,也就是让脚本全速运行)
ComObjError() ;禁用 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 := ;设置是否启用通配符
global MyPasteLine := ;定义目前将要粘贴的行数
global MyClipArray:={} ;定义剪贴板历史记录
global MyMaxID:= ;最大序号
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- x82 y330 w20 h20 ,
Gui, Add, Text, x108 y334 w30 h20 , 起始
Gui, Add, Edit, vMyStart x134 y330 w50 h20 ,
Gui, Add, UpDown, range1- x162 y330 w20 h20 ,
Gui, Add, Text, x204 y334 w30 h20 , 终止
Gui, Add, Edit, vMyEnd x230 y330 w50 h20 ,
Gui, Add, UpDown, range1- x212 y330 w20 h20 ,
Gui, Add, Text, x295 y334 w30 h20 , 间距
Gui, Add, Edit, vMySpace x322 y330 w50 h20 ,
Gui, Add, UpDown, range1- x352 y330 w20 h20 ,
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% , ahMyid %MyID%
return ;=========================
;我的过程
SkSub_CreatTrayMenu()
{
Menu,Tray,DeleteAll
Menu, Tray, NoStandard ;自定义菜单放在标准菜单上面
iniRead,Sel_Mode,%MyClipBoard_ini%,通用设置,当前模式
if Sel_Mode=禁用
menu,tray,icon,ICONS\KCx.ico
else
menu,tray,icon,ICONS\KC.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,
}
return SkSub_CreatMyClipArrayMenu()
{
if MyClipArray.Length()<=
return
Menu,MyClipMenu,DeleteAll
loop % MyClipArray.Length()
{
MyClipItem:=
if strlen(MyClipArray[A_Index])>
{
MyClipItem:=substr(MyClipArray[A_Index],,) . "......"
} 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()=
return
loop % MyClipArray.Length()
{
if (A_Index=)
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
;WinWaitActive, %CurWin_Title% ,,
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()=
Clipboard:=MyFirText
sleep
if (MyAutoEnter=) ;如果自动回车
{
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时,退出
Return
MyPasteLine -=
if (MyPasteLine <) ;粘贴行数大于最大行数,不粘贴
{
MyPasteLine:=
return
}
Clipboard:=MyClipArray[MyPasteLine]
sleep
if (MyAutoEnter=) ;如果自动回车
{
send,^{vk56}
send,{Enter}
} else {
send,^{vk56}
}
Clipboard:=
}
if (Sel_Mode="同时使用2个剪贴板")
{
GuiControlGet, MyFirText
if MyFirText=
return
else
{
Clipboard:=MyFirText
sleep
if (MyAutoEnter=) ;如果自动回车
{
send,^{vk56}
send,{Enter}
} else {
send,^{vk56}
}
Clipboard:=
}
}
return Label_PastePrev:
Critical, On
GuiControlget, MyAutoEnter
if (Sel_Mode="一次复制多次粘贴" or Sel_Mode="临时记事本")
{
if (MyPasteLine=-) ;粘贴行数-1时,退出
Return
MyPasteLine +=
if (MyPasteLine > MyMaxID) ;粘贴行数大于最大行数,不粘贴
{
MyPasteLine:=MyMaxID+
return
}
Clipboard:=MyClipArray[MyPasteLine]
sleep
if (MyAutoEnter=) ;如果自动回车
{
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=) ;不启用通配符
{
Clipboard:=MySecText
sleep
if (MyAutoEnter=) ;如果自动回车
{
send,^{vk56}
send,{Enter}
} else {
send,^{vk56}
}
Clipboard:=
}
if (MyUseTongPei=) ;启用通配符
{
if (MyStart<MyEnd+) ;如果起始值小于终止值
{
MyTemStr:=MySecText
;MyPiPei:=MyFun_MakeN0(MyStart,MyWS)
MyPiPei:=substr("" . MyStart,-MyWS)
stringreplace,MyTemStr,MyTemStr,(*),%MyPiPei%,all
MyStart:=MyStart+MySpace
GuiControl,,MyStart,%MyStart%
Clipboard:=MyTemStr
sleep
if (MyAutoEnter=) ;如果自动回车
{
send,^{vk56}
send,{Enter}
} else {
send,^{vk56}
}
Clipboard:=
}
}
}
return ; 粘贴后自动回车
Label_AutoEnter:
{
if (MyAutoEnter=)
MyAutoEnter:=
else
MyAutoEnter:=
return
} ; 清空重置
Label_Clear:
{
MyPasteLine:=-
MyClipArray:={}
MyMaxID:=
MyFirText:=
MySecText:=
MyWS:=
MyStart:=
MyEnd:=
MySpace:=
GuiControl,,MyFirText,
GuiControl,,MySecText,
GuiControl,,MyWS,
GuiControl,,MyStart,
GuiControl,,MyEnd,
GuiControl,,MySpace,
;清空菜单
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:=
}
;创建菜单
SkSub_CreatMyClipArrayMenu()
return
} ; 启用通配符
Label_EnabledTongPei:
{
if (MyUseTongPei =)
{
MyUseTongPei :=
GuiControlGet,MySecText,,MySecText
GuiControl,,MySecText,%MySecText%(*)
}else {
MyUseTongPei :=
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

剪贴板增强---Kawvin增强剪贴板_V2.0的更多相关文章

  1. 接口管理功能全面增强!EOLINKER EPC 5.0.9版本更新:支持LDAP用户系统、加入更多项目统计图表、强化测试/自动化测试功能等

    EOLINKER EPC(Enterprise Private Cloud 企业私有云产品)已于近期发布5.0.9版本:界面全面改版.支持LDAP用户系统.加入更多项目统计图表.强化测试/自动化测试功 ...

  2. 第四代增强 源代码增强(ABAP Source Code Enhancements)

    显式代码增强的创建 se38打开你要增强的程序 进入编辑状态 在菜单栏选择: Edit->Enhancement Opreations->Create option. 此时弹出Create ...

  3. Android 剪贴板详解

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Clipboard 如本文有助于你理解 Android 剪贴板,不妨给我一个 Star.对于码农而言, ...

  4. 【Windows编程】系列第九篇:剪贴板使用

    上一篇我们学习了常见的通用对话框,本篇来了解剪贴板的使用,它常用于复制粘贴功能. 剪贴板是Windows最早就加入的功能,由于该功能非常实用,我们几乎每天都会使用到.通过剪贴板,我们就可以将数据从一个 ...

  5. SAP 增强-出口选找方法-全部

    ■ SAP 中如何寻找增强 方法一:利用TCODE寻找增强(第二代的增强) 执行一个程序(源代码后附),在选择屏幕处输入你所需要增强的程序TCODE,执行後,就会出现一个列表,那里就有关于如何增强这个 ...

  6. Spring aop——前置增强和后置增强 使用注解Aspect和非侵入式配置

    AspectJ是一个面向切面的框架,它扩展了java语言,定义了AOP语法,能够在编译期提供代码的织入,所以它有一个专门的编译器用来生成遵守字节码字节编码规范的Class文件 确保使用jdk为5.0以 ...

  7. SAP 增强说明

    转自http://blog.csdn.net/lyb_yt/article/details/8177974 (一)什么是增强(Enhancement)? 简单地说,增强就是ERP系统中标准程序的出口, ...

  8. Spring AOP 创建增强类

    AOP联盟为增强定义了org.aopalliance.aop.Advice接口,Spring支持5种类型的增强:     1)前置增强:org.springframework.aop.BeforeAd ...

  9. 【转】浅析Windows编程的剪贴板

    摘要: 本文对Windows剪贴板机制作了深入.全面的阐述,具体内容包括:文本.位图.DSP.自定义格式剪贴板的使用和多数据项和延迟提交技术. 关键词: VC++6.0: 剪贴板机制:数据格式:延迟提 ...

随机推荐

  1. 存储结构简明分析——DAS、NAS和SAN

    存储的总体分类     主流存储结构   网络存储结构大致分为三种:直连式存储(DAS:Direct Attached Storage).存储区域网络(SAN:Storage Area Network ...

  2. pod状态为Back-off

    查看pod状态为CrashLoopBackOff [root@master yaml]# kubectl get pods NAME READY STATUS RESTARTS AGE mysql-7 ...

  3. Mininet实验 测量路径损耗率

    参照:基于Mininet测量路径的损耗率 在SDN环境中,可以利用控制器来测量特定路径的损耗率,在本实验中,基于Mininet脚本,设置特定的交换机间的路径损耗速率,然后编写POX脚本,实现对路径的损 ...

  4. HDU 4183 Pahom on Water(最大流)

    https://vjudge.net/problem/HDU-4183 题意: 这道题目的英文实在是很难理解啊. 给出n个圆,每个圆有频率,x.y轴和半径r4个属性,每次将频率为400的圆作为起点,频 ...

  5. poj 2828 Buy Tickets 树状数组

    Buy Tickets Description Railway tickets were difficult to buy around the Lunar New Year in China, so ...

  6. 使用 reshape2 重塑数据框

    我们已经学习了如何筛选.排序.合并和汇总数据框.这些操作只适用于行和列,然而有时候我们需要做一些更复杂的事情.例如,下面这段代码读取了一个数据集,包含了两种产品不同日期的质量和耐久性的测试结果:toy ...

  7. [原][osgearth]FAQ

    参考:http://docs.osgearth.org/en/latest/faq.html Common Usage How do I place a 3D model on the map? Th ...

  8. H5 canvas控制坦克移动2

    接着上一篇(http://www.cnblogs.com/zhouhuan/p/H5_tankgame2.html),这篇主要修复两个bug,第一,玩家按下方向键时,坦克的炮筒应该指向相应的方向,并向 ...

  9. 小图标变为字体@font-face

    https://www.zhihu.com/question/29054543 https://icomoon.io/app/#/select http://iconfont.cn/

  10. NYOJ 720 DP+二分

    项目安排 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个 ...