2012-04-07 41 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過程/函數。

出於顯示的目的,情況恰恰相反,用戶希望應用程序使用控制面板中的區域設置。

相關問題