Jump to content

Recommended Posts

Posted

Use to convert data from "Name = XXXX YYYY" to "Surname = YYY, First Name = XXXXXX" 

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7
Local $sFullName = " Harry J T.  Potter"
Local $aFirstnamesLast = splitfirstlastname($sFullName)
ConsoleWrite($aFirstnamesLast[0] & @CR)
ConsoleWrite($aFirstnamesLast[1] & @CR)

Func splitfirstlastname($sFullName)
    Local $aWords = StringSplit(StringStripWS($sFullName, 7), " ");Clean out leading/trailing/double+ spaces, and Split into words
    Local $sFirstnames, $sLastname
    $sLastname = $aWords[$aWords[0]];Assume the last (or only) word is the last name
    Select
        Case $aWords[0] = 1;Assume no first name if only one word
            $sFirstnames = ""
        Case $aWords[0] = 2;If two words, assume this is the first and last name in that order
            $sFirstnames = $aWords[1]
        Case $aWords[0] > 2;If more than two words, all except the last are first names
            For $n = 1 To $aWords[0] - 2
                $sFirstnames &= $aWords[$n] & " "
            Next
            $sFirstnames &= $aWords[$aWords[0] - 1]
    EndSelect
    Dim $aFirstnamesLast[] = [$sFirstnames, $sLastname]
    Return $aFirstnamesLast
EndFunc   ;==>splitfirstlastname
Posted

 Use to convert data that has country names to their corresponding 2-digit codes.

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7

Local $sCountry = "Fiji"
ConsoleWrite("ISO Country Code: " & _CountryNameToISO($sCountry) & @CR)

