Wywołanie ShellExec inne niż uruchomienie .BAT?

0

Robię cichą instalację Postgres'a. Problem polega na tym, że gdy używam ShellExecute i wywołuję cichą instalację nie działa w żadnym wypadku.

Dostaję napisy krzakowe, że konto =__=/_____1__s nie istnieje.
Uruchomienie tych samych parametrów przez .BAT działa. Czy jest coś nie tak z ShellExecute (dane podaję jako parametr)

np.
s := '/i "'+Dir+'data\postgresql-8.3-int.msi" /q'+tryb+' INTERNALLAUNCH=1 ' + NoInitDB+ ' '+
'ADDLOCAL=server,psql CREATESERVICEUSER=0 '+
'SERVICEDOMAIN="%COMPUTERNAME%" SERVICENAME="'+SerName+'" SERVICEACCOUNT="' + UserN + '" '+
'SERVICEPASSWORD="'+Spass+'"';

  ShellExecute( 0, Nil, PChar( 'msiexec' ), PChar( s ),
                Nil, SW_NORMAL );

Jak zrobić żeby Delphi uruchamiał msiexec i robił to jak .bat?

0

Pokaż zawartość BAT.

0

BAT:

msiexec /i "E:\Projekty\delphi\Instalator Ofees\data\postgresql-8.3-int.msi" /qr INTERNALLAUNCH=1 DOINITDB=0 ADDLOCAL=server,psql CREATESERVICEUSER=0 SERVICEDOMAIN="%COMPUTERNAME%" SERVICENAME="PostgreSQL Database Server 8.3 (Ofees.com)" SERVICEACCOUNT="postgres_11" SERVICEPASSWORD="postgres_pass"

0

SysUtils.GetEnvironmentVariable()
zamiast wsadzać w procenty spróbuj dokleić wynik tej funkcji bo coś mi śmierdzi tym że te procenty nie chcą zaskoczyć

0

Nie działa :( niestety

W gruncie rzeczy z tym plikiem bat też było niezłe odkrycie, że chociaż to działa.
Postanowiłem więc tworzyć .BAT i go uruchamiać. Na końcu .BAT dodam exit i będzie ok :)

dzięki za zaangażowanie

0

procenty na pewno dzialac nie beda.
ja tez zawsze mam problemy z uruchamianiem aplikacji z parametrami ale wiem ze jak sie nad tym posiedzi to zawsze dziala.
zazwyczaj sa to problemy z traktowaniem ciagu znakow jako dwa parametry zamiast jednego.

a jeszcze mozna inaczej sprobowac (nie jesem pewien co do skutecznosci, ale sprobowac mozna):
mozna odpalic
cmd /c {komenda jak w bat}
to odpali cmd i wywola polecenie przekazane jako parametr.

P.S. jesli nie wiesz gdzie lezy problem z przekazywaniem parametrow to sprawdz z jakimi paremetrami program zostal wywolany... gdzies na 4p powinien byc kog jak to zrobic, a jak Ci sie nie chce to sciagnij "ProcessExplorer - sysinternals".

pozdrawiam
cimak

0

Do stringa parametrów dodaj na początku spację. Często pomaga..

1 użytkowników online, w tym zalogowanych: 0, gości: 1