2012-04-07 23 views
1

我们有一个delphi应用程序,它也可以作为服务运行。在Windows 7机器上运行我们的应用程序作为服务时,我们遇到了shortdate格式的问题。 Delphi/Win 7返回一个错误的shortdate格式。它始终返回“DD-MM-YYYY”格式,与我们选择的区域设置无关。只有当我们将它作为服务运行并赢得胜利7时才会发生这种情况!当应用程序不作为服务运行时,我们没有问题! 我们尝试了两次更改和保存格式的解决方法,但徒劳 这里的任何帮助?当delphi应用程序作为服务运行时错误的shortdate格式

+0

发布将日期转换为字符串的代码。 – ChrisF 2012-04-07 10:23:59

+0

@David,yup,我意识到,这就是为什么我随着评论消失的原因。 – TLama 2012-04-07 10:31:18

回答

2

您的服务将获得所运行用户帐户的区域设置。我的猜测是你作为LOCALSYSTEM运行服务。如果将服务配置为以交互式用户身份运行,那么您将获得所需的语言环境设置。

+1

本地系统帐户的默认安全策略与“普通”用户帐户的默认安全策略不同。例如,网络访问默认在本地系统帐户下不可用。根据该区域的要求,您需要选择或创建服务运行时需要注意的帐户。 – 2012-04-07 12:09:59

0

如果您的服务需要某种日期格式,请在服务创建事件中使用ShortDateFormat全局变量设置您的格式。当你安装Windows 7时,你选择了国家和默认的系统格式。安装后,您可以更改用户格式,但不能更改系统格式。也许有一些注册表黑客可以。

0

您不应该依赖用户区域设置进行数据处理。

如果必须使用固定格式处理数据,请创建一个明确的TFormatSettings实例,并使用将TFormatSettings作为第二个参数的SysUtils过程/函数。

出于显示的目的,情况恰恰相反,用户希望应用程序使用控制面板中的区域设置。

相关问题