Func _CountryNameToISO($sCountry)
    Local $sCountryCode
    ;names and codes according to
    ;http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm
    ;updated in December 2013
    If $sCountry = "AFGHANISTAN" Then $sCountryCode = "AF"
    If $sCountry = "ÅLAND ISLANDS" Then $sCountryCode = "AX"
    If $sCountry = "ALBANIA" Then $sCountryCode = "AL"
    If $sCountry = "ALGERIA" Then $sCountryCode = "DZ"
    If $sCountry = "AMERICAN SAMOA" Then $sCountryCode = "AS"
    If $sCountry = "ANDORRA" Then $sCountryCode = "AD"
    If $sCountry = "ANGOLA" Then $sCountryCode = "AO"
    If $sCountry = "ANGUILLA" Then $sCountryCode = "AI"
    If $sCountry = "ANTARCTICA" Then $sCountryCode = "AQ"
    If $sCountry = "ANTIGUA AND BARBUDA" Then $sCountryCode = "AG"
    If $sCountry = "ARGENTINA" Then $sCountryCode = "AR"
    If $sCountry = "ARMENIA" Then $sCountryCode = "AM"
    If $sCountry = "ARUBA" Then $sCountryCode = "AW"
    If $sCountry = "AUSTRALIA" Then $sCountryCode = "AU"
    If $sCountry = "AUSTRIA" Then $sCountryCode = "AT"
    If $sCountry = "AZERBAIJAN" Then $sCountryCode = "AZ"
    If $sCountry = "BAHAMAS" Then $sCountryCode = "BS"
    If $sCountry = "BAHRAIN" Then $sCountryCode = "BH"
    If $sCountry = "BANGLADESH" Then $sCountryCode = "BD"
    If $sCountry = "BARBADOS" Then $sCountryCode = "BB"
    If $sCountry = "BELARUS" Then $sCountryCode = "BY"
    If $sCountry = "BELGIUM" Then $sCountryCode = "BE"
    If $sCountry = "BELIZE" Then $sCountryCode = "BZ"
    If $sCountry = "BENIN" Then $sCountryCode = "BJ"
    If $sCountry = "BERMUDA" Then $sCountryCode = "BM"
    If $sCountry = "BHUTAN" Then $sCountryCode = "BT"
    If $sCountry = "BOLIVIA, PLURINATIONAL STATE OF" Then $sCountryCode = "BO"
    If $sCountry = "BONAIRE, SINT EUSTATIUS AND SABA" Then $sCountryCode = "BQ"
    If $sCountry = "BOSNIA AND HERZEGOVINA" Then $sCountryCode = "BA"
    If $sCountry = "BOTSWANA" Then $sCountryCode = "BW"
    If $sCountry = "BOUVET ISLAND" Then $sCountryCode = "BV"
    If $sCountry = "BRAZIL" Then $sCountryCode = "BR"
    If $sCountry = "BRITISH INDIAN OCEAN TERRITORY" Then $sCountryCode = "IO"
    If $sCountry = "BRUNEI DARUSSALAM" Then $sCountryCode = "BN"
    If $sCountry = "BULGARIA" Then $sCountryCode = "BG"
    If $sCountry = "BURKINA FASO" Then $sCountryCode = "BF"
    If $sCountry = "BURUNDI" Then $sCountryCode = "BI"
    If $sCountry = "CAMBODIA" Then $sCountryCode = "KH"
    If $sCountry = "CAMEROON" Then $sCountryCode = "CM"
    If $sCountry = "CANADA" Then $sCountryCode = "CA"
    If $sCountry = "CAPE VERDE" Then $sCountryCode = "CV"
    If $sCountry = "CAYMAN ISLANDS" Then $sCountryCode = "KY"
    If $sCountry = "CENTRAL AFRICAN REPUBLIC" Then $sCountryCode = "CF"
    If $sCountry = "CHAD" Then $sCountryCode = "TD"
    If $sCountry = "CHILE" Then $sCountryCode = "CL"
    If $sCountry = "CHINA" Then $sCountryCode = "CN"
    If $sCountry = "CHRISTMAS ISLAND" Then $sCountryCode = "CX"
    If $sCountry = "COCOS (KEELING) ISLANDS" Then $sCountryCode = "CC"
    If $sCountry = "COLOMBIA" Then $sCountryCode = "CO"
    If $sCountry = "COMOROS" Then $sCountryCode = "KM"
    If $sCountry = "CONGO" Then $sCountryCode = "CG"
    If $sCountry = "CONGO, THE DEMOCRATIC REPUBLIC OF THE" Then $sCountryCode = "CD"
    If $sCountry = "COOK ISLANDS" Then $sCountryCode = "CK"
    If $sCountry = "COSTA RICA" Then $sCountryCode = "CR"
    If $sCountry = "CÔTE D'IVOIRE" Then $sCountryCode = "CI"
    If $sCountry = "CROATIA" Then $sCountryCode = "HR"
    If $sCountry = "CUBA" Then $sCountryCode = "CU"
    If $sCountry = "CURAÇAO" Then $sCountryCode = "CW"
    If $sCountry = "CYPRUS" Then $sCountryCode = "CY"
    If $sCountry = "CZECH REPUBLIC" Then $sCountryCode = "CZ"
    If $sCountry = "DENMARK" Then $sCountryCode = "DK"
    If $sCountry = "DJIBOUTI" Then $sCountryCode = "DJ"
    If $sCountry = "DOMINICA" Then $sCountryCode = "DM"
    If $sCountry = "DOMINICAN REPUBLIC" Then $sCountryCode = "DO"
    If $sCountry = "ECUADOR" Then $sCountryCode = "EC"
    If $sCountry = "EGYPT" Then $sCountryCode = "EG"
    If $sCountry = "EL SALVADOR" Then $sCountryCode = "SV"
    If $sCountry = "EQUATORIAL GUINEA" Then $sCountryCode = "GQ"
    If $sCountry = "ERITREA" Then $sCountryCode = "ER"
    If $sCountry = "ESTONIA" Then $sCountryCode = "EE"
    If $sCountry = "ETHIOPIA" Then $sCountryCode = "ET"
    If $sCountry = "FALKLAND ISLANDS (MALVINAS)" Then $sCountryCode = "FK"
    If $sCountry = "FAROE ISLANDS" Then $sCountryCode = "FO"
    If $sCountry = "FIJI" Then $sCountryCode = "FJ"
    If $sCountry = "FINLAND" Then $sCountryCode = "FI"
    If $sCountry = "FRANCE" Then $sCountryCode = "FR"
    If $sCountry = "FRENCH GUIANA" Then $sCountryCode = "GF"
    If $sCountry = "FRENCH POLYNESIA" Then $sCountryCode = "PF"
    If $sCountry = "FRENCH SOUTHERN TERRITORIES" Then $sCountryCode = "TF"
    If $sCountry = "GABON" Then $sCountryCode = "GA"
    If $sCountry = "GAMBIA" Then $sCountryCode = "GM"
    If $sCountry = "GEORGIA" Then $sCountryCode = "GE"
    If $sCountry = "GERMANY" Then $sCountryCode = "DE"
    If $sCountry = "GHANA" Then $sCountryCode = "GH"
    If $sCountry = "GIBRALTAR" Then $sCountryCode = "GI"
    If $sCountry = "GREECE" Then $sCountryCode = "GR"
    If $sCountry = "GREENLAND" Then $sCountryCode = "GL"
    If $sCountry = "GRENADA" Then $sCountryCode = "GD"
    If $sCountry = "GUADELOUPE" Then $sCountryCode = "GP"
    If $sCountry = "GUAM" Then $sCountryCode = "GU"
    If $sCountry = "GUATEMALA" Then $sCountryCode = "GT"
    If $sCountry = "GUERNSEY" Then $sCountryCode = "GG"
    If $sCountry = "GUINEA" Then $sCountryCode = "GN"
    If $sCountry = "GUINEA-BISSAU" Then $sCountryCode = "GW"
    If $sCountry = "GUYANA" Then $sCountryCode = "GY"
    If $sCountry = "HAITI" Then $sCountryCode = "HT"
    If $sCountry = "HEARD ISLAND AND MCDONALD ISLANDS" Then $sCountryCode = "HM"
    If $sCountry = "HOLY SEE (VATICAN CITY STATE)" Then $sCountryCode = "VA"
    If $sCountry = "HONDURAS" Then $sCountryCode = "HN"
    If $sCountry = "HONG KONG" Then $sCountryCode = "HK"
    If $sCountry = "HUNGARY" Then $sCountryCode = "HU"
    If $sCountry = "ICELAND" Then $sCountryCode = "IS"
    If $sCountry = "INDIA" Then $sCountryCode = "IN"
    If $sCountry = "INDONESIA" Then $sCountryCode = "ID"
    If $sCountry = "IRAN, ISLAMIC REPUBLIC OF" Then $sCountryCode = "IR"
    If $sCountry = "IRAQ" Then $sCountryCode = "IQ"
    If $sCountry = "IRELAND" Then $sCountryCode = "IE"
    If $sCountry = "ISLE OF MAN" Then $sCountryCode = "IM"
    If $sCountry = "ISRAEL" Then $sCountryCode = "IL"
    If $sCountry = "ITALY" Then $sCountryCode = "IT"
    If $sCountry = "JAMAICA" Then $sCountryCode = "JM"
    If $sCountry = "JAPAN" Then $sCountryCode = "JP"
    If $sCountry = "JERSEY" Then $sCountryCode = "JE"
    If $sCountry = "JORDAN" Then $sCountryCode = "JO"
    If $sCountry = "KAZAKHSTAN" Then $sCountryCode = "KZ"
    If $sCountry = "KENYA" Then $sCountryCode = "KE"
    If $sCountry = "KIRIBATI" Then $sCountryCode = "KI"
    If $sCountry = "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF" Then $sCountryCode = "KP"
    If $sCountry = "KOREA, REPUBLIC OF" Then $sCountryCode = "KR"
    If $sCountry = "KUWAIT" Then $sCountryCode = "KW"
    If $sCountry = "KYRGYZSTAN" Then $sCountryCode = "KG"
    If $sCountry = "LAO PEOPLE'S DEMOCRATIC REPUBLIC" Then $sCountryCode = "LA"
    If $sCountry = "LATVIA" Then $sCountryCode = "LV"
    If $sCountry = "LEBANON" Then $sCountryCode = "LB"
    If $sCountry = "LESOTHO" Then $sCountryCode = "LS"
    If $sCountry = "LIBERIA" Then $sCountryCode = "LR"
    If $sCountry = "LIBYA" Then $sCountryCode = "LY"
    If $sCountry = "LIECHTENSTEIN" Then $sCountryCode = "LI"
    If $sCountry = "LITHUANIA" Then $sCountryCode = "LT"
    If $sCountry = "LUXEMBOURG" Then $sCountryCode = "LU"
    If $sCountry = "MACAO" Then $sCountryCode = "MO"
    If $sCountry = "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF" Then $sCountryCode = "MK"
    If $sCountry = "MADAGASCAR" Then $sCountryCode = "MG"
    If $sCountry = "MALAWI" Then $sCountryCode = "MW"
    If $sCountry = "MALAYSIA" Then $sCountryCode = "MY"
    If $sCountry = "MALDIVES" Then $sCountryCode = "MV"
    If $sCountry = "MALI" Then $sCountryCode = "ML"
    If $sCountry = "MALTA" Then $sCountryCode = "MT"
    If $sCountry = "MARSHALL ISLANDS" Then $sCountryCode = "MH"
    If $sCountry = "MARTINIQUE" Then $sCountryCode = "MQ"
    If $sCountry = "MAURITANIA" Then $sCountryCode = "MR"
    If $sCountry = "MAURITIUS" Then $sCountryCode = "MU"
    If $sCountry = "MAYOTTE" Then $sCountryCode = "YT"
    If $sCountry = "MEXICO" Then $sCountryCode = "MX"
    If $sCountry = "MICRONESIA, FEDERATED STATES OF" Then $sCountryCode = "FM"
    If $sCountry = "MOLDOVA, REPUBLIC OF" Then $sCountryCode = "MD"
    If $sCountry = "MONACO" Then $sCountryCode = "MC"
    If $sCountry = "MONGOLIA" Then $sCountryCode = "MN"
    If $sCountry = "MONTENEGRO" Then $sCountryCode = "ME"
    If $sCountry = "MONTSERRAT" Then $sCountryCode = "MS"
    If $sCountry = "MOROCCO" Then $sCountryCode = "MA"
    If $sCountry = "MOZAMBIQUE" Then $sCountryCode = "MZ"
    If $sCountry = "MYANMAR" Then $sCountryCode = "MM"
    If $sCountry = "NAMIBIA" Then $sCountryCode = "NA"
    If $sCountry = "NAURU" Then $sCountryCode = "NR"
    If $sCountry = "NEPAL" Then $sCountryCode = "NP"
    If $sCountry = "NETHERLANDS" Then $sCountryCode = "NL"
    If $sCountry = "NEW CALEDONIA" Then $sCountryCode = "NC"
    If $sCountry = "NEW ZEALAND" Then $sCountryCode = "NZ"
    If $sCountry = "NICARAGUA" Then $sCountryCode = "NI"
    If $sCountry = "NIGER" Then $sCountryCode = "NE"
    If $sCountry = "NIGERIA" Then $sCountryCode = "NG"
    If $sCountry = "NIUE" Then $sCountryCode = "NU"
    If $sCountry = "NORFOLK ISLAND" Then $sCountryCode = "NF"
    If $sCountry = "NORTHERN MARIANA ISLANDS" Then $sCountryCode = "MP"
    If $sCountry = "NORWAY" Then $sCountryCode = "NO"
    If $sCountry = "OMAN" Then $sCountryCode = "OM"
    If $sCountry = "PAKISTAN" Then $sCountryCode = "PK"
    If $sCountry = "PALAU" Then $sCountryCode = "PW"
    If $sCountry = "PALESTINE, STATE OF" Then $sCountryCode = "PS"
    If $sCountry = "PANAMA" Then $sCountryCode = "PA"
    If $sCountry = "PAPUA NEW GUINEA" Then $sCountryCode = "PG"
    If $sCountry = "PARAGUAY" Then $sCountryCode = "PY"
    If $sCountry = "PERU" Then $sCountryCode = "PE"
    If $sCountry = "PHILIPPINES" Then $sCountryCode = "PH"
    If $sCountry = "PITCAIRN" Then $sCountryCode = "PN"
    If $sCountry = "POLAND" Then $sCountryCode = "PL"
    If $sCountry = "PORTUGAL" Then $sCountryCode = "PT"
    If $sCountry = "PUERTO RICO" Then $sCountryCode = "PR"
    If $sCountry = "QATAR" Then $sCountryCode = "QA"
    If $sCountry = "RÉUNION" Then $sCountryCode = "RE"
    If $sCountry = "ROMANIA" Then $sCountryCode = "RO"
    If $sCountry = "RUSSIAN FEDERATION" Then $sCountryCode = "RU"
    If $sCountry = "RWANDA" Then $sCountryCode = "RW"
    If $sCountry = "SAINT BARTHÉLEMY" Then $sCountryCode = "BL"
    If $sCountry = "SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA" Then $sCountryCode = "SH"
    If $sCountry = "SAINT KITTS AND NEVIS" Then $sCountryCode = "KN"
    If $sCountry = "SAINT LUCIA" Then $sCountryCode = "LC"
    If $sCountry = "SAINT MARTIN (FRENCH PART)" Then $sCountryCode = "MF"
    If $sCountry = "SAINT PIERRE AND MIQUELON" Then $sCountryCode = "PM"
    If $sCountry = "SAINT VINCENT AND THE GRENADINES" Then $sCountryCode = "VC"
    If $sCountry = "SAMOA" Then $sCountryCode = "WS"
    If $sCountry = "SAN MARINO" Then $sCountryCode = "SM"
    If $sCountry = "SAO TOME AND PRINCIPE" Then $sCountryCode = "ST"
    If $sCountry = "SAUDI ARABIA" Then $sCountryCode = "SA"
    If $sCountry = "SENEGAL" Then $sCountryCode = "SN"
    If $sCountry = "SERBIA" Then $sCountryCode = "RS"
    If $sCountry = "SEYCHELLES" Then $sCountryCode = "SC"
    If $sCountry = "SIERRA LEONE" Then $sCountryCode = "SL"
    If $sCountry = "SINGAPORE" Then $sCountryCode = "SG"
    If $sCountry = "SINT MAARTEN (DUTCH PART)" Then $sCountryCode = "SX"
    If $sCountry = "SLOVAKIA" Then $sCountryCode = "SK"
    If $sCountry = "SLOVENIA" Then $sCountryCode = "SI"
    If $sCountry = "SOLOMON ISLANDS" Then $sCountryCode = "SB"
    If $sCountry = "SOMALIA" Then $sCountryCode = "SO"
    If $sCountry = "SOUTH AFRICA" Then $sCountryCode = "ZA"
    If $sCountry = "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS" Then $sCountryCode = "GS"
    If $sCountry = "SOUTH SUDAN" Then $sCountryCode = "SS"
    If $sCountry = "SPAIN" Then $sCountryCode = "ES"
    If $sCountry = "SRI LANKA" Then $sCountryCode = "LK"
    If $sCountry = "SUDAN" Then $sCountryCode = "SD"
    If $sCountry = "SURINAME" Then $sCountryCode = "SR"
    If $sCountry = "SVALBARD AND JAN MAYEN" Then $sCountryCode = "SJ"
    If $sCountry = "SWAZILAND" Then $sCountryCode = "SZ"
    If $sCountry = "SWEDEN" Then $sCountryCode = "SE"
    If $sCountry = "SWITZERLAND" Then $sCountryCode = "CH"
    If $sCountry = "SYRIAN ARAB REPUBLIC" Then $sCountryCode = "SY"
    If $sCountry = "TAIWAN, PROVINCE OF CHINA" Then $sCountryCode = "TW"
    If $sCountry = "TAJIKISTAN" Then $sCountryCode = "TJ"
    If $sCountry = "TANZANIA, UNITED REPUBLIC OF" Then $sCountryCode = "TZ"
    If $sCountry = "THAILAND" Then $sCountryCode = "TH"
    If $sCountry = "TIMOR-LESTE" Then $sCountryCode = "TL"
    If $sCountry = "TOGO" Then $sCountryCode = "TG"
    If $sCountry = "TOKELAU" Then $sCountryCode = "TK"
    If $sCountry = "TONGA" Then $sCountryCode = "TO"
    If $sCountry = "TRINIDAD AND TOBAGO" Then $sCountryCode = "TT"
    If $sCountry = "TUNISIA" Then $sCountryCode = "TN"
    If $sCountry = "TURKEY" Then $sCountryCode = "TR"
    If $sCountry = "TURKMENISTAN" Then $sCountryCode = "TM"
    If $sCountry = "TURKS AND CAICOS ISLANDS" Then $sCountryCode = "TC"
    If $sCountry = "TUVALU" Then $sCountryCode = "TV"
    If $sCountry = "UGANDA" Then $sCountryCode = "UG"
    If $sCountry = "UKRAINE" Then $sCountryCode = "UA"
    If $sCountry = "UNITED ARAB EMIRATES" Then $sCountryCode = "AE"
    If $sCountry = "UNITED KINGDOM" Then $sCountryCode = "GB"
    If $sCountry = "UNITED STATES" Then $sCountryCode = "US"
    If $sCountry = "UNITED STATES MINOR OUTLYING ISLANDS" Then $sCountryCode = "UM"
    If $sCountry = "URUGUAY" Then $sCountryCode = "UY"
    If $sCountry = "UZBEKISTAN" Then $sCountryCode = "UZ"
    If $sCountry = "VANUATU" Then $sCountryCode = "VU"
    If $sCountry = "VENEZUELA, BOLIVARIAN REPUBLIC OF" Then $sCountryCode = "VE"
    If $sCountry = "VIET NAM" Then $sCountryCode = "VN"
    If $sCountry = "VIRGIN ISLANDS, BRITISH" Then $sCountryCode = "VG"
    If $sCountry = "VIRGIN ISLANDS, U.S." Then $sCountryCode = "VI"
    If $sCountry = "WALLIS AND FUTUNA" Then $sCountryCode = "WF"
    If $sCountry = "WESTERN SAHARA" Then $sCountryCode = "EH"
    If $sCountry = "YEMEN" Then $sCountryCode = "YE"
    If $sCountry = "ZAMBIA" Then $sCountryCode = "ZM"
    If $sCountry = "ZIMBABWE" Then $sCountryCode = "ZW"
    Return $sCountryCode
