确保Windows Mobile应用程序未运行 - 从桌面应用程序

时间:2009-05-30 00:09:19

标签: c# windows-mobile compact-framework

我有一个包含平面数据文件(CSV)的Windows Mobile 5.0应用程序(智能手机),其中包含标题行(两个双打)和一个条目列表(两个双打,日期时间和一个字符串)。 / p>

有时,我需要将移动应用程序与桌面应用程序“同步”。桌面应用程序应从移动设备读取CSV,并根据旧文件的内容将其替换为新的CSV文件。

这似乎很容易通过RAPI(我猜),但我需要确保移动应用程序没有运行。有没有办法做到这一点?

互斥?远程进程查看器就像东西?文件锁定?

感谢您的帮助

麦克

3 个答案:

答案 0 :(得分:1)

无论出于何种原因,built-in RAPI Functions都没有任何内容可用于检查ToolHelp API's等正在运行的进程。使用C,您可以在设备库中创建一组自定义函数,这些函数调用ToolHelp API,然后通过CeRapiInvoke调用(这是自定义RAPI函数的通用catch-all入口点)。不幸的是,在托管代码中没有简单的机制。

答案 1 :(得分:1)

只需对正在读取/更新的文件使用简单的文件锁定机制。

在使用前重命名文件或创建第二个“锁定”文件,您可以检查是否存在。

答案 2 :(得分:0)

想到一个简单的方法。

程序运行的每3秒钟,使用当前日期时间更新注册表项。

当我想要同步时,请检查移动注册表,5秒后再次检查。如果值已更改,则程序仍在运行。