Jump to content

How do you go advanced?

Recommended Posts

Define "know the basics".

It depends on what interests you: 

   If you like graphical projects, do a search for GDI+ on the forum (and make friends with UEZ).

   If you come from another language and want some understanding of how to approximate C# or other OOP code, and can take honest (read that brutal) constructive criticism, do a search on the forum for some of Trancexx's work.

   If you're looking to do web automation, look at the IUIAutomation thread in the Examples forum.

Without knowing what you're into, and with so much that AutoIt can do, it is a little difficult to point you in the right direction.

Share this post

Link to post
Share on other sites

I would encourage you to learn C#, given the fact Visual Studio Community is FREE to download/use and/or there is SharpDevelop, a FREE IDE for C#. I have some examples floating around the forum, plus online. PM and I will send you the link to the C# examples.

With all due respect, the code (which is limited mind you) that I have seen from you could be improved in some areas. One area many novice developers overlook is best practices for a particular language. The first thing I do whenever learning a new language, is not to head to the glossary of keywords or "Hello World" example, but instead the conventions for said language. You might ask why? Well, what people don't realise is the majority of users who are proficient in a particular language will gravitate towards a standard style for said language. So if I were to start writing JavaScript as though I am writing AutoIt, then it would kind of look a little weird for those who intend to help out on the project.

Here is an example of what I mean...

// C#, using the Alman style
public void Main()
    // ...
    int myAge = 100; // I wouldn't write like in AutoIt e.g. iMyAge (i = integer)
// Java, using the K&R style
public void Main() {
    // ...
    string name = "guinness"; // I wouldn't write like in AutoIt e.g. sName (s = string)

Though the differences are minor (the brackets), I wouldn't dare using Alman in Java, because it would not only look weird, but if I am working in a team, then my code wouldn't be consistent. They say code should look like it's written by one person and not multiple people.

Anyway, I have used my daily word count for this post!

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

Share this post

Link to post
Share on other sites

Although I agree with guinness that nothing broadens one's programming perspective more than engaging with a new language, there's also plenty of scope for developing "advanced" programming skills within pure AutoIt.  A few suggestions:

  • Study the various AutoIt games people have posted. Figure out how the algorithms subdivide into regions that handle work environment (e.g., moving sprites, collision physics, sounds), user events, and artifcial intelligence). Then build your own 2D platformer.
  • Hook up the irrlicht 3D rendering engine. play with over one hundred examples, then write your own 3D graphics animation. Not challenging enough? Make it real-time user-interactive. Check out the irrlicht tutorials too.
  • Figure out how scripts might communicate with each other when running on the same machine. How about on different machines on the same (W)LAN network? How about halfway across the world? Instead of sending TCP packets with triple handshake, can you use UDP streaming instead? How about encryption to protect the content?
  • Turn your laptop into a burglar alarm; whenever a sound is detected it starts recording video and audio, and sends an email or SMS to your mobile that someone may be in your room
  • Like music? Get the BASS environment, and mabe develop your own audio visualisation like this one,  or explore MIDI , maybe to control your own synthesizer or sequencer software. Check out czardas's various contributions that mix maths and music.
  • Open the Help, and navigate to _WinAPI Management or _WinAPIEx Reference, and study the different subtopics to check what might interest you. This is like looking under the hood of the Windows Operating System engine. Some of these functions are barely documented, yet some are very powerful. Look them up on MSDN, and imagine how they could be used. Check out the many contributions by Ascend4nt; there's an entire universe of low-level features that beckon to be explored.

The key ingredient here is motivation. You'll need tons of it, because when you're pushing yourself and your scripts beyond your comfort zone, you're going to spend a lot of time (months) just figuring out why the sections you copied from various other threads don't play nice together, let alone how your own code is going to work. So choose a topic you really like, or an application that you (and/or other people) really need, or that would save you loads of time, or one that is simply lacking and incredibly cool to look at, to listen to, to play with, or to share with your friends.

So spend several days just exploring the Example Scripts forum to see what is out there. People have shared some amazing scripts on this site, so be inspired and learn from it (and always acknowledge your sources!) Start small. Don't expect your voice-activated 3D chess-playing supermodel simulation to be able to also control your coffee machine and answer your personal emails.:D

Best of luck, be productive, and if it;s cool in any way, shape, or form, please share what you make.

Share this post

Link to post
Share on other sites

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

  • Create New...