EndFunc   ;==>_CountryNameToISO
  • 1 month later...
Posted

 

 Use to convert data that has country names to their corresponding 2-digit codes.

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7

Local $sCountry = "Fiji"
ConsoleWrite("ISO Country Code: " & _CountryNameToISO($sCountry) & @CR)

Func _CountryNameToISO($sCountry)
    Local $sCountryCode
    ;names and codes according to
    ;http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm
    ;updated in December 2013
    If $sCountry = "AFGHANISTAN" Then $sCountryCode = "AF"
    If $sCountry = "ÅLAND ISLANDS" Then $sCountryCode = "AX"
    If $sCountry = "ALBANIA" Then $sCountryCode = "AL"
    If $sCountry = "ALGERIA" Then $sCountryCode = "DZ"
    If $sCountry = "AMERICAN SAMOA" Then $sCountryCode = "AS"
    If $sCountry = "ANDORRA" Then $sCountryCode = "AD"
    If $sCountry = "ANGOLA" Then $sCountryCode = "AO"
    If $sCountry = "ANGUILLA" Then $sCountryCode = "AI"
    If $sCountry = "ANTARCTICA" Then $sCountryCode = "AQ"
    If $sCountry = "ANTIGUA AND BARBUDA" Then $sCountryCode = "AG"
    If $sCountry = "ARGENTINA" Then $sCountryCode = "AR"
    If $sCountry = "ARMENIA" Then $sCountryCode = "AM"
    If $sCountry = "ARUBA" Then $sCountryCode = "AW"
    If $sCountry = "AUSTRALIA" Then $sCountryCode = "AU"
    If $sCountry = "AUSTRIA" Then $sCountryCode = "AT"
    If $sCountry = "AZERBAIJAN" Then $sCountryCode = "AZ"
    If $sCountry = "BAHAMAS" Then $sCountryCode = "BS"
    If $sCountry = "BAHRAIN" Then $sCountryCode = "BH"
    If $sCountry = "BANGLADESH" Then $sCountryCode = "BD"
    If $sCountry = "BARBADOS" Then $sCountryCode = "BB"
    If $sCountry = "BELARUS" Then $sCountryCode = "BY"
    If $sCountry = "BELGIUM" Then $sCountryCode = "BE"
    If $sCountry = "BELIZE" Then $sCountryCode = "BZ"
    If $sCountry = "BENIN" Then $sCountryCode = "BJ"
    If $sCountry = "BERMUDA" Then $sCountryCode = "BM"
    If $sCountry = "BHUTAN" Then $sCountryCode = "BT"
    If $sCountry = "BOLIVIA, PLURINATIONAL STATE OF" Then $sCountryCode = "BO"
    If $sCountry = "BONAIRE, SINT EUSTATIUS AND SABA" Then $sCountryCode = "BQ"
    If $sCountry = "BOSNIA AND HERZEGOVINA" Then $sCountryCode = "BA"
    If $sCountry = "BOTSWANA" Then $sCountryCode = "BW"
    If $sCountry = "BOUVET ISLAND" Then $sCountryCode = "BV"
    If $sCountry = "BRAZIL" Then $sCountryCode = "BR"
    If $sCountry = "BRITISH INDIAN OCEAN TERRITORY" Then $sCountryCode = "IO"
    If $sCountry = "BRUNEI DARUSSALAM" Then $sCountryCode = "BN"
    If $sCountry = "BULGARIA" Then $sCountryCode = "BG"
    If $sCountry = "BURKINA FASO" Then $sCountryCode = "BF"
    If $sCountry = "BURUNDI" Then $sCountryCode = "BI"
    If $sCountry = "CAMBODIA" Then $sCountryCode = "KH"
    If $sCountry = "CAMEROON" Then $sCountryCode = "CM"
    If $sCountry = "CANADA" Then $sCountryCode = "CA"
    If $sCountry = "CAPE VERDE" Then $sCountryCode = "CV"
    If $sCountry = "CAYMAN ISLANDS" Then $sCountryCode = "KY"
    If $sCountry = "CENTRAL AFRICAN REPUBLIC" Then $sCountryCode = "CF"
    If $sCountry = "CHAD" Then $sCountryCode = "TD"
    If $sCountry = "CHILE" Then $sCountryCode = "CL"
    If $sCountry = "CHINA" Then $sCountryCode = "CN"
    If $sCountry = "CHRISTMAS ISLAND" Then $sCountryCode = "CX"
    If $sCountry = "COCOS (KEELING) ISLANDS" Then $sCountryCode = "CC"
    If $sCountry = "COLOMBIA" Then $sCountryCode = "CO"
    If $sCountry = "COMOROS" Then $sCountryCode = "KM"
    If $sCountry = "CONGO" Then $sCountryCode = "CG"
    If $sCountry = "CONGO, THE DEMOCRATIC REPUBLIC OF THE" Then $sCountryCode = "CD"
    If $sCountry = "COOK ISLANDS" Then $sCountryCode = "CK"
    If $sCountry = "COSTA RICA" Then $sCountryCode = "CR"
    If $sCountry = "CÔTE D'IVOIRE" Then $sCountryCode = "CI"
    If $sCountry = "CROATIA" Then $sCountryCode = "HR"
    If $sCountry = "CUBA" Then $sCountryCode = "CU"
    If $sCountry = "CURAÇAO" Then $sCountryCode = "CW"
    If $sCountry = "CYPRUS" Then $sCountryCode = "CY"
    If $sCountry = "CZECH REPUBLIC" Then $sCountryCode = "CZ"
    If $sCountry = "DENMARK" Then $sCountryCode = "DK"
    If $sCountry = "DJIBOUTI" Then $sCountryCode = "DJ"
    If $sCountry = "DOMINICA" Then $sCountryCode = "DM"
    If $sCountry = "DOMINICAN REPUBLIC" Then $sCountryCode = "DO"
    If $sCountry = "ECUADOR" Then $sCountryCode = "EC"
    If $sCountry = "EGYPT" Then $sCountryCode = "EG"
    If $sCountry = "EL SALVADOR" Then $sCountryCode = "SV"
    If $sCountry = "EQUATORIAL GUINEA" Then $sCountryCode = "GQ"
    If $sCountry = "ERITREA" Then $sCountryCode = "ER"
    If $sCountry = "ESTONIA" Then $sCountryCode = "EE"
    If $sCountry = "ETHIOPIA" Then $sCountryCode = "ET"
    If $sCountry = "FALKLAND ISLANDS (MALVINAS)" Then $sCountryCode = "FK"
    If $sCountry = "FAROE ISLANDS" Then $sCountryCode = "FO"
    If $sCountry = "FIJI" Then $sCountryCode = "FJ"
    If $sCountry = "FINLAND" Then $sCountryCode = "FI"
    If $sCountry = "FRANCE" Then $sCountryCode = "FR"
    If $sCountry = "FRENCH GUIANA" Then $sCountryCode = "GF"
    If $sCountry = "FRENCH POLYNESIA" Then $sCountryCode = "PF"
    If $sCountry = "FRENCH SOUTHERN TERRITORIES" Then $sCountryCode = "TF"
    If $sCountry = "GABON" Then $sCountryCode = "GA"
    If $sCountry = "GAMBIA" Then $sCountryCode = "GM"
    If $sCountry = "GEORGIA" Then $sCountryCode = "GE"
    If $sCountry = "GERMANY" Then $sCountryCode = "DE"
    If $sCountry = "GHANA" Then $sCountryCode = "GH"
    If $sCountry = "GIBRALTAR" Then $sCountryCode = "GI"
    If $sCountry = "GREECE" Then $sCountryCode = "GR"
    If $sCountry = "GREENLAND" Then $sCountryCode = "GL"
    If $sCountry = "GRENADA" Then $sCountryCode = "GD"
    If $sCountry = "GUADELOUPE" Then $sCountryCode = "GP"
    If $sCountry = "GUAM" Then $sCountryCode = "GU"
    If $sCountry = "GUATEMALA" Then $sCountryCode = "GT"
    If $sCountry = "GUERNSEY" Then $sCountryCode = "GG"
    If $sCountry = "GUINEA" Then $sCountryCode = "GN"
    If $sCountry = "GUINEA-BISSAU" Then $sCountryCode = "GW"
    If $sCountry = "GUYANA" Then $sCountryCode = "GY"
    If $sCountry = "HAITI" Then $sCountryCode = "HT"
    If $sCountry = "HEARD ISLAND AND MCDONALD ISLANDS" Then $sCountryCode = "HM"
    If $sCountry = "HOLY SEE (VATICAN CITY STATE)" Then $sCountryCode = "VA"
    If $sCountry = "HONDURAS" Then $sCountryCode = "HN"
    If $sCountry = "HONG KONG" Then $sCountryCode = "HK"
    If $sCountry = "HUNGARY" Then $sCountryCode = "HU"
    If $sCountry = "ICELAND" Then $sCountryCode = "IS"
    If $sCountry = "INDIA" Then $sCountryCode = "IN"
    If $sCountry = "INDONESIA" Then $sCountryCode = "ID"
    If $sCountry = "IRAN, ISLAMIC REPUBLIC OF" Then $sCountryCode = "IR"
    If $sCountry = "IRAQ" Then $sCountryCode = "IQ"
    If $sCountry = "IRELAND" Then $sCountryCode = "IE"
    If $sCountry = "ISLE OF MAN" Then $sCountryCode = "IM"
    If $sCountry = "ISRAEL" Then $sCountryCode = "IL"
    If $sCountry = "ITALY" Then $sCountryCode = "IT"
    If $sCountry = "JAMAICA" Then $sCountryCode = "JM"
    If $sCountry = "JAPAN" Then $sCountryCode = "JP"
    If $sCountry = "JERSEY" Then $sCountryCode = "JE"
    If $sCountry = "JORDAN" Then $sCountryCode = "JO"
    If $sCountry = "KAZAKHSTAN" Then $sCountryCode = "KZ"
    If $sCountry = "KENYA" Then $sCountryCode = "KE"
    If $sCountry = "KIRIBATI" Then $sCountryCode = "KI"
    If $sCountry = "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF" Then $sCountryCode = "KP"
    If $sCountry = "KOREA, REPUBLIC OF" Then $sCountryCode = "KR"
    If $sCountry = "KUWAIT" Then $sCountryCode = "KW"
    If $sCountry = "KYRGYZSTAN" Then $sCountryCode = "KG"
    If $sCountry = "LAO PEOPLE'S DEMOCRATIC REPUBLIC" Then $sCountryCode = "LA"
    If $sCountry = "LATVIA" Then $sCountryCode = "LV"
    If $sCountry = "LEBANON" Then $sCountryCode = "LB"
    If $sCountry = "LESOTHO" Then $sCountryCode = "LS"
    If $sCountry = "LIBERIA" Then $sCountryCode = "LR"
    If $sCountry = "LIBYA" Then $sCountryCode = "LY"
    If $sCountry = "LIECHTENSTEIN" Then $sCountryCode = "LI"
    If $sCountry = "LITHUANIA" Then $sCountryCode = "LT"
    If $sCountry = "LUXEMBOURG" Then $sCountryCode = "LU"
    If $sCountry = "MACAO" Then $sCountryCode = "MO"
    If $sCountry = "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF" Then $sCountryCode = "MK"
    If $sCountry = "MADAGASCAR" Then $sCountryCode = "MG"
    If $sCountry = "MALAWI" Then $sCountryCode = "MW"
    If $sCountry = "MALAYSIA" Then $sCountryCode = "MY"
    If $sCountry = "MALDIVES" Then $sCountryCode = "MV"
    If $sCountry = "MALI" Then $sCountryCode = "ML"
    If $sCountry = "MALTA" Then $sCountryCode = "MT"
    If $sCountry = "MARSHALL ISLANDS" Then $sCountryCode = "MH"
    If $sCountry = "MARTINIQUE" Then $sCountryCode = "MQ"
    If $sCountry = "MAURITANIA" Then $sCountryCode = "MR"
    If $sCountry = "MAURITIUS" Then $sCountryCode = "MU"
    If $sCountry = "MAYOTTE" Then $sCountryCode = "YT"
    If $sCountry = "MEXICO" Then $sCountryCode = "MX"
    If $sCountry = "MICRONESIA, FEDERATED STATES OF" Then $sCountryCode = "FM"
    If $sCountry = "MOLDOVA, REPUBLIC OF" Then $sCountryCode = "MD"
    If $sCountry = "MONACO" Then $sCountryCode = "MC"
    If $sCountry = "MONGOLIA" Then $sCountryCode = "MN"
    If $sCountry = "MONTENEGRO" Then $sCountryCode = "ME"
    If $sCountry = "MONTSERRAT" Then $sCountryCode = "MS"
    If $sCountry = "MOROCCO" Then $sCountryCode = "MA"
    If $sCountry = "MOZAMBIQUE" Then $sCountryCode = "MZ"
    If $sCountry = "MYANMAR" Then $sCountryCode = "MM"
    If $sCountry = "NAMIBIA" Then $sCountryCode = "NA"
    If $sCountry = "NAURU" Then $sCountryCode = "NR"
    If $sCountry = "NEPAL" Then $sCountryCode = "NP"
    If $sCountry = "NETHERLANDS" Then $sCountryCode = "NL"
    If $sCountry = "NEW CALEDONIA" Then $sCountryCode = "NC"
    If $sCountry = "NEW ZEALAND" Then $sCountryCode = "NZ"
    If $sCountry = "NICARAGUA" Then $sCountryCode = "NI"
    If $sCountry = "NIGER" Then $sCountryCode = "NE"
    If $sCountry = "NIGERIA" Then $sCountryCode = "NG"
    If $sCountry = "NIUE" Then $sCountryCode = "NU"
    If $sCountry = "NORFOLK ISLAND" Then $sCountryCode = "NF"
    If $sCountry = "NORTHERN MARIANA ISLANDS" Then $sCountryCode = "MP"
    If $sCountry = "NORWAY" Then $sCountryCode = "NO"
    If $sCountry = "OMAN" Then $sCountryCode = "OM"
    If $sCountry = "PAKISTAN" Then $sCountryCode = "PK"
    If $sCountry = "PALAU" Then $sCountryCode = "PW"
    If $sCountry = "PALESTINE, STATE OF" Then $sCountryCode = "PS"
    If $sCountry = "PANAMA" Then $sCountryCode = "PA"
    If $sCountry = "PAPUA NEW GUINEA" Then $sCountryCode = "PG"
    If $sCountry = "PARAGUAY" Then $sCountryCode = "PY"
    If $sCountry = "PERU" Then $sCountryCode = "PE"
    If $sCountry = "PHILIPPINES" Then $sCountryCode = "PH"
    If $sCountry = "PITCAIRN" Then $sCountryCode = "PN"
    If $sCountry = "POLAND" Then $sCountryCode = "PL"
    If $sCountry = "PORTUGAL" Then $sCountryCode = "PT"
    If $sCountry = "PUERTO RICO" Then $sCountryCode = "PR"
    If $sCountry = "QATAR" Then $sCountryCode = "QA"
    If $sCountry = "RÉUNION" Then $sCountryCode = "RE"
    If $sCountry = "ROMANIA" Then $sCountryCode = "RO"
    If $sCountry = "RUSSIAN FEDERATION" Then $sCountryCode = "RU"
    If $sCountry = "RWANDA" Then $sCountryCode = "RW"
    If $sCountry = "SAINT BARTHÉLEMY" Then $sCountryCode = "BL"
    If $sCountry = "SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA" Then $sCountryCode = "SH"
    If $sCountry = "SAINT KITTS AND NEVIS" Then $sCountryCode = "KN"
    If $sCountry = "SAINT LUCIA" Then $sCountryCode = "LC"
    If $sCountry = "SAINT MARTIN (FRENCH PART)" Then $sCountryCode = "MF"
    If $sCountry = "SAINT PIERRE AND MIQUELON" Then $sCountryCode = "PM"
    If $sCountry = "SAINT VINCENT AND THE GRENADINES" Then $sCountryCode = "VC"
    If $sCountry = "SAMOA" Then $sCountryCode = "WS"
    If $sCountry = "SAN MARINO" Then $sCountryCode = "SM"
    If $sCountry = "SAO TOME AND PRINCIPE" Then $sCountryCode = "ST"
    If $sCountry = "SAUDI ARABIA" Then $sCountryCode = "SA"
    If $sCountry = "SENEGAL" Then $sCountryCode = "SN"
    If $sCountry = "SERBIA" Then $sCountryCode = "RS"
    If $sCountry = "SEYCHELLES" Then $sCountryCode = "SC"
    If $sCountry = "SIERRA LEONE" Then $sCountryCode = "SL"
    If $sCountry = "SINGAPORE" Then $sCountryCode = "SG"
    If $sCountry = "SINT MAARTEN (DUTCH PART)" Then $sCountryCode = "SX"
    If $sCountry = "SLOVAKIA" Then $sCountryCode = "SK"
    If $sCountry = "SLOVENIA" Then $sCountryCode = "SI"
    If $sCountry = "SOLOMON ISLANDS" Then $sCountryCode = "SB"
    If $sCountry = "SOMALIA" Then $sCountryCode = "SO"
    If $sCountry = "SOUTH AFRICA" Then $sCountryCode = "ZA"
    If $sCountry = "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS" Then $sCountryCode = "GS"
    If $sCountry = "SOUTH SUDAN" Then $sCountryCode = "SS"
    If $sCountry = "SPAIN" Then $sCountryCode = "ES"
    If $sCountry = "SRI LANKA" Then $sCountryCode = "LK"
    If $sCountry = "SUDAN" Then $sCountryCode = "SD"
    If $sCountry = "SURINAME" Then $sCountryCode = "SR"
    If $sCountry = "SVALBARD AND JAN MAYEN" Then $sCountryCode = "SJ"
    If $sCountry = "SWAZILAND" Then $sCountryCode = "SZ"
    If $sCountry = "SWEDEN" Then $sCountryCode = "SE"
    If $sCountry = "SWITZERLAND" Then $sCountryCode = "CH"
    If $sCountry = "SYRIAN ARAB REPUBLIC" Then $sCountryCode = "SY"
    If $sCountry = "TAIWAN, PROVINCE OF CHINA" Then $sCountryCode = "TW"
    If $sCountry = "TAJIKISTAN" Then $sCountryCode = "TJ"
    If $sCountry = "TANZANIA, UNITED REPUBLIC OF" Then $sCountryCode = "TZ"
    If $sCountry = "THAILAND" Then $sCountryCode = "TH"
    If $sCountry = "TIMOR-LESTE" Then $sCountryCode = "TL"
    If $sCountry = "TOGO" Then $sCountryCode = "TG"
    If $sCountry = "TOKELAU" Then $sCountryCode = "TK"
    If $sCountry = "TONGA" Then $sCountryCode = "TO"
    If $sCountry = "TRINIDAD AND TOBAGO" Then $sCountryCode = "TT"
    If $sCountry = "TUNISIA" Then $sCountryCode = "TN"
    If $sCountry = "TURKEY" Then $sCountryCode = "TR"
    If $sCountry = "TURKMENISTAN" Then $sCountryCode = "TM"
    If $sCountry = "TURKS AND CAICOS ISLANDS" Then $sCountryCode = "TC"
    If $sCountry = "TUVALU" Then $sCountryCode = "TV"
    If $sCountry = "UGANDA" Then $sCountryCode = "UG"
    If $sCountry = "UKRAINE" Then $sCountryCode = "UA"
    If $sCountry = "UNITED ARAB EMIRATES" Then $sCountryCode = "AE"
    If $sCountry = "UNITED KINGDOM" Then $sCountryCode = "GB"
    If $sCountry = "UNITED STATES" Then $sCountryCode = "US"
    If $sCountry = "UNITED STATES MINOR OUTLYING ISLANDS" Then $sCountryCode = "UM"
    If $sCountry = "URUGUAY" Then $sCountryCode = "UY"
    If $sCountry = "UZBEKISTAN" Then $sCountryCode = "UZ"
    If $sCountry = "VANUATU" Then $sCountryCode = "VU"
    If $sCountry = "VENEZUELA, BOLIVARIAN REPUBLIC OF" Then $sCountryCode = "VE"
    If $sCountry = "VIET NAM" Then $sCountryCode = "VN"
    If $sCountry = "VIRGIN ISLANDS, BRITISH" Then $sCountryCode = "VG"
    If $sCountry = "VIRGIN ISLANDS, U.S." Then $sCountryCode = "VI"
    If $sCountry = "WALLIS AND FUTUNA" Then $sCountryCode = "WF"
    If $sCountry = "WESTERN SAHARA" Then $sCountryCode = "EH"
    If $sCountry = "YEMEN" Then $sCountryCode = "YE"
    If $sCountry = "ZAMBIA" Then $sCountryCode = "ZM"
    If $sCountry = "ZIMBABWE" Then $sCountryCode = "ZW"
    Return $sCountryCode
