2014-10-29 100 views
2

我正在嘗試寫一個Windows日誌事件。我如何寫事件源的Windows日誌事件

我讀到這answer,並試圖使用它,但有同樣的問題reported here "The description for Event ID 1 from source PLCHIDSrv cannot be found..."

我想this solution但不知道如何實現這種代碼在Delphi

var data = new EventSourceCreationData("yourApp", "Application"); 
data.MessageResourceFile = pathToYourMessageFile; 
EventLog.CreateEventSource(data); 
+1

您可以使用Google查找大量匹配。例如:http://rosettacode.org/wiki/Write_to_Windows_event_log#Delphi http://texhex.blogspot.co.uk/2004/09/creating-event-message-file-for-event.html http:// www .kehm.de/henrik/blog/files/0246b791a5cc7befdf178875d4e318c8-2.html,當然你也可以閱讀MSDN上的MS文檔 – 2014-10-29 20:55:20

+1

這個問題的答案應該可以解決你的問題http://stackoverflow.com/questions/10537267/delphi -windows-service-design - 具體來說,第5點有創建註冊表項的代碼。 – Graymatter 2014-10-29 21:48:27

回答

9

你正在接受該錯誤是因爲您沒有將事件源添加到Windows註冊表中。

檢查MSDN Documentation

你可以使用默認的應用程序日誌中沒有添加事件源到註冊表中。但是,除非您註冊事件源並提供消息文件,否則事件查看器將無法將您的事件標識符代碼映射到消息字符串。

相同的鏈接包含帶有C++代碼的示例,該示例可以很容易地轉換爲Delphi。

UPDATE

我剛剛發現這篇文章Writing an event logger with Delphi 2010顯示出如何的事件源添加到註冊表,並寫入到事件日誌。

+0

+1。這是德爾福主題應該收到的第一批接待。 Imo ... – MartynA 2014-10-29 22:32:01

+0

@Martyn:如果他們表現出努力去問問他們的問題,就像這張海報所做的那樣。 – 2014-10-30 13:29:58