¿Cómo determina VB si el programa en un archivo comprimido se está ejecutando? En caso afirmativo, le preguntará: Primero descomprima el archivo y luego ejecútelo...
Si el programa se ejecuta directamente desde el archivo comprimido, entonces su carpeta actual (App.Path) debe ser la carpeta de descompresión temporal del archivo comprimido, por lo que su programa solo necesita verificar App.Path para saberlo. si se ejecuta directamente desde un archivo comprimido.
El problema es que existen muchos tipos de archivos zip (RAR, ZIP, 7z, etc.) y la convención de nomenclatura para la carpeta temporal es diferente para cada tipo. Si puede forzar la especificación de RAR y otros tipos, el efecto será mejor. El siguiente es un ejemplo de código: Private?Sub?Form_Load()
Dim?ds()?As?String
ds? =?Split(App.Path,?" \")
If?Left(ds(UBound(ds)),?3)?Entonces
MsgBox?" ¡Por favor ejecute Descomprimir el archivo antes! "
End
End?If
End?Sub