EndFunc   ;==>_CountryNameToISO

 

Wouldn't Switch $sCountry work better than all those If statements?

My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.

My Projects

WhyNotWin11
Cisco FinesseGithubIRC UDFWindowEx UDF

 

  • 3 weeks later...
Posted (edited)

This code snippet is expansion to _ResourcePlaySound() from Resources UDF.

Thanks to Melba23 for helped me here:

'?do=embed' frameborder='0' data-embedContent>>

Without his example, I could not develop this code snippet.

 

The purpose of the code is:

To play group of sounds in order without stopping the loop.

for example, if you have these sounds: sound1.wav , sound2.wav , sound3.wav

you can play them in order in simple way with my code in this way:

PlaySoundGroup("sound1|sound2|sound3")
While 1
    $PlaySoundGroup = PlaySoundGroup()
    If $PlaySoundGroup = 1 Then
        ToolTip("Sounds Playing")
    ElseIf $PlaySoundGroup = 0 Then
        MsgBox(0,"","Sounds Stopped")
        Exit
    EndIf
    Sleep(50)
WEnd

Full examle attached to this post.

EDIT:

I updated the code and example.

PlaySoundGroup.rar

PlaySoundGroup - v2.rar

Edited by Guest
Posted (edited)

I had a need to change the z-order of windows and their position in the "alt-tab" list. I spent quite a long time trying to figure out how to make it happen, so I thought I'd post this snippet back since I finally came up with a workable solution.

