再使用starUML导出图片的时候发现,导出图片的背景会显示unregister(未注册),非常影响观看效果,那么怎么才能把这个去掉呢?
一个现在3.0和4.0版本都能用的方法。
仅供学习使用!
starUML4.0
我下载的是starUML4.0.1,目前最新的版本。
找到管理注册的文件
starUML是用js写的,所以文件系统比较简单,在你安装的starUML目录下resourse文件夹下面有一个app.asar的文件。
关于asar格式,其实这是一个代码的压缩包格式,里面存在着各种代码,只是为了不让里面的代码不直接暴露。这种格式就需要专门的asar工具包进行解压和打包。
资源下载
如果你不想这么麻烦,可以直接下载我打包好的包。
app.asar下载
npm下载asar包
如今是个开源的时代,你可以在npm中直接下载asar包。
如果你没有安装nodejs以及npm,可以看这个。
全局安装asar npm install asar -g
查看是否能全局使用。
app.asar解压
然后你将原来的app.asar包复制出来一个,进行解压
注意
这里需要将cmd的目录转到你app.asar复制的位置,或者你可以将app.asar改为你的目录,比如C://User/asar/app.asar这样。
解压命令为:
asar e app.asar app
最好先备份一个文件,复制后修改后缀backup就可以了。
js文件修改
找到app/src/engine/licence-manager.js文件,使用任何编辑器打开都可以
将原来的validate()函数注释了然后增加一条上面
//增加新的函数
validate() {
return new Promise((resolve, reject) => {
resolve({
name: "DXkite",
product: "DXkite product",
licenseType: "DXkite Personal",
quantity: "DXkite Quantity",
timestamp: "1529049036",
});
})
}
//注释原来的函数
// validate () {
// return new Promise((resolve, reject) => {
// try {
// // Local check
// var file = this.findLicense()
// if (!file) {
// reject('License key not found')
// } else {
// var data = fs.readFileSync(file, 'utf8')
// licenseInfo = JSON.parse(data)
// if (licenseInfo.product !== packageJSON.config.product_id) {
// app.toast.error(`License key is for old version (${licenseInfo.product})`)
// reject(`License key is not for ${packageJSON.config.product_id}`)
// } else {
// var base = SK + licenseInfo.name +
// SK + licenseInfo.product + '-' + licenseInfo.licenseType +
// SK + licenseInfo.quantity +
// SK + licenseInfo.timestamp + SK
// var _key = crypto.createHash('sha1').update(base).digest('hex').toUpperCase()
// if (_key !== licenseInfo.licenseKey) {
// reject('Invalid license key')
// } else {
// // Server check
// $.post(app.config.validation_url, {licenseKey: licenseInfo.licenseKey})
// .done(data => {
// resolve(data)
// })
// .fail(err => {
// if (err && err.status === 499) { /* License key not exists */
// reject(err)
// } else {
// // If server is not available, assume that license key is valid
// resolve(licenseInfo)
// }
// })
// }
// }
// }
// } catch (err) {
// reject(err)
// }
// })
// }
重新打包
修改完以后重新需要打包。
注意
这里也是需要将cmd的目录转到你app文件夹的位置,或者你可以将app改为你的目录,比如C:\Users\f\Desktop\asar\app这样。原来的asar包可以先删除,防止没有覆盖成功。
打包命令
asar p app app.asar
然后将打包后的文件和原来的app.asar进行替换就可以了
最后效果
替换后打开不会再跳出register的对话框,而且导出的图片也没有水印了哈哈。