100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Ps和Sai文件自动保存 自动备份

Ps和Sai文件自动保存 自动备份

时间:2021-06-11 20:35:34

相关推荐

Ps和Sai文件自动保存 自动备份

很多画师朋友都有PhotoShop和Sai各种崩溃导致文件丢失,文件损坏而丢掉了辛辛苦苦的工作成果,写了这么个工具,可以定时自动保存Ps和Sai中正在编辑的文件,并且将最新保存的副本备份到C:\BackUpForPSD设置自动保存的间隔,需要的朋友拿走。文章最后有下载地址。

代码放到了github上面,需要的自取。

项目地址:/kogodm/DesignerProtect

实现原理

PhotoShop部分

使用PhotoshopCS6 的开发库PhotoshopTypeLibraryPhotoshopObjectLibrary提供的API直接对PhotoShop操作入口是app=newPhotoShop.ApplicationClass.ApplicationClass()调用app.Documents[index].SaveAs()将打开的文档另存到备份目录PhotoShop的库文件在Ps安装目录下:

sai && sai2部分

利用Process.GetProcessesByName获取进程号使用EsayHook库Hook sai和sai2的一下WinApi调用

MoveFileAGetFileAttributesAGetFileAttributesWMoveFileWCreateFileW使用Win32PostMessage接口定时向sai和sai2发送Ctrl+S消息

//向窗口发送Ctrl+S消息IntPtr CTRL_KEY = new IntPtr(0x11);uint KEY_DOWN = 0x0100;uint KEY_UP = 0x0101;IntPtr S_KEY = new IntPtr(0x53);Win32.PostMessage(mainWindowHandle, KEY_DOWN, CTRL_KEY, IntPtr.Zero);Win32.PostMessage(mainWindowHandle, KEY_DOWN, S_KEY, IntPtr.Zero);Win32.PostMessage(mainWindowHandle, KEY_UP, S_KEY, IntPtr.Zero);Win32.PostMessage(mainWindowHandle, KEY_UP, CTRL_KEY, IntPtr.Zero);

sai&&sai2在保存时会调用WinApi的MoveFile接口,sai调用MoveFileA,sai2调用MoveFileW在检测到MoveFile时,将刚保存的文件,拷贝到备份目录

请勿用管理员运行,目前只测试了64位win10其他系统如有问题,你可以在博客回复,或者无视

安装包下载地址

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。