USE CASE: I bring music applications to the foreground while I'm working/etc via a hotkey. I then press the hotkey again in order to minimize the program. When I did that, however, my alt-tab order was then modified so that I couldn't continue to "alt-tab" between active windows I was working on, which is a distraction that hurt my workflow. I wanted a way to set a window to the back of the alt-tab list and also to change the z-order of a window (two different problems, as it turned out). I've used this with Windows 8.1.

I'm not sure if "WinWaitDelay" is applicable to WinSetState operations. I just have it there for good measure. The _WinAPI_FlashWindowEx bit is needed sometimes to prevent windows from automatically flashing the newly un-hidden window. Also, two ancillary functions are used in order to ensure that a different window is active than the one that is to be sent to the back, since this doesn't seem to work right unless that is the case.

#include <WinAPI.au3>

$handle = WinGetHandle("A window which you would like to send to the back of all other windows")
_SendToBottom($handle)

Func _LastWindowTitle($z = 1)
    If $z < 1 Then Return SetError(1, 0, 0) ; Bad parameter
    Local $avList = WinList()
    For $n = 1 to $avList[0][0]
        If $avList[$n][0] <> "" And BitAND(WinGetState($avList[$n][1]), 2) Then
            If $z Then 
                $z -= 1
            Else
                Local $arr = [$avList[$n][0],$avList[$n][1]]
                Return $arr
            EndIf
        EndIf
    Next
    Return SetError(2, 0, 0) ; z-depth exceeded
