Getting Input Locale Info

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • bruciori
    Forum Member
    • Apr 2003
    • 25

    Getting Input Locale Info

    Hello back! Long time no see... [img]/ubbthreads/images/icons/wink.gif[/img]

    Could anyone assist me with my problem. I describe... Working on an international (3xlanguage) autorun menu. Need to get user input locale information - which languages user could type/view. As I know Windows 2000/XP stores that information in registry at:

    "HKEY_CURRENT_USER\Keyboard Layout\Preload" in form of plain strings:
    "1"="40c"
    "2"="409"
    "3"="419"

    in alphabetical order (ie. 1=Albanian, 2=English, 3=Russian Japanese if added will be placed as 3 and russian will be replaced as 4)

    On the other hand Windows 95/98 stores it not exactly the same:

    "HKEY_CURRENT_USER\Keyboard Layout\Preload\1\"
    "Default"="40c"
    "HKEY_CURRENT_USER\Keyboard Layout\Preload\2\"
    "Default"="409"
    "HKEY_CURRENT_USER\Keyboard Layout\Preload\3\"
    "Default"="419"

    Now what I need... As I see wildcards method using "*" with Registry.GetValueData "HKEY_CURRENT_USER\Keyboard Layout\Preload\*\" procedure fails to get those 40c, 409, 419... [img]/ubbthreads/images/icons/frown.gif[/img] And I think it's not quite bright to make a program to check for like 100 of the bogus keys - like check if "HKEY_CURRENT_USER\Keyboard Layout\Preload\3\" got a "Default" value=409 as 409 could be "HKEY_CURRENT_USER\Keyboard Layout\Preload\4\" or even "\11" as it uses alphabetical order. How it could be done better? Any ideas? Btw, if anyone here uses Win Me, I'm quite interested if it uses the same method as Win 2000/XP or Win 95/98... Leave me a note, please.
  • bruciori
    Forum Member
    • Apr 2003
    • 25

    #2
    Re: Getting Input Locale Info

    Seems like I found the solution for my problem. Here's an example for Windows 2000/XP:

    <IR_ACTIONS_LIST>
    <Action name="Comment">
    <Type>202</Type>
    <Function>2</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Comment>Get Input Locale Information</Comment>
    </Action>
    <Action name="Set Value">
    <Type>6</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%Counter%</Variable>
    <Value>1</Value>
    <Evaluate>0</Evaluate>
    </Action>
    <Action name="Set Value">
    <Type>6</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%LocaleCounter%</Variable>
    <Value>0</Value>
    <Evaluate>0</Evaluate>
    </Action>
    <Action name="Get Value Names">
    <Type>73</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%GetLocaleNumbers%</Variable>
    <Delimiter>;;</Delimiter>
    <MainKey>2</MainKey>
    <SubKey>Keyboard Layout\Preload</SubKey>
    </Action>
    <Action name="Count Delimited Strings">
    <Type>63</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%CountLocales%</Variable>
    <Source>%GetLocaleNumbers%</Source>
    <Delimiter>;;</Delimiter>
    </Action>
    <Action name="Message Box">
    <Type>5</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <DialogTitle>Loop</DialogTitle>
    <DialogMessage>Locale Number = %CountLocales%</DialogMessage>
    <Icon>2</Icon>
    <Variable>%Result%</Variable>
    <DialogType>0</DialogType>
    <DefaultButton>0</DefaultButton>
    </Action>
    <Action name="Message Box">
    <Type>5</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <DialogTitle>Loop</DialogTitle>
    <DialogMessage>Counter = %Counter%</DialogMessage>
    <Icon>2</Icon>
    <Variable>%Result%</Variable>
    <DialogType>0</DialogType>
    <DefaultButton>0</DefaultButton>
    </Action>
    <Action name="Message Box">
    <Type>5</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <DialogTitle>Loop</DialogTitle>
    <DialogMessage>Locale Counter = %LocaleCounter%</DialogMessage>
    <Icon>2</Icon>
    <Variable>%Result%</Variable>
    <DialogType>0</DialogType>
    <DefaultButton>0</DefaultButton>
    </Action>
    <Action name="WHILE">
    <Type>204</Type>
    <Function>1</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Condition>%LocaleCounter% &amp;lt; %CountLocales% OR %Counter% &amp;lt; %CountLocales%</Condition>
    </Action>
    <Action name="Get Value Data">
    <Type>72</Type>
    <Function>0</Function>
    <DTIndentLevel>1</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%RegData%</Variable>
    <MainKey>2</MainKey>
    <SubKey>Keyboard Layout\Preload</SubKey>
    <Value>%Counter%</Value>
    <AutoExpand>0</AutoExpand>
    </Action>
    <Action name="Set Value">
    <Type>6</Type>
    <Function>0</Function>
    <DTIndentLevel>1</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%Counter%</Variable>
    <Value>%Counter% + 1</Value>
    <Evaluate>1</Evaluate>
    </Action>
    <Action name="Message Box">
    <Type>5</Type>
    <Function>0</Function>
    <DTIndentLevel>1</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <DialogTitle>Loop</DialogTitle>
    <DialogMessage>Locale = %RegData%</DialogMessage>
    <Icon>2</Icon>
    <Variable>%Result%</Variable>
    <DialogType>0</DialogType>
    <DefaultButton>0</DefaultButton>
    </Action>
    <Action name="Set Value">
    <Type>6</Type>
    <Function>0</Function>
    <DTIndentLevel>1</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%LocaleCounter%</Variable>
    <Value>%LocaleCounter% + 1</Value>
    <Evaluate>1</Evaluate>
    </Action>
    <Action name="END WHILE">
    <Type>205</Type>
    <Function>1</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    </Action>
    <Action name="Set Value">
    <Type>6</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%Counter%</Variable>
    <Value>1</Value>
    <Evaluate>0</Evaluate>
    </Action>
    <Action name="Set Value">
    <Type>6</Type>
    <Function>0</Function>
    <DTIndentLevel>0</DTIndentLevel>
    <Enabled>1</Enabled>
    <ErrorHandling>
    <UserNotificationMode>2</UserNotificationMode>
    <CustomErrorMessage/>
    <OnErrorAction>0</OnErrorAction>
    <JumpToLabel/>
    </ErrorHandling>
    <Variable>%LocaleCounter%</Variable>
    <Value>0</Value>
    <Evaluate>0</Evaluate>
    </Action>
    </IR_ACTIONS_LIST>

    Comment

    • bruciori
      Forum Member
      • Apr 2003
      • 25

      #3
      Re: Getting Input Locale Info

      Thanks to VMware - I figured out that Win ME uses the same scheme as Win 95/98...

      Comment

      • TJ_Tigger
        Indigo Rose Customer
        • Sep 2002
        • 3159

        #4
        Re: Getting Input Locale Info

        Why don't you check first to see what the operating system is and then grab the appropriate key based on the opperating system?

        IF (!%Win2k% or !%WinXP% or !%WinNT%)
        Get these keys "HKEY_CURRENT_USER\Keyboard Layout\Preload" in form of plain strings:
        "1"="40c"
        "2"="409"
        "3"="419"
        ELSE
        Get these keys "HKEY_CURRENT_USER\Keyboard Layout\Preload\1\"
        "Default"="40c"
        "HKEY_CURRENT_USER\Keyboard Layout\Preload\2\"
        "Default"="409"
        "HKEY_CURRENT_USER\Keyboard Layout\Preload\3\"
        "Default"="419"
        END IF
        TJ-Tigger
        "A common mistake that people make when trying to design something completely foolproof was to underestimate the ingenuity of complete fools."
        "Draco dormiens nunquam titillandus."
        Map of IR Forum Users - IR Project CodeViewer - Online Help - TiggTV - QuizEngine

        Comment

        • bruciori
          Forum Member
          • Apr 2003
          • 25

          #5
          Re: Getting Input Locale Info

          I did... But later [img]/ubbthreads/images/icons/wink.gif[/img] As you may already noticed my problem was not about detecting Windows version [img]/ubbthreads/images/icons/smile.gif[/img]

          Comment

          • bruciori
            Forum Member
            • Apr 2003
            • 25

            #6
            Re: Getting Input Locale Info

            Problem was about to notify user who for example doesn't have russian locale installed if he tries to install program which is supposed to be run on version of Windows localized for Russia... Just an example. As the program to be installed with my comes on 3 languages on the same CD. It's not my program, so don't blame me [img]/ubbthreads/images/icons/smile.gif[/img] So no big deal russian version of this program uses russian system font which that user could not have if he doesn't have russian input locale installed as far as I know... On the other hand user may also have Hebrew or Japanese along with Russian or any other locales installed, since then order of locales could change. As I know for sure in Windows 98 it sorted alphabetically. First comes default system language then all others in alphabetical order, ie: English, African, Albanian, Hebrew, Japanese, Russian, Ukrainian, Whatever... Ugh... That was kind of a challenge to explain... [img]/ubbthreads/images/icons/smile.gif[/img]

            Comment

            • TJ_Tigger
              Indigo Rose Customer
              • Sep 2002
              • 3159

              #7
              Re: Getting Input Locale Info

              You could set variables (%ENGLISH%, %RUSSIAN%, %HEBREW%. . .) to a preset value like "NOTFOUND". Then after checking the registry for the different set those varialbes to a true value. Then when doing the check you can have an IF statement that would check to see if the above variable was equal to the preset value "NOTFOUND".

              After checking the Registry:
              %RUSSIAN% = "NOTFOUND"
              %RUSSIAN% = Registry.DoesKeyExist ("HKEY_CURRENT_USER\Keyboard Layout\Preload\419")

              IF (%RUSSIAN% = "NOTFOUND")
              Dialog.Messagebox (ERROR,"Your system will not support the russian version of this program.)
              ELSE
              File.Execute (whatever.exe)
              END IF

              The thought here is by having a preset value to the variable, the variable will only change if the key exists. If it exists then the IF statement will perform the ELSE option.

              Am I on the right track of what you are trying to accomplish?
              TJ-Tigger
              "A common mistake that people make when trying to design something completely foolproof was to underestimate the ingenuity of complete fools."
              "Draco dormiens nunquam titillandus."
              Map of IR Forum Users - IR Project CodeViewer - Online Help - TiggTV - QuizEngine

              Comment

              • TJ_Tigger
                Indigo Rose Customer
                • Sep 2002
                • 3159

                #8
                Re: Getting Input Locale Info

                I was playing around on lunch, You can try this. I have posted the actual actions list and the text version of it for you.

                *****Begin Displayed Actions Code**************
                // Set default values for these variables
                %Russian% = "NOTFOUND"
                %English% = "NOTFOUND"
                %Albanian% = "NOTFOUND"

                // Grab all the value names from the subkey and store them in a variable
                %ValueNames% = Registry.GetValueNames ("HKEY_CURRENT_USER\Keyboard Layout\Preload")

                // Count the number of values found withing the subkey. We will also set a counter variable to use ...
                %NewString% = String.CountDelimitedStrings ("%ValueNames%", ";;")
                %Ctr% = Evaluate (0)

                // Run the while loop to extract all the data for each value name
                WHILE (%Ctr% < %NewString%)
                %RegValue% = String.GetDelimitedString ("%ValueNames%", ";;", %Ctr%)
                %RegData% = Registry.GetValueData ("HKEY_CURRENT_USER\Keyboard Layout\Preload", "%RegValue%")

                // If the value equales a certain value we will set a variable to true to make identify the support ...
                IF (%RegData% = "00000409")
                %English% = "TRUE"
                END IF
                IF (%RegData% = "0000040c")
                %Albanian% = "TRUE"
                END IF
                IF (%RegData% = "00000419")
                %Russian% = "TRUE"
                END IF
                %Ctr% = Evaluate (%Ctr%+1)
                END WHILE



                *****Begin Actions code******
                <IR_ACTIONS_LIST>
                <Action name="Comment">
                <Type>202</Type>
                <Function>2</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Comment>Set default values for these variables</Comment>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%Russian%</Variable>
                <Value>NOTFOUND</Value>
                <Evaluate>0</Evaluate>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%English%</Variable>
                <Value>NOTFOUND</Value>
                <Evaluate>0</Evaluate>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%Albanian%</Variable>
                <Value>NOTFOUND</Value>
                <Evaluate>0</Evaluate>
                </Action>
                <Action name="Blank Line">
                <Type>203</Type>
                <Function>2</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                <Action name="Comment">
                <Type>202</Type>
                <Function>2</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Comment>Grab all the value names from the subkey and store them in a variable</Comment>
                </Action>
                <Action name="Get Value Names">
                <Type>73</Type>
                <Function>0</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%ValueNames%</Variable>
                <Delimiter>;;</Delimiter>
                <MainKey>2</MainKey>
                <SubKey>Keyboard Layout\Preload</SubKey>
                </Action>
                <Action name="Blank Line">
                <Type>203</Type>
                <Function>2</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                <Action name="Comment">
                <Type>202</Type>
                <Function>2</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Comment>Count the number of values found withing the subkey. We will also set a counter variable to use in a while loop</Comment>
                </Action>
                <Action name="Count Delimited Strings">
                <Type>63</Type>
                <Function>0</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%NewString%</Variable>
                <Source>%ValueNames%</Source>
                <Delimiter>;;</Delimiter>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%Ctr%</Variable>
                <Value>0</Value>
                <Evaluate>1</Evaluate>
                </Action>
                <Action name="Blank Line">
                <Type>203</Type>
                <Function>2</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                <Action name="Comment">
                <Type>202</Type>
                <Function>2</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Comment>Run the while loop to extract all the data for each value name</Comment>
                </Action>
                <Action name="WHILE">
                <Type>204</Type>
                <Function>1</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Condition>%Ctr% &amp;lt; %NewString%</Condition>
                </Action>
                <Action name="Get Delimited String">
                <Type>64</Type>
                <Function>0</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%RegValue%</Variable>
                <Source>%ValueNames%</Source>
                <Delimiter>;;</Delimiter>
                <ItemIndex>%Ctr%</ItemIndex>
                </Action>
                <Action name="Get Value Data">
                <Type>72</Type>
                <Function>0</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%RegData%</Variable>
                <MainKey>2</MainKey>
                <SubKey>Keyboard Layout\Preload</SubKey>
                <Value>%RegValue%</Value>
                <AutoExpand>0</AutoExpand>
                </Action>
                <Action name="Blank Line">
                <Type>203</Type>
                <Function>2</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                <Action name="Comment">
                <Type>202</Type>
                <Function>2</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Comment>If the value equales a certain value we will set a variable to true to make identify the support within this system.</Comment>
                </Action>
                <Action name="IF">
                <Type>200</Type>
                <Function>1</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Condition>%RegData% = "00000409"</Condition>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>2</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%English%</Variable>
                <Value>TRUE</Value>
                <Evaluate>0</Evaluate>
                </Action>
                <Action name="END IF">
                <Type>201</Type>
                <Function>1</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                <Action name="IF">
                <Type>200</Type>
                <Function>1</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Condition>%RegData% = "0000040c"</Condition>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>2</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%Albanian%</Variable>
                <Value>TRUE</Value>
                <Evaluate>0</Evaluate>
                </Action>
                <Action name="END IF">
                <Type>201</Type>
                <Function>1</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                <Action name="IF">
                <Type>200</Type>
                <Function>1</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Condition>%RegData% = "00000419"</Condition>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>2</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%Russian%</Variable>
                <Value>TRUE</Value>
                <Evaluate>0</Evaluate>
                </Action>
                <Action name="END IF">
                <Type>201</Type>
                <Function>1</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                <Action name="Set Value">
                <Type>6</Type>
                <Function>0</Function>
                <DTIndentLevel>1</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                <Variable>%Ctr%</Variable>
                <Value>%Ctr%+1</Value>
                <Evaluate>1</Evaluate>
                </Action>
                <Action name="END WHILE">
                <Type>205</Type>
                <Function>1</Function>
                <DTIndentLevel>0</DTIndentLevel>
                <Enabled>1</Enabled>
                <ErrorHandling>
                <UserNotificationMode>2</UserNotificationMode>
                <CustomErrorMessage/>
                <OnErrorAction>0</OnErrorAction>
                <JumpToLabel/>
                </ErrorHandling>
                </Action>
                </IR_ACTIONS_LIST>
                TJ-Tigger
                "A common mistake that people make when trying to design something completely foolproof was to underestimate the ingenuity of complete fools."
                "Draco dormiens nunquam titillandus."
                Map of IR Forum Users - IR Project CodeViewer - Online Help - TiggTV - QuizEngine

                Comment

                • bruciori
                  Forum Member
                  • Apr 2003
                  • 25

                  #9
                  Re: Getting Input Locale Info

                  Thanks Tiger... I'm still working on this thingie too... With ELSE and variables set up. [img]/ubbthreads/images/icons/smile.gif[/img]

                  Really huge project I got. Everything counts 3x cause of 3x languages so there are pretty much variables even to hide/show various elements of menu as autorun will not show any dialogs nor message boxes - only pictographic image controls. Even dialogs are made in photoshop.

                  As to international thing: besides input locales it gets system geographic location information from "Locale" value at "HKEY_CURRENT_USER\Control Panel\International" to display whole menu on corresponding language right on start. If user prefers other menu language - it's selectable too.

                  Then there's also all known acrobat detection routine a little modified to suite my needs. A credit to you [img]/ubbthreads/images/icons/smile.gif[/img]

                  A pair of variables to generate an URL containing version number+language to provide user with check for product update option... Some other things I could forget about, even I wrote a whole lot of comments for myself [img]/ubbthreads/images/icons/smile.gif[/img]

                  The only bad thing I noticed about AMS4 so far is - there's no action to get file product version. [img]/ubbthreads/images/icons/frown.gif[/img]

                  Comment

                  Working...
                  X