L'exemple suivant s'applique aux scripts exécutés sous 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 { //Utiliser ce code pour lire les valeurs de type chaîne (REG_SZ) dans le registre. String regKeyString ="HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Rational Test\\8\\Répertoire d'installation Rational FT"; String regValueString = getOperatingSystem().getRegistryValue(regKeyString); JOptionPane.showMessageDialog(null, regValueString,"String Registry Value",1); } catch (NoSuchRegistryKeyException e) { JOptionPane.showMessageDialog(null, "Erreur : clé de registre introuvable."); System.out.println ("Exception : clé de registre inexistante." + e); } try { //Utiliser ce code pour lire les valeurs de type entier (DWORD) dans le registre. String regKeyInt = "HKEY_CURRENT_USER\\Control " +"Panel\\Desktop\\LowLevelHooksTimeout"; Integer regValueInt = new Integer(getOperatingSystem().getRegistryIntValue(regKeyInt)); JOptionPane.showMessageDialog(null,regValueInt, "Valeur de registre de type Integer" + "Value ",1); } catch (NoSuchRegistryKeyException e) { JOptionPane.showMessageDialog(null, "Erreur : clé de registre introuvable."); System.out.println ("Exception : clé de registre inexistante. (" + e + ")" ); } } }
Deux commandes sont à la disposition des utilisateurs de Functional Tester pour lire les valeurs du registre. La commande getRegistryValue sert à lire les valeurs de type chaîne. La commande getRegistryIntValue sert à lire les valeurs de type entier (integer). Les termes "REG_SZ" décrivent ces deux types de données. Les deux commandes reçoivent un argument de type String qui contient le nom de la clé de registre dont on souhaite lire la valeur.
Dans l'exemple qui précède, on lit dans le registre une valeur de type chaîne et une valeur de type entier. Examinons le code plus en détail en commençant par le premier segment, qui lit une valeur de clé de type chaîne (String) :
String regKeyString ="HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Rational Test\\8\\Rational FT Install Directory"; String regValueString = getOperatingSystem().getRegistryValue(regKeyString); JOptionPane.showMessageDialog(null, regValueString, "Valeur de registre de type String",1);
La première ligne crée une variable de type String, qui contient le nom de la clé de registre dont on souhaite lire la valeur. La seconde ligne exécute la commande et stocke son résultat dans une autre variable de type String appelée regValueString. La troisième ligne utilise la classe JOptionPane.showMessageDialog pour présenter la valeur lue dans une boîte de message affichée à l'écran. Il s'agit d'une classe Java Swing standard qui doit être importée afin que Functional Tester puisse en disposer. C'est ce que fait la dernière instruction import, au début du script.
Le second segment extrait du registre une valeur de type entier (int). Dans l'exemple, le type simple int est converti en objet Integer afin qu'il puisse être affiché dans la boîte de dialogue créée par JOptionPane. Cette différence mise à part, le code est identique à celui du premier segment.
Les deux commandes lancent une exception NoSuchRegistryKeyException en cas d'échec. Pour cette raison, il est bon d'encapsuler ces méthodes dans un bloc try/catch, comme dans l'exemple. Essayez de remplacer le nom de la clé de registre par celui d'une clé qui n'existe pas, puis exécutez le script. Un message d'erreur s'affiche pour signaler que la clé n'a pas été trouvée.