EndFunc

Func _FastActivate($hWnd)
    Opt("WinWaitDelay", 20)
    WinActivate($hWnd)
    WinWaitActive($hWnd,"",4)
    _WinAPI_FlashWindowEx($hWnd,0,0,0)
    Opt("WinWaitDelay", 250)
EndFunc

Func _SendToBottom($hWnd)
    Local Const $HWND_BOTTOM = 1;
    Opt("WinWaitDelay", 20)
    Local $active = WinGetHandle("[ACTIVE]")
    Local $lastWindow = _LastWindowTitle()
    Local $lastHandle = $lastWindow[1]
    If Not ($hWnd <> $active) Then 
        If (WinExists($lastHandle)) Then 
            _FastActivate($lastHandle)
        EndIf
    EndIf
    DllCall("user32.dll", "long", "SetWindowPos", "uint", $hWnd, "uint", $HWND_BOTTOM , "int", 0, "int", 0, "int", 0, "int", 0 , "uint", 0x13)
    WinSetState($hWnd,"",@SW_MINIMIZE)
    WinSetState($hWnd,"",@SW_HIDE)
    WinSetState($hWnd,"",@SW_SHOW)
    ;disable the taskbar flashing that sometimes occurs when hiding and showing windows...
    _WinAPI_FlashWindowEx($hWnd,0,0,0)
    Opt("WinWaitDelay", 250)
EndFunc
Edited by j981
Posted (edited)

This is another simple function I've found to be quite handy.

USE CASE: Since chrome v32 and later no longer exposes any standard windows API controls, a huge number of "controlsend" based automation functions I was using against webapps broke. I changed things to bring those windows to the foreground instead to send keys and then minimize them again (with the _SendToBottom function I just posted as well), but with the standard 'winactivate' it took too long. This function basically just reduces the winwaitdelay temporarily, but it also disables the automatic flashing of windows in the taskbar which occurs if you activate windows too rapidly, which was extremely annoying. It's not particularly useful if you just want to bring something to the foreground to actively work with, but if the goal is to activate something solely to send a key and then minimize again, it speeds things up quite a bit since it happens almost instantly. Hopefully someone else also finds this useful.

#include <WinAPI.au3>

$handle = WinGetHandle("Some window you would like to activate")
_FastActivate($handle)

Func _FastActivate($hWnd)
    Opt("WinWaitDelay", 20)
    WinActivate($hWnd)
    WinWaitActive($hWnd,"",4)
    _WinAPI_FlashWindowEx($hWnd,0,0,0)
    Opt("WinWaitDelay", 250)
EndFunc
Edited by j981
  • 1 month later...
Posted (edited)

Here is my solution to the sh!tty Windows Desklink  aka Right click 'Send To' menu. It's probably been done before and or better than how I have done it?
I wrote it this way because it's the easiest for me to understand how so I could fix a problem not because it is the best way. Feel free to critique/rewrite label as abortion code what ever it does what I need it to do on Windows 7 64 bit.

Credit nearly all goes to the two users mentioned in the credits. I merely grabbed their two ideas and joined them together to make a solution. None of the code is mine really

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Desktop (create shortcut).ico
#AutoIt3Wrapper_Outfile=Desktop (create shortcut).exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.10.2
 Author:   Jarmezrocks
 Script Version: 1.0

 Script Function:   The purpose of creating this was due to an annoyance with Windows 7 where
                    I was constantly editing the shortcuts created from the right click 'Send To'
                    create 'Desktop (create shortcut)' where I would need to remove the junk that
                    Microsoft attached as a postfix i.e. - (short cut) and remove the file
                    extension as well. E.g. Notepad.exe -> creates a shortcut 'Notepad.exe - (shortcut)'
                    when what I really wanted created was a shortcut called 'Notepad'
                    This AutoIT script was created to solve this issue/annoyance.

 Usage:             Place the compiled exe where ever you like right click the compiled exe and create a shortcut
                    rename it 'Desktop (create shortcut)' the same as the Desktop (create shortcut).Desklink
                    item in the Send To menu.
                    Locate your Send To menu: Start -> Run -> type this: shell:sendto -> press enter
                    This opens the directory for your Send To items, likely located somewhere like
                    C:\Users\<User Name>\AppData\Roaming\Microsoft\Windows\SendTo
                    Paste the shortcut to the exe here
                    Note: You will now have a duplicate in the Send To menu, so I advise that you hide the old .Desklink item
                    Right click -> File Properties -> Hidden
                    Done!
                    Test by Right clicking any file and choosing Send To -> Desktop (create shortcut)

 Acknowledgements:  AutoIT Forums;
                    User Harlequin for this post/thread -> http://www.autoitscript.com/forum/topic/86839-how-get-file-extension/#entry623386
                    User Voodooman for this post/thread -> http://www.autoitscript.com/forum/topic/122807-remove-extension-from-the-filenameexample/?p=1110846

 Improvements:      Place a link to it's self in the Send to Menu and hide the old desklink - Easily done
#ce ----------------------------------------------------------------------------

Global $Input = $CmdLineRaw
Global $LinkFileName = RemoveExt(GetFileName($Input))

; Borrowed from Voodooman
Func RemoveExt($Input)
    Local $ExtArray = StringSplit($Input, ".")
    Return StringReplace($Input, "." & $ExtArray[$ExtArray[0]], "", -1)
EndFunc   ;==>RemoveExt

Func RemoveExtRegExp($Input)
    Return StringRegExpReplace($Input, "\.[^.]*$", "")
EndFunc   ;==>RemoveExtRegExp

Func GetFileName($Input)
    Local $PathArray = StringSplit($Input, "\/")
    Return $PathArray[$PathArray[0]]
EndFunc   ;==>GetFileName

; Importance of the following. As pointed out by Harlequin using any StringRightTrim methods of obtaining the extension doesn't account for several
; things "." can located in the path of a folder name and  "." can appear more than once within files or folders i.e What would one do when trying
; to return the extension of a html file or any other long extension file type?

