便携式Delphi编译器在Win 7下的问题

Turbo-Delphi-Portable下载链接

这款软件是一款便携式非常好用的编译器,但是在Win 7环境下会有一个System占用字体的情况,必现操作方法:打开软件,然后关闭软件,再打开就会弹错误。

接下来软件就会停止工作结束进程了。

 

尝试找到这个文件用其他软件进行解除文件占用,并不好使,显示文件没有被占用。

这里实际上是字体资源被system占用了,对其删除和访问都不好使。这里可以通过重命名的方法来解决这个问题,把这个文件改个名字,就可以正常运行了,为了方便每次启动都不费劲,写了个脚本文件,如有不合理地方还请帮优化一下。

脚本下载链接

这里首先创建了一个文本文档count.txt来存储重命名的个数,防止每次都改一样的名,这样就可以记录我们打开了多少次软件。count.txt里面的内容为:1。

然后创建一个cmd扩展名或者bat的文件,内容如下。

@echo off
set /p value=<count.txt
set /a value = %value% + 1
echo %value% > count.txt
cd/d %temp%
rename EditorLineEnds.ttr EditorLineEnds%value%.ttr
echo 重命名完成,EditorLineEnds.ttr 重命名为 EditorLineEnds%value%.ttr
pause

这里为了美观把echo关闭了,也就是只显示输出的代码,第一句把上面的count.txt文件里的数字赋值给value,然后把value个数加一,再把这个数写回count.txt中,然后切换目录到temp路径下,把EditorLineEnds.ttr重命名一下,这里后面跟了个value所以每次不会重复,最后输出完成并且按任意键关闭。

这里如果不想显示cmd窗体可以加一个脚本启动。

脚本下载链接

 这里新建一个vbs扩展名的文件,内容如下。

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "ReNameEditor.cmd" & Chr(34), 0
Set WinScriptHost = Nothing

 这里是一些说明。

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing
并安排它。本示例中的第二个参数设置窗口样式。0 表示“隐藏窗口”。

Run 方法的完整语法:

 object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
参数:

对象:WshShell 对象。
strCommand:字符串值,指示您要运行的命令行。您必须包含要传递给可执行文件的任何参数。
intWindowStyle:可选。指示程序窗口外观的整数值。请注意,并非所有程序都使用此信息。
bWaitOnReturn:可选。布尔值,指示脚本在继续执行脚本中的下一条语句之前是否应等待程序完成执行。如果设置为 true,脚本执行将暂停,直到程序完成,并且 Run 返回程序返回的任何错误代码。如果设置为 false(默认),Run 方法在启动程序后立即返回,自动返回 0(不会被解释为错误代码)。

猜你喜欢

转载自blog.csdn.net/qq_41863100/article/details/121656123