Sign in to follow this  
Followers 0
rcmaehl

HUGE PROJECT

37 posts in this topic

Okay guys, I'm starting on creating a program in AutoIt to create AutoIt GUIs, GUI Ctrls, Scripts, Etc. However I know I can't do this by myself. I'm estimating that by completion of the program it'll be roughly 10,000+ lines of code, so if anyone would be interested in helping me with the program or have a suggestion It'd be appreciated. I will also need some ideas on how to block abuse of the program. EG: How to prevent people from creating malicious scripts, unending dialog boxes, etc. Thanks.

-Robert C. Maehl


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


Active: IRC UDF, WindowEx UDF
Discontinued: GithubBubbleSort UDF

Share this post


Link to post
Share on other sites



Basically you are looking to rewrite Koda?

No, I want to make something with a simpler interface with more capability then just GUIs, is coded in the language it's generating, has better performance with it's outputted code, and MANY more reasons.


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


Active: IRC UDF, WindowEx UDF
Discontinued: GithubBubbleSort UDF

Share this post


Link to post
Share on other sites

10,000+ lines of code

Are you sure it will be roughly over 10,000 lines? Because the easy part is writing code, what takes the longest is optimising it, so I'm sure a script that large can be easily reduced :mellow:

block abuse of the program.

Keywords, but only that has a 0.1% success rate.

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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: 04/09/2015

Share this post


Link to post
Share on other sites

Are you sure it will be roughly over 10,000 lines? Because the easy part is writing code, what takes the longest is optimising it, so I'm sure a script that large can be easily reduced Posted Image

Keywords, but only that has a 0.1% success rate.

I've already created a draft on paper of the GUI and script. It's pretty complex. Their's a lot of dependencies in place in the program. EG. You can't create menu item's till there's a menu, etc. Also, it's going to be semi-optimized from START. EG. I'm going to be using arrays instead of Single Variables. Although you can still expect A LOT of posts asking for any suggestions on optimizing a Function or Section of code from the program. I'm hoping I can get this product done by 2012, and I'll be including it in the AutoIt Utility Suite.

On a side note, I don't know how to make resizable windows so if someone would post a quick run-through with run-able examples It'd be appreciated.


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


Active: IRC UDF, WindowEx UDF
Discontinued: GithubBubbleSort UDF

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

I don't know how to make resizable windows

Look under the example for GUICtrlSetResizing()

I wish you the best of luck with this & am looking forward to seeing what you can come up with.

Edited by guinness

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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: 04/09/2015

Share this post


Link to post
Share on other sites

Look under the example for GUICtrlSetResizing()

Ah. Thanks.


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


Active: IRC UDF, WindowEx UDF
Discontinued: GithubBubbleSort UDF

Share this post


Link to post
Share on other sites

Just get writing, I'm sure you'll be surprised how quickly you can write it, just break it down in to smaller parts, I've got a "Massive" project I've been doing on and off for about a year, good luck!

Share this post


Link to post
Share on other sites

Just get writing, I'm sure you'll be surprised how quickly you can write it, just break it down in to smaller parts, I've got a "Massive" project I've been doing on and off for about a year, good luck!

I've already created most of the GUI and it's only been a day O_o, however I'm sure I'll get stuck trying to figure out the best way to do something.


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


Active: IRC UDF, WindowEx UDF
Discontinued: GithubBubbleSort UDF

Share this post


Link to post
Share on other sites

You can always do it one way and change it later Posted Image

meh. I'm a semi-perfectionist, I blame my Autism. Currently the GUI is like 12 lines away from completion. Then I have to add Functions for GUI creation/deletion/editing, Control creation/deletion/editing, Messagebox creation/deletion/editing, Inputbox creation/deletion/editing, anti-abuse, compiling, exporting, importing, saving, loading, update checker, feedback, donations, syntax checking, spell check, optimization suggestions, help files, credits, and MUCH more.


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


Active: IRC UDF, WindowEx UDF
Discontinued: GithubBubbleSort UDF

Share this post


Link to post
Share on other sites

meh. I'm a semi-perfectionist, I blame my Autism. Currently the GUI is like 12 lines away from completion. Then I have to add Functions for GUI creation/deletion/editing, Control creation/deletion/editing, Messagebox creation/deletion/editing, Inputbox creation/deletion/editing, anti-abuse, compiling, exporting, importing, saving, loading, update checker, feedback, donations, syntax checking, spell check, optimization suggestions, help files, credits, and MUCH more.

