public void RunProgramInGuest(string fullPath, string param) { VixCOM.IJob job = _virtualMachine.RunProgramInGuest(fullPath, param, 0, null, null); UInt64 err = job.WaitWithoutResults(); if (lib.ErrorIndicatesFailure(err)) { short errCode = lib.ErrorCode(err); string errMsg; errMsg = lib.GetErrorText(err, null); throw new Exception("RunProgramInGuest: " + errMsg); } }
/// <summary> /// Runs a program on the virtual machine /// </summary> /// <param name=”exePath”>The path of the program on the virtual machine</param> /// <param name=”parameters”>The parameters to pass to the executable</param> /// <param name=”resultCode”>The result code returned from the program that ran on the VM</param> /// <returns>true if succeeded, otherwise false</returns> public bool RunProgram(string exePath, string parameters, out int resultCode) { resultCode = -1; IJob jobHandle = m_vmHandle.RunProgramInGuest(exePath, parameters, VixCOM.Constants.VIX_RUNPROGRAM_ACTIVATE_WINDOW, null, null); // clientData int[] propertyIds = new int[1] { VixCOM.Constants.VIX_PROPERTY_JOB_RESULT_GUEST_PROGRAM_EXIT_CODE }; object results = new object(); m_vixError = jobHandle.Wait(propertyIds, ref results); if (m_vixError == VixCOM.Constants.VIX_OK) { object[] objectArray = (object[])results; resultCode = (int)objectArray[0]; return(true); } return(false); }