Func CreateLink()
    Local $Ext
    If $CmdLineRaw Then
        For $YLoop = StringLen($CmdLineRaw) To 1 Step -1
            If StringMid($CmdLineRaw, $YLoop, 1) == "." Then
                $Ext = StringMid($CmdLineRaw, $YLoop)
                $YLoop = 1
            EndIf
        Next
        Local $Type = RegRead("HKEY_CLASSES_ROOT\." & $Ext, "")
        Local $FileName = $CmdLineRaw
        Local $LnkFileLocate = (@DesktopDir & "\" & $LinkFileName & ".lnk"); Here is the working part - Generate the Desktop shortcut from the derived file name
        Local $WorkingDirectory = ""
        Local $Icon = RegRead("HKEY_CLASSES_ROOT\" & $Type & "\DefaultIcon", ""); Derive the file type icon from the registered application
        Local $IconNumber = 1
        Local $Description = "" ; I decided to leave this blank
        Local $State = @SW_SHOWNORMAL ;Can also be @SW_MAXIMUM or @SW_SHOWMINNOACTIVE or even @SW_HIDE
        If Not FileExists($LinkFileName) Then ;Check there isn't already as shortcut
            FileCreateShortcut($FileName, $LnkFileLocate, $WorkingDirectory, "", $Description, $Icon, "", $IconNumber, $State); Generate the shortcut
        EndIf
    EndIf
EndFunc   ;==>CreateLink
CreateLink() ; Execute the Function
Edited by DigitalFacade82
Posted

 

Here is my solution to the sh!tty Windows Desklink  aka Right click 'Send To' menu. It's probably been done before and or better than how I have done it?

I wrote it this way because it's the easiest for me to understand how so I could fix a problem not because it is the best way. Feel free to critique/rewrite label as abortion code what ever it does what I need it to do on Windows 7 64 bit. ...

 

Just as a matter of interest, there is a registry hack that will turn off the "Shortcut to" on desktop shortcuts.

You can read about it here http://www.howtogeek.com/howto/windows-vista/remove-shortcut-text-from-new-shortcuts-in-vista/

Good Luck. DeMo.

Quote of the week:"BASIC programmers never die, they GOSUB and don't RETURN." -- UnknownWisdom of the ages:

  

  • I'd be unstoppable... if not for law enforcement and physics.
  • Marriage, the number 1 cause of divorce.
  • Don't steal... the government hates competition.
  • Irish Government Motto: We’ve got what it takes to take what you’ve got.
  • Birthdays are good for you. Statistics show that the people who have the most live the longest.
  • Failure is not an option. It comes bundled with your Microsoft product.-- Ferenc Mantfeld
  • If you learn from your mistakes, then why ain't I a genius?! -- Anonymous
  • Remember, live every day as if it was your last day! one day you will be right.
  • How is it one careless match can start a forest fire, but it takes a whole box to start a campfire?
  • Sure my system is secure, it just locked up again.
  • I haven't lost my mind; I have a tape back-up somewhere.  ~Author Unknown
Posted

Just as a matter of interest, there is a registry hack that will turn off the "Shortcut to" on desktop shortcuts.

You can read about it here http://www.howtogeek.com/howto/windows-vista/remove-shortcut-text-from-new-shortcuts-in-vista/

Good Luck. DeMo.

Dammit!

Hmm hang on? Wait that will only remove - Shortcut right?

What about the file extension?

notpad.exe normally goes to -> notepad.exe - Shortcut

Registry edit

notepad.exe goes to -> notepad.exe

I still then need to double long click or right click shortcut properties and remove .exe from the end.

What I want then is this

notepad.exe goes to -> notepad

Or maybe I could improve it to reproduce the link in propercase Or propercase with string replace to substitute dashes and underscores

 

notepad.exe goes to -> Notepad

and

this-is-the-name-of-a-long-executable_1.exe goes to -> This is the name of a long executable 1

My snippet still applies I guess? But thanks for the reg hack. I have no idea why I never come across that earlier? 

Posted

Have you tried FileCreateShortcut? You can call it whatever you want with it.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Posted

Have you tried FileCreateShortcut? You can call it whatever you want with it.

5th line up from the bottom. I guess I should now go and seek who it was that created the initial FileCreateShortcut and add them to the credits....is that expected? I read it from the helpfile and yes that was very useful. If you read through the code in my snippet you will see why it alone cannot be used as the solution by its self and how I propose solutions to the issues that are created. I think you will like it ;-) As mentioned I am sure there are better ways that have been created to solve the same problem, this is just a different way of doing it and some of the parts or combination of parts may be useful to other forum members? 

  • 2 weeks later...
Posted (edited)

Here a snipped how to colorize each character of a label text:

GUICtrlCreateLabelColorized:

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>

_GDIPlus_Startup()
Global $hGUI = GUICreate("Test", 570, 100), $i
GUISetBkColor(0xFFFFFF)

Global $sText1 = "These chars were colorized separately"
Global $aColors1[StringLen($sText1)]
For $i = 0 To UBound($aColors1) - 1
    $aColors1[$i] = Random(0x000000, 0x400000, 1)
Next
Global $aLabel1 = GUICtrlCreateLabelColorized($sText1, $aColors1, 10, 10, 18, "Comic Sans MS")

Global $sText2 = "using " & Chr(203) & "label controls" & Chr(202) & " with " & Chr(201) & "bold" & Chr(200) & " words. ;-)"
Global $aColors2[StringLen($sText2)]

Global $aLabel2 = GUICtrlCreateLabelColorized($sText2, $aColors2, 18, 50, 26, "Times New Roman")

GUISetState()

Do
;~  For $i = 0 To UBound($aColors2) - 1
;~      GUICtrlSetColor($aLabel2[$i][0], Random(0x000000, 0xD00000, 1))
;~  Next
;~  Sleep(40)
Until GUIGetMsg() = $GUI_EVENT_CLOSE

_GDIPlus_Shutdown()
Exit

; #FUNCTION# ====================================================================================================================
; Name ..............:  GUICtrlCreateLabelColorized
; Description ......:   Creates a label with possibility to set different color to each character
; Syntax ............:  GUICtrlCreateLabelColorized($sText, $aColors, $iX, $iY, $fFontSize, $sFont[, $iWeight = 400[, $iAttribute = 0[,
;                                                                       $iFQuality = 0[, $fCorrection = 0.95]]]])
; Parameters .....:     $sText              - A string value. Chr(200) = disable bold char, Chr(201) = enable bold char,
;                                                     Chr(202) = disable italic char, Chr(203) = enable italic char,
;                           $aColors          - An array of color values in format RGB.
;                           $iX                  - An integer value - x position of the label.
;                           $iY                  - An integer value - y position of the label.
;                           $fFontSize       - A floating point value - size of the font.
;                           $sFont             - A string value - font name.
;                           $iWeight          - [optional] An integer value. Default is 400.
;                           $iAttribute        - [optional] An integer value. Default is 0.
;                           $iFQuality        - [optional] An integer value. Default is 4 (checkout GUICtrlSetFont for more details about quality settings)
;                           $fCorrection     - [optional] A floating point value. Default is 0.925.
; Return values .:  An array with following values:
;                           [$i][0] = control id of the label
;                           [$i][1] = color value of the character in RGB format
;                           [$i][2] = x position of the character
;                           [$i][3] = y position of the character
;                           [$i][4] = width of the character
;                           [$i][5] = height of the character
; Version ..........:   0.95 build 2017-09-11 beta
; Author ...........:   UEZ
; Modified ........:
; Remarks .......:  AutoIt version 3.3.10.2 or higher is required, __MeasureString is an internal function to measure each character.
;                           Don't forget to start GDI+ before you call the function!
; Related .........:    GUICtrlCreateLabel, _GDIPlus_StringFormatSetMeasurableCharacterRanges
; Link ..............:
; Example .......:  Yes
; ===============================================================================================================================
Func GUICtrlCreateLabelColorized($sText, $aColors, $iX, $iY, $fFontSize = 9.5, $sFont = "Arial", $iWeight = 400, $iAttribute = 0, $iFQuality = 4, $fCorrection = 0.925)
    If Not StringLen($sText) Then Return SetError(1, 0, 0)
    Local $aChars = StringSplit($sText, "", 2), $i, $aLabels[UBound($aChars)][6], $aCoord, $sChar, _
          $bBold = 0, $bItalic = 0, $iBold = 700, $iItalic = 2, $iWeightPrev = $iWeight, $iItalicPrev = $iAttribute
    For $i = 0 To UBound($aChars) - 1
        $sChar = $aChars[$i]
        If $sChar = " " Then $sChar = "." ;if char is space fill it up with . to calculate space between words
        Switch $sChar
            Case Chr(200)
                $bBold = 0
                ContinueLoop
            Case Chr(201)
                $bBold = 1
                ContinueLoop
            Case Chr(202)
                $bItalic = 0
                ContinueLoop
            Case Chr(203)
                $bItalic = 1
                ContinueLoop
        EndSwitch
        $aCoord = __MeasureString($sChar, $sFont, $fFontSize, $iAttribute + ($iWeight > 699) * 1)
        $aLabels[$i][1] = $aColors[$i] ;color
        $aLabels[$i][2] = ($iX - $aCoord[0]) * $fCorrection ;x pos
        $aLabels[$i][3] = $iY ;y pos
        $aLabels[$i][4] = $aCoord[2] ;width
        $aLabels[$i][5] = $aCoord[3] ;height
        $aLabels[$i][0] = GUICtrlCreateLabel($aChars[$i], $aLabels[$i][2], $aLabels[$i][3], $aLabels[$i][4], $aLabels[$i][5]) ;create label (char) control
        GUICtrlSetColor($aLabels[$i][0], $aLabels[$i][1]) ;set char color
        If $bBold Then
            $iWeight = $iBold
        Else
            $iWeight = $iWeightPrev
        EndIf
        If $bItalic Then
            $iAttribute = $iItalic
        Else
            $iAttribute = $iItalicPrev
        EndIf
        GUICtrlSetFont($aLabels[$i][0], $fFontSize, $iWeight, $iAttribute, $sFont, $iFQuality) ;set font for char
        $iX += $aCoord[1] ;calculate next x position
    Next
    Return $aLabels
EndFunc   ;==>GUICtrlCreateLabelColorized

; #INTERNAL_USE_ONLY# ===========================================================================================================
; Name ............:    __MeasureString
; Description ....:     Measures a string
; Syntax ..........:    __MeasureString($sString, $sFont, $fFontSize[, $iAttribute = 0])
; Parameters ...:   $sString            - A string value.
;                           $sFont              - A string value.
;                           $fFontSize      - A floating point value.
;                           $iAttribute         - [optional] An integer value. Default is 0.
; Return values.:   An array with x, y, width and height values of the string
; Version ..........:   2020-03-08 beta
; Author ...........:   UEZ
; Modified ........:
; Remarks .......:  AutoIt version 3.3.10.2 or higher is required
; Related .........:    GDIPlus
; Link ..............:
; Example .......:  Yes
; ===============================================================================================================================
Func __MeasureString($sString, $sFont, $fFontSize, $iAttribute = 0)
    Local Const $hDC = _WinAPI_GetDC(0), $hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDC), $tLayout = _GDIPlus_RectFCreate()
    Local Const $hFormat = _GDIPlus_StringFormatCreate(), $hFamily = _GDIPlus_FontFamilyCreate($sFont), $hFont = _GDIPlus_FontCreate($hFamily, $fFontSize, $iAttribute)
    Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
    Local $aRanges[2][2] = [[1]]
    $aRanges[1][1] = StringLen($sString)
    _GDIPlus_StringFormatSetMeasurableCharacterRanges($hFormat, $aRanges)
    Local Const $aRegion = _GDIPlus_GraphicsMeasureCharacterRanges($hGraphics, $sString, $hFont, $aInfo[0], $hFormat)
    Local Const $aBounds = _GDIPlus_RegionGetBounds($aRegion[1], $hGraphics)
    _GDIPlus_RegionDispose($aRegion[1])
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_GraphicsDispose($hGraphics)
    _WinAPI_ReleaseDC(0, $hDC)
    Local $aDim[4]
    $aDim[0] = $aBounds[0]      ;X coordinate of the upper-left corner of the rectangle
    $aDim[1] = $aBounds[2]      ;Width of the rectangle for next char
    $aDim[2] = $aInfo[0].Width  ;Width of the rectangle
    $aDim[3] = $aInfo[0].Height ;Height of the rectangle
    Return $aDim
