Как получить коды возврата из кода командной строки PGP

#command-line #powerbuilder #pgp

#командная строка #powerbuilder #pgp

Вопрос:

Я использую McAfee E-Business Server версии 8.6, и я хотел получить коды возврата из команд шифрования / дешифрования из командной строки. Я запускаю указанные коды из PowerBuilder. Я хотел получить коды возврата из файла журнала, установленного в конфигурации. Кто-нибудь знает, как это сделать? Спасибо.

Ответ №1:

Я не уверен в PGP в частности, но если они выполняются локально, вот как я запускаю внешнюю команду и получаю код возврата:

ExternalFunctionPrototypes

 FUNCTION boolean CreateProcess(string AppName, string CommLine, long l1, long l2, boolean binh, long creationflags, long l3, string dir, str_startupinfo startupinfo, ref str_processinformation pi ) library 'kernel32.dll' alias for "CreateProcessW"
FUNCTION long WaitForSingleObject ( ulong ul_Notification, long lmillisecs ) library "kernel32.dll"
FUNCTION long GetExitCodeProcess(ulong hProcess,ref ulong lpExitCode) LIBRARY "kernel32.dll"
FUNCTION boolean CloseHandle(ulong h) library 'kernel32.dll'
  

функция of_runandwait (строка as_command, логическое значение ab_Visible) возвращает ulong

 constant long STARTF_USESHOWWINDOW = 1
constant long CREATE_NEW_CONSOLE = 16
constant long NORMAL_PRIORITY_CLASS = 32
constant long INFINITE = -1
boolean lb_Return
long ll_Null, ll_CreationFlags, ll_Return
ulong lul_ProcessReturn
string ls_CurDir, ls_Null
str_StartupInfo lstr_Start
str_Processinformation lstr_PI

SetNull(ll_Null)
SetNull(ls_Null)
SetNull(ls_CurDir)

lstr_Start.cb                = 72
lstr_Start.dwFlags       = STARTF_USESHOWWINDOW
IF ab_Visible THEN
    lstr_Start.wShowWindow   = 1
ELSE
    lstr_Start.wShowWindow   = 0
END IF

ll_CreationFlags = CREATE_NEW_CONSOLE   NORMAL_PRIORITY_CLASS

lb_Return = CreateProcess (ls_Null, as_Command, ll_Null, ll_Null, FALSE, ll_CreationFlags, ll_Null, ls_CurDir, lstr_Start, lstr_PI)
ll_Return = WaitForSingleObject (lstr_PI.hProcess, INFINITE)
ll_Return = GetExitCodeProcess (lstr_PI.hProcess, lul_ProcessReturn)
CloseHandle(lstr_PI.hProcess)
CloseHandle(lstr_PI.hThread)

RETURN lul_ProcessReturn
  

Надеюсь, это поможет.

Удачи,

Терри.