10. august 2010 - 15:10Der er
14 kommentarer og 1 løsning
Skrivning i Windows eventlog
Problemet har været vendt før uden at blive løst, så nu prøver jeg igen. Jeg forsøger at skrive i Windows eventloggen med funktionen LogMessage fra SvcMgr, men jeg får konsekvent en meddelelse i eventloggen som nedenfor. LogMessage('Program started OK', EVENTLOG_SUCCESS, 0, 1);
Jeg har en service.mc fil som jeg fik kompileret til en service.res fil efter råd fra en. Men det har ikke gjort nogen forskel.
Nogen der har ideer til hvad der skal til for at det retter sig?
The description for Event ID ( 1 ) in Source ( frmMain ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Program started OK.
Det virker åbenbart en gang i mellem. Det er som om resourcen ikke altid kommer med i .exe filen af en eller anden grund. Men jeg kan ikke se nogen tråd i hvornår den gør og ikke gør.
Jeg har lavet en lille fil som jeg kører for at lave resourcen. Kan det mon være fordi den mc.exe jeg har en meget gammel?
@ECHO OFF CLS ECHO ****************************************************** ECHO First create the message resource file ECHO ****************************************************** ECHO. D:\Documents\Delphi\_Resources\MC.EXE WatchdogMessages.mc ECHO. ECHO. PAUSE ECHO ****************************************************** ECHO Now we compile it to a Delphi resource file ECHO ****************************************************** ECHO. BRCC32.EXE WatchdogMessages.rc ECHO. ECHO. PAUSE
Ville gerne have lavet det så den blev kørt hver kan jeg kører kompilering, men jeg kan ikke se at man kan gøre det nogen steder i IDE
Hvis du har servicen installeret i forvejen, skal den afinstalleres og installeres igen, ellers bliver koden i ServiceAfterInstall ikke kørt.
Og hvorfor gør du noget andet end det jeg skriver i min tutorial? Resourcen skal kun laves en gang. Du har aldrig brug for at ændre den når du kompilerer din app.
PS: jeg mener selv jeg har fulgt din tutorial rimelig trin for trin. At jeg lavede den lille commandfile er bare for at gøre det nemt for mig selv. Jeg troede bare at mit problem var relateret til at resourcen skulle kompiles.
Hvis resourcefilen ikke kommer med i exe-filen er det kun fordi linjen med {$R MyServiceMessageResource.res} mangler (eller hvad din resourcefil nu hedder).
Det er vel ikke fordi du har en gammel exe-fil liggende (uden resourcen) som du kommer til at bruge?
Det er også det jeg gør, men af en eller anden grund kommer der til at stå {$R *.dres} i stedet for min {$R WatchdogMessages.res} og det er nok der kæden hopper af. Men hvorfor der gør det ved jeg ikke.
Men nu ved jeg at det kan ske og kan så checke det.
Så skriv linjen {$R WatchdogMessages.res} et andet sted, f.eks. din main unit. Det behøver ikke at være i projektfilen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.