Shellexecute i obsluga bledow

0

przykladowo wykonuje taki kod

ShellExecute(Handle, 'open', 'program.exe', '/install' , 'C:\windows\system32\', SW_HIDE);

Gdy pierwszy raz uruchomie mam komunikat ze jest OK
Gdy za drugim razem razem uruchamiam mam info o bledzie.
Chcialbym obsluzyc jakos ten blad ale TRY EXCEPT nie dziala
Czy jest jakas opcja by to zrobic?

0
masterO napisał(a)

mam info o bledzie.

Może trochę więcej info :) Sam ShellExecute nie powinien tak się zachować, więc może info coś rozjaśni...

0

Tak info wyjasnia wszystko. Wyskakuje blad 103 oraz informacja ze usluga jest juz zarejestrowana. Czyli to samo co bedzie jak wcisne URUCHOM i CMD i nastepnie wpisze z palca taka komende. Chodzi o to czy da sie obsluzyc taki blad z poziomu delphi niezaleznie od tego jaki on bedzie

0

Więc nie uruchamiaj przez ShellExecute, tylko przez CreateProcess, tam możesz przechwycić całkowicie wyjście. Przy ShellExecute try..except przechwyciłby ci błędy programu, ale nie przechwyci błędów wypisywanych przez zewnętrzny program.

BTW: nie wiem co za program chcesz uruchomić, ale część z usług ma możliwość uruchomienia w trybie cichym. Sprawdź sobie, czy tego programu nie da się uruchomić z przełącznikiem /s

0

Z silent nie dziala /silen ani /s a moze jest jakis sposob by sprawdzic liste zainstalowanych uslug i wtedy jak usluga bedzie to nie trzeba jej dodawac ponownie i blad nie wyskoczy

0

Też miałem taki program... okazało się, że try...except nie działa jak uruchamiasz bezpośrednio w delphi. Zminimalizuj delphi i uruchom skompilowany plik *.exe, tak jakbyś uruchamiał coś innego.

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