目录

一 ,需求

1,弹窗

2,左下角未激活提醒

二 ,操作

1,找到Typora\resources\window.html文件,添加以下代码,消除未激活提醒

2,找到Typora\resources\page-dist\static\js\0.99879679.chunk.js文件,添加以下代码,关闭弹窗

三,原理

1,通过审查元素,可以发现,未激活提醒是body下的一个div标签,经过尝试可以用上述css样式隐藏,且不影响content内的内容,typora编辑的文本在content里。

2,最新版的typora好像不能直接修改license.html文件来关闭弹窗了,改一个字符就会闪退。经过观察,license.html文件引入了三个外部js,修改外部js不会闪退,我使用了第一个js测试。


第一次下载安装后,要先打开一次,再关闭,然后进行下面的修改,否则会闪退。 

一 ,需求

1,弹窗

2,左下角未激活提醒

二 ,操作

1,找到Typora\resources\window.html文件,添加以下代码,消除未激活提醒

 <style>
         /* 选择 body 下一级的所有具有 role="button" 的 div,但排除那些在 content 内部的 div[role="button"] */
         /* body > div[role="button"]:not(content div[role="button"]) 存在冗余 */
         /* body > div[role="button"] 已经限定了选择 body 的直接子元素 div,并且这些 div 具有 role="button" 属性。 */
         /* :not(content div[role="button"]) 试图排除某些元素,但由于 content div[role="button"] 不是 body 的直接子元素,这部分实际上没有效果。 */
         body>div[role="button"] {
             clip-path: inset(100%);
             transform: scale(0);
         }
 </style>

 

 

2,消除弹窗,原来的方法不能用了。这次是使用power shell脚本进行打开typora,关闭弹窗,首先创建一个ps1脚本。我保存的文件名为typora.ps1  。放到了typora的根目录。选中,右键选择使用power shell运行,正常的效果为弹窗关闭,typora打开,同时出现powershell的窗口。

# 启动 Typora(请改成你电脑上 Typora.exe 的真实路径)
#$typoraPath = "C:\Program Files\Typora\Typora.exe"
#Start-Process $typoraPath

Start-Process "Typora.exe"

# 记录开始时间
$startTime = Get-Date

# 注册 Win32 API
$signature = @'
using System;
using System.Runtime.InteropServices;
public static class Win32 {
    [DllImport("user32.dll")]
    public static extern bool PostMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
}
'@
Add-Type -TypeDefinition $signature -ErrorAction SilentlyContinue

while ($true) {

    # 超过 5 秒就退出脚本
    if ((Get-Date) - $startTime -gt (New-TimeSpan -Seconds 5)) {
        break
    }

    # 查找 Typora 中的 License Info 窗口
    $h = Get-Process typora -ErrorAction SilentlyContinue |
        Where-Object { $_.MainWindowTitle -match "License Info" } |
        Select-Object -First 1

    if ($h -and $h.MainWindowHandle -ne 0) {
        # 发送 WM_CLOSE
        [Win32]::PostMessage($h.MainWindowHandle, 0x0010, [IntPtr]::Zero, [IntPtr]::Zero)
        break
    }

    # 调整速度(越小越快)
    Start-Sleep -Milliseconds 20
}

exit

3,这一步是为了隐藏蓝色的窗口,执行上一步脚本的方法很多。使用vbs进行调用,效果比较好。

将文件保存为typora.vbs,双击运行。将里面“D:\Typora\typora.ps1”换成你电脑里的ps1脚本的路径。

CreateObject("Wscript.Shell").Run "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -File ""D:\Typora\typora.ps1""", 0, True

2,找到Typora\resources\page-dist\static\js\0.99879679.chunk.js文件,添加以下代码,关闭弹窗

// 创建一个新的 div 元素
var div = document.createElement('div');

// 给 div 添加一个唯一的 ID
div.id = 'myOverlay';

// 设置 div 的样式
div.style.position = 'fixed';
div.style.top = '0';
div.style.left = '0';
div.style.width = '100vw'; // 使用 100% 宽度
div.style.height = '100vh'; // 使用 100% 高度
div.style.backgroundColor = 'rgb(54,59,64)'; // Night主题背景色
div.style.zIndex = '9999'; // 确保 div 在最上层

// 将 div 添加到 body 中
document.body.appendChild(div);

window.resizeTo(1, 1); // 将窗口缩小大小

// 设置定时器,在 360 毫秒后删除 div ,并关闭页面
setTimeout(function () {
    var overlay = document.getElementById('myOverlay');
    if (overlay) {
        overlay.remove(); // 删除 div
    }

    // 点击关闭按钮,关闭页面
    document.querySelector('.text-btn').click(); //未激活关闭按钮
    //document.querySelector('.default-btn.secondary-btn').click(); //激活后关闭按钮

}, 360); // 360 毫秒后关闭弹窗

3,将typora进行激活。 这一步激活最新版不能用了,不激活,不知道15天后还能不能用,15天后我再更新。

三,解释

1,通过审查元素,可以发现,未激活提醒是body下的一个div标签,经过尝试可以用上述css样式隐藏,且不影响content内的内容,typora编辑的文本在content里。现在还有两个属性可以进行隐藏,等之后作者再更新后,可能就只能用js来消除或者隐藏了。

2,最新版的typora好像不能直接修改license.html文件来关闭弹窗了,改一个字符就会闪退。经过观察,license.html文件引入了三个外部js,修改外部js不会闪退,我使用了第一个js测试。

 div.style.backgroundColor = 'rgb(54,59,64)';//night主题,我喜欢使用黑色的这个主题,使用这个背景色可以不太明显的关闭,使用其他主题,可以进行修改。

直接window.close(),关闭页面会产生一些问题,通过点击关闭按钮可以解决。

在关闭页面时,把添加的div删除。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