If you dont see many examples from me is because i am like you :mellow:

My method(Not the best) once that i figure out how to do the main task of the program start to making the GUI with all the features that i want..pfffff to much features, i use functions a lot to keep me organizated. for ex:

Declare Globals (a lot of Globals)

Func _StoreINIsIntoVariables()

Func _CreateControls() a lot of controls

Main loop

Funcs about the main task of the program

Auxiliaryfuncs

ExitFuncs like saving data into INIs and releasing some resources.

Share this post


Link to post
Share on other sites

Very good idea, i'm always thinking about something better than KODA to make GUI for AutoIt, it can be so good if the GUI Controls can be coded inside your program. I mean for example you create a Button then double click on it, a page appear and you write your code that you want when you clicked on that Button that code execute.

I know you can do it, go on bro.

Share this post


Link to post
Share on other sites

meh. I'm a semi-perfectionist, I blame my Autism.

OMFG

Take a break.


♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

#16 ·  Posted (edited)

Very good idea, i'm always thinking about something better than KODA to make GUI for AutoIt, it can be so good if the GUI Controls can be coded inside your program. I mean for example you create a Button then double click on it, a page appear and you write your code that you want when you clicked on that Button that code execute.

I know you can do it, go on bro.

That is a good idea, easy snippets!!! if you need help is some part tell me. Edited by monoscout999

Share this post


Link to post
Share on other sites

Good luck and have fun with it. Nice way to teach yourself the language ... oh, and I couldn't resist:

If _IsWine() then _DrinkIt()

Lofting the cyberwinds on teknoleather wings, I am...The Blue Drache

Share this post


Link to post
Share on other sites

#18 ·  Posted (edited)

Are you sure it will be roughly over 10,000 lines? Because the easy part is writing code, what takes the longest is optimising it, so I'm sure a script that large can be easily reduced :mellow:

So true I am working on a project that I do have over 10,000 lines of code on....what a pain...doesn't help when you are a slow coder ether! lol

I don’t know how much help I can be but if you have it broke down into small pieces I might be willing to write few functions for it in my spare time.

Edited by Herb191

Share this post


Link to post
Share on other sites

First Problem:

H:\Desktop\URSafe\GUIMaker.au3 (99) : ==> "For" statement is badly formatted.:

For $__Num[0] = 0 To 5

