我们对 FileMaker Pro 13 Advanced 和 Windows Server 2008 R2 之间的交互有哪些不了解的地方?
要解决的问题:在不可预测的时间间隔内(可能平均为 3-5 天),FileMaker Pro 客户端崩溃。(我们需要它每 9 分钟左右运行一次脚本(与下面的脚本不同);崩溃可能是由于内存泄漏或类似原因造成的。)
我们寻求的解决方案是:通过任务计划程序,每 15 分钟检查一次 FileMaker 是否崩溃。如果崩溃,则启动它。
我们编写了一个批处理文件,它查询 Windows 的 tasklist.exe 是否正在运行 FileMaker,并通过调用 FileMaker Pro 13 重新启动它,其中的参数指向“.fmp12”文件,该文件是特定 FileMaker 数据库的快捷方式。如果我们从命令提示符手动调用批处理文件,批处理文件可以正常工作。(如果 FileMaker 未运行,批处理文件将启动 FileMaker 进程和应用程序窗口;如果 FileMaker 正在运行,批处理文件不会采取任何行动。)
当我们从任务计划程序调用相同的批处理文件时,批处理文件会启动 FileMaker 13 进程,但不会启动 FileMaker 应用程序窗口。(我们可以在任务管理器中看到我们想要的进程;屏幕上没有应用程序窗口。)
我们可以做什么(无论是在批处理文件中还是其他地方)才能通过任务计划程序的调用可靠地启动 FileMaker 13 进程和应用程序窗口?就此而言,对于 FileMaker 崩溃的原因,有什么建议吗?
相关背景。随意阅读、浏览或跳过。:
https://stackoverflow.com/questions/33250595/tasklist-exe-win-server-2008-r2-file-name-has-spaces
https://stackoverflow.com/questions/33456866/filemaker-pro-13-advanced-and-windows-server-2008-r2
https://community.filemaker.com/thread/77088?start=15&tstart=0
这是批处理文件。
@echo off
setlocal ENABLEEXTENSIONS
set target=FileMaker Pro Advanced.exe
set startWith1=C:\Program Files (x86)\<fully qualified path>\FileMaker Pro Advanced.exe
set startWith2=C:\Users\Administrator\Desktop\Splunkopener.fmp12
tasklist /fi "IMAGENAME eq %target%" /fi "USERNAME eq administrator" /fo csv 2>NUL | find /I "%target%" 2>NUL
if "%ERRORLEVEL%"=="1" goto StartFileMaker
if "%ERRORLEVEL%"=="0" goto EOF
:StartFileMaker
call "%startWith1%" "%startWith2%"
:EOF
exit
我们筛选“管理员”,因为这台计算机在任务管理器中经常列出“FileMaker Pro Advanced.exe”的三个任务。只有一个是“管理员”的,而这正是我们需要运行的任务。
提前致谢 ...
答案1
经过一些测试。有效的方法是简单地更改任务计划常规选项卡
将“无论用户是否登录都运行”改为“仅在用户登录时运行”。已设置最高权限运行。