O exemplo a seguir é aplicável para scripts em execução no Windows:
import javax.swing.JOptionPane; import resources.RegistryExampleHelper; import com.rational.test.ft.*; import com.rational.test.ft.object.interfaces.*; import com.rational.test.ft.object.interfaces.SAP.*; import com.rational.test.ft.object.interfaces.siebel.*; import com.rational.test.ft.script.*; import com.rational.test.ft.value.*; import com.rational.test.ft.vp.*; /** * Description : Functional Test Script * @author Administrator */ public class RegistryExample extends RegistryExampleHelper { /** * Script Name : RegistryExample * Generated : Jul 20, 2006 1:48:49 PM * Description : Functional Test Script * Original Host : WinNT Version 5.1 Build 2600 (S) * * @since 2006/07/20 * @author Administrator */ public void testMain (Object[] args) { try { //Utilizar esse código para extrair valores String (REG_SZ) do registro. String regKeyString ="HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Rational Test\\8\\Rational FT Install Directory"; String regValueString = getOperatingSystem().getRegistryValue(regKeyString); JOptionPane.showMessageDialog(null, regValueString,"String Registry Value",1); } catch (NoSuchRegistryKeyException e) { JOptionPane.showMessageDialog(null, "Error finding registry key."); System.out.println ("No Such Registry Key Exception." + e); } try { //Utilizar esse código para extrair valores Integer (DWORD) do registro. String regKeyInt = "HKEY_CURRENT_USER\\Control " +"Panel\\Desktop\\LowLevelHooksTimeout"; Integer regValueInt = new Integer(getOperatingSystem().getRegistryIntValue(regKeyInt)); JOptionPane.showMessageDialog(null,regValueInt, "Integer Registry " + "Value ",1); } catch (NoSuchRegistryKeyException e) { JOptionPane.showMessageDialog(null, "Error finding registry key."); System.out.println ("No Such Registry Key Exception. (" + e + ")" ); } } }
Há dois comandos disponíveis para usuários do Functional Tester lerem valores do registro. O comando getRegistryValue é utilizado para ler valores de cadeia do registro. O comando getRegistryIntValue é utilizado para ler valores inteiros do registro. Os termos "REG_SZ" descrevem os tipos de cadeia e de inteiro. Ambos os comandos utilizam um tipo de argumento String, que contém a chave de registro a ser extraída.
O exemplo extrai os dois valores, de cadeia e de inteiro do registro. Olhando primeiramente o segmento de valor String, observe o código núcleo:
String regKeyString ="HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Rational Test\\8\\Rational FT Install Directory"; String regValueString = getOperatingSystem().getRegistryValue(regKeyString); JOptionPane.showMessageDialog(null, regValueString,"String Registry Value",1);
A primeira linha cria um tipo de variável String, que contém o valor do registro a ser extraído. A segunda linha executa o comando e o armazena no tipo String variável regValueString. A terceira linha utiliza a classe JOptionPane.showMessageDialog para exibir o valor do registro em uma caixa de mensagem na tela. Para aqueles que não conhecem essa última classe, é uma classe Java que deve ser importada para estar disponível para o Functional Tester. Observe a última instrução import no início do script.
O segundo segmento extrai o valor de tipo int. No exemplo, o tipo simples int é convertido em um objeto Integer, para que possa ser exibido no diálogo JOptionPane. Caso contrário, o código será idêntico ao do primeiro segmento.
Os dois comandos lançam uma NoSuchRegistryKeyException ao falharem. Portanto, é interessante agrupar esses métodos em um bloco try/catch, como no exemplo. Você pode alterar a chave de registro para uma que não exista e executar o script. Você verá uma mensagem de erro indicando que a chave não pôde ser localizada.