For $__Num[0^ ERROR

From this and I have NO clue how to fix:

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
#NoTrayIcon
#include <GUIConstantsEx.au3>
Global $__GUI[2], $_Menu[3], $_Item[3], $Break[1]
Global $Group[2], $_Make[2], $_CTRL[9], $Param[9]
Global $Label[9], $Check[9], $Event[9]
Global $Msg, $Type
Global $_Code[100]
Global $Cache[2][100]Global $__Num[3] = [0,0,0]
Creator()Func Creator()
$__GUI[0] = GUICreate("AutoIt GUI Maker", 250, 540, 0, -1, 0x00CA0080)
$_Menu[0] = GUICtrlCreateMenu("&File")
$_Menu[1] = GUICtrlCreateMenu("Save", $_Menu[0])
$_Item[0] = GUICtrlCreateMenuItem("GUI", $_Menu[1])
$Break[0] = GUICtrlCreateMenuItem("", $_Menu[0])
$_Item[1] = GUICtrlCreateMenuItem("&Exit", $_Menu[0])
$_Menu[2] = GUICtrlCreateMenu("&Edit")
$_Item[2] = GUICtrlCreateMenuItem("&Undo", $_Menu[2])$Group[0] = GUICtrlCreateGroup("Create Something New", 5, 5, 240, 150)
$_Make[0] = GUICtrlCreateButton("GUI", 15, 25, 110, 20)
$_Make[1] = GUICtrlCreateButton("Script", 125, 25, 110, 20)

$Group[1] = GUICtrlCreateGroup("GUI and Control Parameters", 5, 165, 240, 240)$Label[0] = GUICtrlCreateLabel("Title:", 15, 180, 40, 20, 0x0200)
$Param[0] = GUICtrlCreateInput("My Program", 55, 180, 135, 20, 0x0201)
$Check[0] = GUICtrlCreateLabel("", 200, 180, 35, 20, 0x1201)
$Label[1] = GUICtrlCreateLabel("File/Text:", 15, 200, 80, 20, 0x0200)
$Param[1] = GUICtrlCreateInput('"Line 1" & @CRLF & "Line 2"', 15, 220, 220, 100, 0x0204)
$Check[1] = GUICtrlCreateLabel("", 200, 200, 35, 20, 0x1201)$Label[2] = GUICtrlCreateLabel("X Pos:", 15, 325, 40, 20, 0x0200)
$Param[2] = GUICtrlCreateInput("0", 55, 325, 40, 20, 0x0200)
$Label[3] = GUICtrlCreateLabel("Y Pos:", 110, 325, 40, 20, 0x0200)
$Param[3] = GUICtrlCreateInput("0", 150, 325, 40, 20, 0x0200)
$Check[2] = GUICtrlCreateLabel("", 200, 325, 35, 20, 0x1201)
$Label[4] = GUICtrlCreateLabel("Width:", 15, 345, 40, 20, 0x0200)
$Param[4] = GUICtrlCreateInput("10", 55, 345, 40, 20, 0x0200)
$Label[5] = GUICtrlCreateLabel("Height:", 110, 345, 40, 20, 0x0200)
$Param[5] = GUICtrlCreateInput("10", 150, 345, 40, 20, 0x0200)
$Check[3] = GUICtrlCreateLabel("", 200, 345, 35, 20, 0x1201)

$Event[0] = GUICtrlCreateButton("Cancel", 5, 500, 115, 20)
$Event[1] = GUICtrlCreateButton("OK", 130, 500, 115, 20)State(0)
GUISetState()

While 1
  $Msg = GUIGetMsg()
  Select
  
   Case $Msg = $_Item[1] Or $Msg = $GUI_EVENT_CLOSE
    Exit(0)
   Case $Msg = $Event[0]
    $Type = ""
    State(0)   Case $Msg = $Event[1]
    _Make($Type)
   Case $Msg = $_Item[2]
    _Make("Undo")
   Case $Msg = $_Make[0]
    $Type = "GUI"
    State(1)
   Case Else
    ;;;  EndSelect
WEnd
EndFunc
Func State($ID)
$__Num[0] = 0
Select  Case $ID = 0
   GUICtrlSetData($Event[1], "OK")
   For $__Num[0] = 0 To 5
    GUICtrlSetState($Param[$__Num[0]], $GUI_DISABLE)
   Next
  Case $ID = 1
   For $__Num[0] = 0 To 5
    If $__Num[0] = 1 Then ContinueLoop
    GUICtrlSetState($Param[$__Num[0]], $GUI_ENABLE)
   Next  Case $ID = 2
   GUICtrlSetState($_Item[2], $GUI_DISABLE)
  Case Else
   ;;;EndSelect
EndFunc
Func _Make($ID)
GUICtrlSetState($_Item[2], $GUI_ENABLE)
If Not ($ID = "Undo") Then  GUICtrlSetData($Event[1], "AGAIN")
Select  Case $ID = "GUI"
   $_CTRL[$__Num[1]] = GUICreate(GUICtrlRead($Param[0]), GUICtrlRead($Param[4]), GUICtrlRead($Param[5]), GUICtrlRead($Param[2]), GUICtrlRead($Param[3]), 0x10000000)
   $Cache[0][$__Num[2]] = $_CTRL[$__Num[1]]
   $Cache[1][$__Num[2]] = $ID
   $__Num[1] += 1
   $__Num[2] += 1
  Case $ID = "Undo"
   $__Num[1] -= 1
   If $Cache[1][$__Num[1]] = "CTRL" Then
    GUICtrlDelete($_CTRL[$__Num[1]])
   ElseIf $Cache[1][$__Num[1]] = "GUI" Then
    GUIDelete($_CTRL[$__Num[1]])
   Else
    ;;;
   EndIf
   If $__Num[1] = 0 Then State(2)  Case Else
   ;;;
EndSelect
EndFunc

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


Active: IRC UDF, WindowEx UDF
Discontinued: GithubBubbleSort UDF

Share this post


Link to post
Share on other sites

You can't use an array in a For...Next loop like that you have to use a regular variable as the variable in the loop portion.


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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0