GiveIO.sys Dienst deinstallieren geht nicht [Erledigt]
Verfasst: 28.06.2012 00:25
Hallo!
Ich nutze für einen direkten Portzugriff auf ein PCI-Device folgende .pbi-Basis, für die ich mich beim GiveIO-Erschaffer und Helle echt nachträglich bedanken muss :
Hier nun mein Code, der zum Installieren des Dienstes funktioniert aber zum deinstallieren immer versagt
:
Selbstverständlich bin ich Admin, und habe das auf ein paar Systemen (XP/Win7) überprüft.
Installieren ist immer tadelos, starte ich das direkt nochmal (der Dienst wurde also nicht anderweitig gestartet
oder ist gar in Nutzung ..) werde ich korrekt nach Deinstallationswunsch gefragt .... nur scheitert das immer: "giveio konnte nicht entfernt werden !"
Hat da jemand eine Idee die ich ausprobieren könnte ?
Ich nutze für einen direkten Portzugriff auf ein PCI-Device folgende .pbi-Basis, für die ich mich beim GiveIO-Erschaffer und Helle echt nachträglich bedanken muss :
Code: Alles auswählen
;- Zugriff auf Ports, W2k, WXP
;- "Helle" Klaus Helbing, 20.08.2008, PB4.20
;- Für den Zugriff wird die Datei "giveio.sys" (der Klassiker!) von Dale Roberts verwendet
;- Diese Datei liegt in der DataSection bei
;- Für die Dienst-Installation sind Administrator-Rechte notwendig!
;- Nicht für Unicode!
... cut ...
;------------------ Dienst entfernen, wer mag, kann hier auch die Datei giveio.sys löschen
Procedure DienstRemove()
hSvc = OpenService_(hMgr, "giveio", #SERVICE_ALL_ACCESS)
IsDel = DeleteService_(hSvc)
If Messages
If IsDel = 1
MessageRequester("Statusmeldung von DienstRemove", "giveio wurde entfernt !") ;1=entfernt
Else
MessageRequester("Statusmeldung von DienstRemove", "giveio konnte nicht entfernt werden !", 16)
EndIf
EndIf
CloseServiceHandle_(hSvc)
EndProcedure
;------------------
... cut ...

Code: Alles auswählen
XIncludeFile "giveio.pbi" ;enthält auch giveio.sys als Data, bei Bedarf hier: http://www.mdcc-fun.de/k.helbing/giveio/giveio.zip
;------ Programmstart
Messages = 0 ;für Fehlersuche oder reine Neugier
RegTest() ; Ist giveio in Registry schon vorhanden ?
If hReg
Abfrage = MessageRequester("Abfrage", "Soll Dienst installiert werden ?", #PB_MessageRequester_YesNo)
If Abfrage = #PB_MessageRequester_Yes
Messages = 1 ; Meldungen von .pbi einschalten
DienstInst() ; Dienst war noch nicht installiert, wird nun hoffentlich erledigt
Messages = 0 ; Meldungen von .pbi ausschalten
Else
End ; Dienst war noch nicht installiert, und das soll auch so bleiben
EndIf
Else
Abfrage = MessageRequester("Abfrage", "Soll Dienst deinstalliert werden ?", #PB_MessageRequester_YesNo)
If Abfrage = #PB_MessageRequester_Yes
Messages = 1 ; Meldungen von .pbi einschalten
DienstRemove() ; Dienst war schon installiert, wird nun hoffentlich entfernt
Messages = 0 ; Meldungen von .pbi ausschalten
Else
End ; Dienst war schon installiert, und das soll auch so bleiben
EndIf
EndIf
End
Installieren ist immer tadelos, starte ich das direkt nochmal (der Dienst wurde also nicht anderweitig gestartet
oder ist gar in Nutzung ..) werde ich korrekt nach Deinstallationswunsch gefragt .... nur scheitert das immer: "giveio konnte nicht entfernt werden !"
Hat da jemand eine Idee die ich ausprobieren könnte ?