EndFunc   ;==>__MeasureString

Requires AutoIt version 3.3.10.2 or higher!

Br,

UEZ

Edited by UEZ
Little update

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)

Thanks JLogan3o13. Changed bg to black to be less dazzling for your eyes. ;)

 

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

  • 2 weeks later...
Posted (edited)

Slided ON / OFF by @taietel

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
$bOn = True
$hGUI = GUICreate("On/Off", 120, 45)
GUICtrlCreateLabel("ON", 10, 10, 50, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "Arial",5)
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlSetBkColor(-1, 0x101010)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel("OFF", 60, 10, 50, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "Arial",5)
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlSetBkColor(-1, 0x101010)
GUICtrlSetState(-1, $GUI_DISABLE)
$hSwitch = GUICtrlCreateLabel("", 60, 10, 50, 25)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetBkColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)

While 1
Switch GUIGetMsg()
  Case -3
   Exit
  Case $hSwitch
   $aPos = ControlGetPos($hGUI, "", $hSwitch)
   If $bOn Then
    For $i = 0 To 50
     ControlMove($hGUI, "", $hSwitch, $aPos[0] - $i, $aPos[1])
    Next
    $bOn = False
   Else
    For $i = 0 To 50
     ControlMove($hGUI, "", $hSwitch, $aPos[0] + $i, $aPos[1])
    Next
    $bOn = True
   EndIf
EndSwitch
WEnd
Edited by mLipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

Posted

Thanks mLipok. Though the code needs a bit of updating in my opinion.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted

based on:

http://blogs.technet.com/b/heyscriptingguy/archive/2005/02/16/how-can-i-list-open-sessions-and-open-files-on-a-computer.aspx

List of active sesion and opened files :

Local $objConnection = ObjGet("WinNT://localhost/LanmanServer")

Local $colSessions = $objConnection.Sessions
For $objSession In $colSessions
    ConsoleWrite("Computer: " & $objSession.Computer & @CRLF )
    ConsoleWrite("Connected Time: " & $objSession.ConnectTime & @CRLF )
    ConsoleWrite("Idle Time: " & $objSession.IdleTime & @CRLF )
    ConsoleWrite("Name: " & $objSession.Name & @CRLF )
    ConsoleWrite("User: " & $objSession.User & @CRLF )
    ConsoleWrite(@CRLF )
Next

Local $colResources = $objConnection.Resources
For $objResource in $colResources
    ConsoleWrite("Name: " & $objResource.Name& @CRLF )
    ConsoleWrite("Path: " & $objResource.Path& @CRLF )
    ConsoleWrite("User: " & $objResource.User& @CRLF )
    ConsoleWrite("LockCount: " & $objResource.LockCount& @CRLF )
    ConsoleWrite(@CRLF )
Next

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

  • 1 month later...
Posted (edited)

Get all environmental variables from the local computer:

#include <Constants.au3>

Local $PID, $line, $PIDerror

;;This simple program will pop a msgbox up showing all enviroment variables in the local machine

$PID = Run(@ComSpec & ' /c set', @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$PIDerror = @error
If $PIDerror <> 0 Then
    MsgBox(0, "error", "error running the $PID command; error: " & $PIDerror)
EndIf
SetError(0)

;;main line

While 1
    $line &= StdoutRead($PID)
    If @error Then
        ExitLoop
    EndIf
WEnd

MsgBox(0, "ENVIROMENT VARIABLES", $line)
Edited by MikahS

Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4

Feel free to use any of my code for your own use.                                                                                                                                                           Forum FAQ

 

Posted (edited)

Simple CPU temp monitor using >GraphGDIPlus.au3. Updates ticks allowing it to run indefinitely.

#RequireAdmin

#include <GraphGDIPlus.au3>
#include <GUIConstants.au3>

AdlibRegister("findTemp", 9000)
AdlibRegister("_Draw_Graph", 10000)

Local $hGUI, $hGraph, $temp, $Counter = 1, $iCheck, $msg, $xVal = 1

$hGUI = GUICreate("", 600, 350) ; create the GUI window
$iCheck = GUICtrlCreateCheckbox("Reset on next interval", 462, 1)
GUISetState() ; show the window

CreateGraph() ; create the graph
findTemp() ; find the temp
_Draw_Graph() ; draw the graph

While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            Quit()
    EndSwitch
WEnd

Func CreateGraph()
    If IsArray($hGraph) = 0 Then ; if an array hasn't been made; then make it
        $hGraph = _GraphGDIPlus_Create($hGUI, 37, 24, 545, 300, 0xFF000000, 0xFF88B3DD) ; create the graph
    EndIf
    If $Counter > 24 Then ; if the counter is greater then 24; lets start making this move over one on the x range
        _GraphGDIPlus_Set_RangeX($hGraph, $xVal, $Counter, 24) ; this will move us one full tick over to the right from the start and finish of the x range
        $xVal += 1 ; add one to our start x range
    Else
        _GraphGDIPlus_Set_RangeX($hGraph, 0, 24, 24) ; set the x range from 0 - 24 putting all 24 ticks on screen
        _GraphGDIPlus_Set_RangeY($hGraph, 0, 125, 5) ; set the y range from 0 - 125 only putting 5 ticks on screen
        _GraphGDIPlus_Set_GridX($hGraph, 1, 0xFF6993BE) ; set the x grid
        _GraphGDIPlus_Set_GridY($hGraph, 1, 0xFF6993BE) ; set the y grid
    EndIf
EndFunc   ;==>CreateGraph

Func _Draw_Graph()
    Local $rCheckbox
    $rCheckbox = GUICtrlRead($iCheck) ; read the checkbox value; 1 if clicked
    If $rCheckbox = 1 Then ; if clicked then...
        ControlClick($hGUI, "Reset on next interval", $iCheck) ; unclick the checkbox
        _GraphGDIPlus_Delete($hGUI, $hGraph) ; delete the graph
        $Counter = 1 ; reset the counter
        $xVal = 1 ; reset the x range counter
        CreateGraph() ; and create the graph again
    EndIf
    If $Counter > 24 Then ; if we've reached the end
        CreateGraph() ; and create the graph again
    EndIf
    _GraphGDIPlus_Set_PenColor($hGraph, 0xFF325D87) ; set the color of the line
    _GraphGDIPlus_Set_PenSize($hGraph, 2) ; set the size of the line
    _GraphGDIPlus_Plot_Start($hGraph, $Counter, 0) ; set the start on the graph plot
    _GraphGDIPlus_Plot_Line($hGraph, $Counter, $temp) ; set the line ending
    _GraphGDIPlus_Refresh($hGraph) ; draw it to the screen
    $Counter += 1 ; add one to our counter
EndFunc   ;==>_Draw_Graph


Func findTemp()
    Local $aClasses, $nCounter = 0
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\wmi")
    $Instances = $objWMIService.InstancesOf("MSAcpi_ThermalZoneTemperature")
    $aClasses = $objWMIService.subClassesOf()
    For $class in $aClasses
        If StringInStr($class.Path_.Path, "MSAcpi_ThermalZoneTemperature") <> 0 Then
            $nCounter += 1
        EndIf
    Next
    If $nCounter = 0 Then
        MsgBox(0, "Not Supported", "I'm sorry, but getting of the CPU temp is not supported on your machine. Exiting...")
        Quit()
    Endif
    For $Item In $Instances
        $temp = ($Item.CurrentTemperature - 2732) / 10 ; set the temp
    Next
EndFunc   ;==>findTemp


Func Quit()
    _GraphGDIPlus_Delete($hGUI, $hGraph) ; delete the graph
    Exit ; get us out
EndFunc   ;==>Quit

EDIT: Added a check to see if the WMI temperature hive was present; if it is not, then it will tell you and exit.

Edited by MikahS

Snips & Scripts


My Snips: graphCPUTemp ~ getENVvars
My Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4

Feel free to use any of my code for your own use.                                                                                                                                                           Forum FAQ

 

  • Moderators
Posted

MikahS, you may want to add a check in there for whether that WMI hive is present, or they'll be staring at a blank graph. Remember that not all machines support reading of the cpu temperature.

If you Google "msacpi_thermalzonetemperature not supported" you'll find a number of threads on MSDN and SO where people run into just this kind of issue.

Otherwise, a great use of GDI+ graphing, very nice addition :)

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

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...