Вы также можете преобразовать их в один и тот же случай, используя toLowerCase () или toUpperCase ():
if (!contacts.getUid().toLowerCase().equals(firebaseUser.getUid().toLowerCase())) {
arrayList.add(contacts);
}
Хорошо, после некоторого исследования, я разочаровался в изящном подходе и выбрал простую путь из записи непосредственно в реестр.
Для создания вещей простыми я сделал это: Я храню аргументы, которые я хотел передать в переменных своему TService. Затем я установил событие AfterInstall для записи непосредственно в реестр (использующий объект TRegistry) точная командная строка, которую я хотел.
uses Registry;
procedure MyService.AfterInstall(Sender: TObject) ;
var
reg:TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := 'HKEY_LOCAL_MACHINE';
if reg.OpenKey('SYSTEM\CurrentControlSet\Services\MyService', True) then
begin
reg.WriteExtendString ('ImagePath', ParamStr(0) + ' -some -arguments') ;
reg.CloseKey;
end;
finally
reg.Free;
end;
end;
Не изящное решение, которое я искал, но это делает задание.
Спасибо за другие ответы через!
Сервисные аргументы могут быть переданы в lpBinaryPathName аргументе функции CreateService. В TService Delphi это называют в TServiceApplication. RegisterServices. InstallService, который Вы не можете переопределить (легко).
Поэтому я подозреваю самый легкий способ сделать, это будет для обработки TService. Событие AfterInstall и обновление реестр самостоятельно через ChangeServiceConfig.
Я не думаю, что можно заставить сервис запуститься с них, но если Вы храните те параметры в реестре, можно изменить программу к на будущем, запускается, всегда идут и захватывают их. (т.е. если ParamCount = 0 затем получают параметрические усилители из реестра),
Pablo, я имел тот же вопрос и ничего не мог найти и пошел путем редактирования реестра также. Кроме того, я использую Пользовательские действия также для создания дополнительных каталогов установки и файлов копии (в C#). Ваше предложение было полезно, и я прекратил искать "изящный" путь также.спасибо
Для правильной установки службы и ее настройки следует использовать SCM API. SC.EXE - это интерфейс командной строки к SCM API. Вы не должны манипулировать реестром напрямую в этой ситуации, это работает, но это также зависит от того, какие разрешения имеет учетная запись службы. В любом случае, мне интересно, зачем нужны аргументы командной строки, если вы внедряете их в код - обычно эти аргументы задаются вне службы (программой установки, конфигуратором, чем угодно), чтобы изменить поведение службы.
Я только что обнаружил кое-что удивительное, может быть, стоит поделиться.
Вы можете указать параметры для служб Windows (по крайней мере) следующими способами:
В Delphi есть 2 способа запросить параметры приложения/службы: