Выполните пакетный файл в Фиксации Windows Installer

По сути, вы можете просто показать свой фрагмент следующим образом:

SherlockDialogFragment newFragment = new TimePickerFragment();
newFragment.show(getActivity().getSupportFragmentManager(), "timePicker");

И это будет простой TimePickerFragment:

public class TimePickerFragment extends SherlockDialogFragment implements TimePickerDialog.OnTimeSetListener{

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);


        return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));
}
}
6
задан Community 23 May 2017 в 12:29
поделиться

2 ответа

То, что вы сказали выше, неверно:

Пользовательские действия могут быть только исполняемыми файлы. Пакетный файл не является исполняемым.

Пользовательские действия (даже без таких инструментов, как InstallShield) могут быть на основе .EXE, VBScript, JScript или DLL. Если вы пишете DLL, вы можете написать любой код, который хотите вызвать командный файл или внести какие-либо изменения в систему - ограничений нет.

Обновление : пример, который работал у меня: ( запись в таблице CustomAction)

Action Test
Type 34
Source SystemFolder
Target cmd.exe /c c:\test.bat
ExtendedType <blank>
10
ответ дан 8 December 2019 в 17:26
поделиться

I was able to solve this by creating an EXE consisting essentially of:

System.Diagnostics.Process.Start(pathToBatchFile);

Adding the EXE to the MSI file then running it as a custom action.

2
ответ дан 8 December 2019 в 17:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: