PasswordProtect zip and Self-Extracting zip are mutually exclusive?
The zip.WriteExe method will write an encrypted .exe (meaning it is only possible to extract by providing the correct password) if the zip.PasswordProtect property = true, or if the zip.Encryption property is non-zero. The password used by WriteExe is the password in the zip.EncryptPassword property.
If WriteExe produces an encryrpted .exe, then AES is always used. The key length will be 128 bits, unless the zip.EncryptKeyLength property is set to a higher value (192 or 256).