Tengo algunos problemas con el archivo Riched20.dll que utiliza mi aplicación, este problema se soluciona aplicando la revisión KB884047, para evitar problemas con las versiones anteriores de Windows, quiero detectar cuándo se aplica esta revisión en el sistema Entonces, ¿cómo puedo verificar si un hotfix particular (actualización de Windows) está instalado en mi sistema usando Delphi?¿Cómo puedo verificar si un hotfix particular (actualización de Windows) está instalado en mi sistema?
5
A
Respuesta
9
Hace algún tiempo, escribió en su blog acerca de este tema search for installed windows updates using Delphi, WMI and WUA
La clave es usar el cheque Windows Update Agent API
este código de ejemplo.
//use in this way ISHotFixID_Installed('KB982799')
function ISHotFixID_Installed(const HotFixID : string): Boolean;
var
updateSession : OleVariant;
updateSearcher : OleVariant;
updateEntry : OleVariant;
updateSearchResult : OleVariant;
UpdateCollection : OleVariant;
oEnum : IEnumvariant;
iValue : LongWord;
begin
result:=False;
updateSession:= CreateOleObject('Microsoft.Update.Session');
updateSearcher := updateSession.CreateUpdateSearcher;
//this line improves the performance , the online porperty indicates whether the UpdateSearcher goes online to search for updates. so how we are looking for already installed updates we can set this value to false
updateSearcher.online:=False;
updateSearchResult:= updateSearcher.Search(Format('IsInstalled = 1 and Type=%s',[QuotedStr('Software')]));
UpdateCollection := updateSearchResult.Updates;
oEnum := IUnknown(UpdateCollection._NewEnum) as IEnumVariant;
while oEnum.Next(1, updateEntry, iValue) = 0 do
begin
Result:=Pos(HotFixID,updateEntry.Title)>0;
updateEntry:=Unassigned;
if Result then break;
end;
end;
Cuestiones relacionadas
- 1. Cómo verificar si un programa está instalado en el sistema Windows
- 2. ¿Cómo verifico si un MSI particular está instalado?
- 3. Verificar si Solidworks está instalado?
- 4. ¿Cómo puedo verificar si un módulo Perl está instalado?
- 5. ¿Cómo puedo verificar si el Android Market está instalado en el dispositivo de mi usuario?
- 6. ¿Cómo verificar si un controlador OLEDB está instalado en el sistema?
- 7. ¿Cómo puedo verificar para ver si PEAR está instalado en mi servidor o no?
- 8. Cómo verificar si un servicio de Windows está instalado en C#
- 9. ¿Cómo puedo saber si SP1 está instalado en Windows Server 2008 R2 Standard?
- 10. ¿Cómo puedo verificar si un NSString particular está presente en un NSArray?
- 11. ¿Cómo puedo verificar si este usuario es anónimo o realmente un usuario en mi sistema?
- 12. ¿Cómo puedo verificar si un complemento jQuery está cargado?
- 13. ¿Cómo comprobar si Suhosin está instalado?
- 14. ¿Cómo puedo verificar si un filehandle está abierto en Perl?
- 15. ¿Cómo puedo verificar si un JSON está vacío en NodeJS?
- 16. ¿Cómo puedo verificar si un usuario puede leer/escribir una clave de registro en particular?
- 17. ¿Cómo puedo verificar si se está ejecutando un servicio de Windows?
- 18. ¿Cómo puedo verificar si un UIView está animando?
- 19. ¿Cómo puedo verificar si actualmente se está visualizando un UIViewController?
- 20. Cómo verificar con C# donde está instalado un programa
- 21. ¿Cómo puedo verificar si estoy ejecutando Windows en Python?
- 22. ¿Cómo puedo verificar la bitidez de mi sistema operativo con Java? (J2SE, no os.arch)
- 23. ¿Comprueba si IIS está instalado o no?
- 24. ¿Cómo puedo saber si .NET 3.5 SP1 está instalado?
- 25. Comprobando si mi aplicación de Windows se está ejecutando
- 26. ¿Cómo puedo saber si está instalado .NET 4.02?
- 27. Cómo verificar si un DataGridViewCheckBoxCell está marcado
- 28. ¿Cómo puedo saber si mi script de Perl se está ejecutando en Windows?
- 29. ¿Cómo puedo detectar si quicktime está instalado con javascript?
- 30. ¿Cómo puedo verificar si una IP está viva en Java?