StartProcess
Funkcia %StartProcess
Funkcia
Funkcia vytvorí nový proces, ktorý potom spustí daný spustiteľný súbor v bezpečnostnom kontexte daných parametrov (užívateľ, doména a heslo).
Deklarácia
INT %StartProcess(
TEXT in userName,
TEXT in domain,
TEXT in password,
TEXT in applName,
TEXT in commandLine,
TEXT in currDir,
BOOL in bSync,
INT in timeout,
BOOL in bHide
)Parametre
userName | Reťazec určujúci meno užívateľa. Meno užívateľského účtu pre prihlásenie sa. Ak používate formát UPN, parameter user @DNS_domain_name, domain musí byť prázdny reťazec. |
domain | Reťazec určujúci meno domény alebo servera, ktorého databáza účtov obsahuje účet UserName. Ak je parameter prázdny reťazec, meno užívateľa musí byť definované vo formáte UPN. |
password | Reťazec špecifikujúci čisto textové heslo pre účet UserName. |
applName | Meno programu (aplikácie), ktorý sa má spustiť. Tento program môže byť aplikácia pracujúca pod operačným systémom Windows. Tiež môže pracovať pod iným typom operačného systému (napr. MS-DOS alebo OS/2), ak je tento OS dostupný na lokálnom počítači.
Ak program je 16-bitová aplikácia, applName by mal byť prázdny reťazec a parameter commandLine by mal špecifikovať túto aplikáciu ako aj jej argumenty. |
commandLine | Reťazec špecifikujúci príkazový riadok, ktorý sa má vykonať. Parameter môže byť prázdny reťazec. V tom prípade funkcia použije reťazec applName ako príkazový riadok.
|
currDir | Reťazec, ktorý určuje aktuálne označenie disku a adresára pre nový proces. Reťazec musí obsahovať celú cestu vrátane označenia disku. Ak je parameter prázdny reťazec, nový proces má označenie disku rovnaké ako systémová služba, ktorá vytvára proces. |
bSync | Parameter špecifikuje, či skript čaká na ukončenie štartovaného procesu. Možné hodnoty:
|
timeout | Maximálny čas behu štartovaného procesu. Parameter má význam, len ak bSync=@TRUE. |
bHide | @TRUE - skrytie okna štartovanej aplikácie. |
Návratová hodnota
Návratová hodnota je typu Int a:
je neplatná, ak sa nepodarilo spustiť proces,
je rovná hodnote _ERR_TIME_OUT, ak bSync=@TRUE a bol prekročený časový limit,
je rovná 0, ak bSync=@FALSE a proces bol spustený,
ináč nadobúda hodnotu návratového kódu procesu.
Poznámka
Funkcia v prípade neúspechu zapíše do súboru event.log chybu, ktorá nastala.
Príklad
Spustenie programu MS Excel s otvorením súboru C:\TEMP\Sheet1.xls.
Program MS Excel je nainštalovaný v adresári C:\Program Files\/Microsoft Office\Office\excel.exe.
Meno lokálneho užívateľa je Adm a heslo je pwd.
BEGIN
TEXT _cmdLine
INT _retCode
_cmdLine := %Chr(34) + "c:\Program Files\Microsoft Office\Office10\EXCEL.EXE" + %Chr(34) + "c:\temp\Zošit1.xls"
_retCode := %StartProcess("Adm", "", "", "", _cmdLine, "c:\temp", @TRUE, 30, @FALSE)
IF _retCode\VLD THEN
IF _retCode = _ERR_TIME_OUT THEN
; MS Excel neskončil v časovom limite 30 sekúnd a bol násilne ukončený
ELSE
; MS Excel skončil v časovom limite 30 sekúnd a _retCode obsahuje návratový kód
ENDIF
ELSE
; nepodarilo sa naštartovať program
; neexistuje c:\Program Files\Microsoft Office\Office10\EXCEL.EXE, alebo sa nepodarilo prihlásiť užívateľa
ENDIF
ENDSúvisiace stránky: