Jump to content

Recommended Posts

Posted (edited)

This was just a simple project for myself but may be someone else will find it interesting.

 

#include <IE.au3>
#include <Array.au3>
#include <String.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Country = RegRead("HKEY_CURRENT_USER\Control Panel\International\", "sCountry")

$oIE = _IECreateEmbedded()
GUICreate("Country Test" , 300, 300, Default, Default, BitNOT($WS_MINIMIZEBOX) + $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN, $WS_EX_TOPMOST)
GUISetBkColor(0xFFFFFF)
$Txt = GUICtrlCreateLabel("Loading...Please Wait!", 0, 80, 300, 220, $SS_CENTER)
$Obj = GUICtrlCreateObj($oIE, 100, 0, 100, 80)
GUISetState(@SW_SHOW)
$Flag = _Short_Country($Country)
_IENavigate($oIE, "www.flagpedia.net/data/flags/mini/" & StringLower($Flag) & ".png")
$oIE.Document.Body.Scroll = "No"
$oIE.Document.Body.Style.Border = "0px"
GUICtrlSetState($Obj, $GUI_DISABLE)
$oIE_Read = _IECreate("www.flagpedia.net/" & StringLower($Country), 0, 0, 1, 0)
$oIE_String = _StringBetween(_IEBodyReadHTML($oIE_Read), "<p>", "</p>")
GUICtrlSetData($Txt, $oIE_String[0])

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            _IEQuit($oIE)
            _IEQuit($oIE_Read)
            Exit
    EndSwitch
WEnd

Func _Short_Country($sCountry)
    Local Enum $GEO_NATION = 0x0001, $GEO_LATITUDE, $GEO_LONGITUDE, $GEO_ISO2, $GEO_ISO3, $GEO_RFC1766, $GEO_LCID, $GEO_FRIENDLYNAME, $GEO_OFFICIALNAME, $GEO_TIMEZONES, $GEO_OFFICIALLANGUAGES, $GEO_ISO_UN_NUMBER, $GEO_PARENT
    Local $SC_Name, $aCall
    For $iGEOId = 0 To 0xFFFF
        $aCall = DllCall("kernel32.dll", "int", "GetGeoInfoW", "long", $iGEOId, "int", $GEO_FRIENDLYNAME, "wstr", "", "int", 65536, "word", 0)
        If @error Then Return $SC_Name
        If $aCall[3] = $sCountry Then
            $aCall = DllCall("kernel32.dll", "int", "GetGeoInfoW", "long", $iGEOId, "int", $GEO_ISO2, "wstr", "", "int", 65536, "word", 0)
            If @error Then Return $SC_Name
            $SC_Name = $aCall[3]
            ExitLoop
        EndIf
    Next
    Return $SC_Name
EndFunc

 

Edited by Fade91
Posted

Get the same error here.
The problem is caused by the fact that the country is stored in the registry in the local language (e.g. Deutschland) but flagpedia needs the country name in English (e.g. Germany).

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted

Well, this is what i got.

"XXXXXX\Desktop\Flag.au3" (30) : ==> Subscript used on non-accessible variable.:
GUICtrlSetData($Txt, $oIE_String[0])
GUICtrlSetData($Txt, $oIE_String^ ERROR
->21:58:03 AutoIt3.exe ended.rc:1

 

 000182.jpg

Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Posted

@TheDcoder I am wondering that how the flag became us flag.  Infact i am in kerala and where is our tricolor ?. May be this program is a prank :)

 

Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Posted

May be.

 

Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Posted
12 minutes ago, kcvinu said:

Well, this is what i got.

"XXXXXX\Desktop\Flag.au3" (30) : ==> Subscript used on non-accessible variable.:
GUICtrlSetData($Txt, $oIE_String[0])
GUICtrlSetData($Txt, $oIE_String^ ERROR
->21:58:03 AutoIt3.exe ended.rc:1

 

should look for "http://flagpedia.net/the-united-states" but it looks for "http://www.flagpedia.net/united states"

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Posted (edited)

Anyway, i have changed the code little bit like this

$Flag = _Short_Country("India")
$oIE_Read = _IECreate("http://flagpedia.net/india", 0, 0, 1, 0)

Then i got my tricolor

Edited by kcvinu
Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Posted
$Flag = _Short_Country($Country)

Local $aTemp = "", $sLink = ""
Local $sSource = _INetGetSource("http://flagpedia.net/index")
Local $aSource = StringSplit($sSource,@CRLF)
For $n = 1 To $aSource[0]
    If StringInStr($aSource[$n],'data/flags/mini/'& $Flag &'.png"') Then
        $aTemp = StringSplit($aSource[$n],'"')
        $sLink = "http://flagpedia.net"& $aTemp[4] ; use this for the link to get the text
        ExitLoop
    EndIf
Next

 

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Posted (edited)

Interesting, ill have to look into fixing it

[Edited]

I think if I switch the script to use this

HKEY_CURRENT_USER\Control Panel\International\iCountry

it would be a lot more accurate.

Edited by Fade91

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...