xLeaves
26-01-2020, 00:03
LzBot (also known as LzRPA) is a software whose ultimate goal is to allow users to quickly and easily develop various automation tools.
These tools include, but are not limited to:
Office automation software (automatic operation of Excel, SAP, web pages)
Automated game software (giving the repetitive labor of online games to a virtual scripting robot)
Development of various other small programs (quickly develop various small programs that can solve problems in daily life)
Now that it has been updated to version 0.972, and has initially completed the planned functions, as well as the development of the English version, I will introduce this software in this new post.
10119
It uses a look and interface layout similar to VS.NET. The layout can be adjusted freely. It is divided into four main parts by default: command tree, log and integrated help, workspace, editor.
The command tree on the left can quickly browse the various functions supported by ThinBasic, and can quickly insert code into the editor, including various statements and commands, and even a document.
10120
Clicking a command can display the integrated help of this command, which allows the development process to be maintained within the integrated development environment without having to query the user manual, thereby improving development efficiency.
The workspace can open multiple projects, or execute files individually. LzBot provides a lot of convenience for project development, including automatic management of extended libraries and automatic copying of dependent files.
10122
LzBot also provides a project option editor, where you can more easily edit the version information (including automatic version overlay) and change the icon for the program.
Below the editor, there is also a Log pane where you can write code and use the TracePrint function to output debugging information here.
10123
In terms of code editing, the functions provided by LzRPA are also relatively complete, including keyword coloring, auto-completion, hover prompt and other functions.
10124
10125
My interest development team and I have used this editor to complete many project applications. At present, although it is not particularly perfect, it is stable enough.
I think that to attract enough users to a development environment, the first is stability and ease of use. Based on these two considerations, I have used ThinBasic as a back-end script engine because I have been paying attention to ThinBasic for some years. Updates are stable, and support for syntax and features is also very good (for ease of use, I have only filtered in the BASIC scripting language)
In terms of ease of use, I have made some improvements, such as integrating the help documentation directly into the IDE, changing various compilation preprocessing commands to be directly set by the user interface, and reorganizing the help documentation so that users only need to browse the commands Tree, find the required function, and then learn if, select, for, do, function and other statements to start programming. At present, my partners and I have launched some teaching videos (but explained in Chinese).
In addition, I have also extended some of the functionality of ThinBasic (or call it, within the extended range supported by ThinBasic, provided some new command libraries for ThinBasic), such as keyboard and mouse movement simulation, ported from FreeBasic Time library, extended window operations, extended Microsoft Office automation, extended web page automation (supports IE and Chrome), extended image text recognition, extended target window and process operations, etc.
In addition to these, I also tried to strengthen ThinBasic in terms of mechanism. Earlier, I tried to develop a shell program through thincore.dll to achieve multi-threading function, but this attempt failed. Later, I tried to pass multiple The process approach to achieve similar functions, fortunately this time I succeeded, and then I encapsulated the redis operation function into ThinBasic code, so it is very convenient to use LzBot to develop multi-process collaboration programs (the multi-thread function of other development tools). Thanks to this, it is very convenient to use LzBot to access the Redis database.
One of my wishes is to use software robots to simplify people's labor intensity at work. There are still many workers who need to sit in front of a computer and do a lot of repeated labor every day. These labors are often replaceable by robots, such as forms. Data entry, data transfer between multiple programs, etc.
When I'm doing similar work, I try to use LzBot to do it all automatically for me, so that I can spend my time on more creative tasks.
Compared to ThinBasic's existing development tools (ThinAir), LzBot does better in some aspects, but there are worse parts. I try to express the difference between the two objectively.
ThinAir is more focused on providing a complete toolchain for ThinBasic, and LzBot is more focused on its purpose, allowing more people to help themselves work through simpler learning using ThinBasic.
Because of this difference, LzBot has more considerations in terms of ease of use, but it is still insufficient in functional depth. For example, ThinAir provides the function of parsing the function list in the file, which LzBot does not have.
However, in development, LzBot is closer to VB. For example, TBMain is changed to Main. Some string functions do not require the use of $ at the end. Object aliases are created for the iDispatch type. The names of some functions are changed to VB or VBScript. Consistent, and added some new features, LzBot fits the usage habits of the target user as much as possible, and in the traditional ThinBasic development, it is more in line with the author's usage habits.
When LzBot uses the extension library, as long as the code of the extension library is added, the extension library will be automatically added to the project dependency list. When the EXE is generated, the code and files that the extension library depends on are automatically generated together to make this process. More simple.
At the same time, LzBot also extends the concept of extension libraries. Traditional ThinBasic can be an extension library. A piece of code and a DLL can also be used as extension libraries. This makes it easy for people who are good at different programming languages to develop extensions for ThinBasic instead of using PowerBasic as much as possible. Development extension.
Both LzBot and ThinAir have the concept of engineering, but ThinAir's project needs to be managed by the developer himself, and the files are referenced to each other. That's right. I also use C / C ++, C #, FreeBasic to develop and do the same.
However, this is not very friendly to novice programmers, so LzBot's project management simply assembles all files into a new file, and there is a unified entry point to make it easier for new users to get started. This is a Choosing the problem, my choice is to take care of new users.
LzBot has made a lot of simplifications. For example, generating an EXE does not need to face a complicated generator interface, but directly generates an EXE with the same name in the code directory. If it is a project, it is generated according to the path in the project option. Ask the user to save the file first, but ask the user where to save the program after generating the EXE, so it will be easier for novice users to use it.
Finally, to summarize the disadvantages of this version of LzBot:
The English version is not very mature, and some pop-up dialog boxes have not been translated, because there are pop-ups in many places. I am adding them to the multi-language configuration file one by one, and then helping Wendan translate it into the English version, which is a huge jobs.
There are some minor compatibility issues with the development of the ThinBasic original. In fact, I provided a solution. When the file extension uses tbs, the code is generated according to my improvement. When the file extension uses tbasic, the original development habits of ThinBasic are used Development.
Finally, the age of this development environment is still very low, only a few months, so the details are not good enough. For example, the cursor position is not displayed, the encoding does not support UTF8, there is no file parsing, and the function of listing function variables is not available. Automatically complete functions written by the user.
Of course, I also have a complete plan for the future direction of LzBot:
The first is the console system. I will use Redis and multiple processes to implement a new project type. This project type can manage all child processes in a unified data environment, and start, pause, and terminate the operation of a transaction at any time. And can feedback the running status of each task in the user interface. With this system, developers only need to complete specific function code, when this function is performed, how many times, and how many processes are performing the same task at the same time. How to coordinate and synchronize data between tasks is left to the framework.
The second is a new UI editor. As I said in another post, I want to provide users with a very simple user interface editor, preferably like VB, or even simpler (at least to achieve some effects (The interface is nice and simpler), this is a big project, so I planned for a few months and still haven't finalized the selection, maybe this is my most important task in 2020.
The last point is how to help the office staff. The richness of the ThinBasic and LzBot commands is far from enough. To help the people I want to help, I need to understand what these people need. In fact, I have investigated this matter several times. For years, office workers often use ERP systems such as Excel, web browsers (accessing web-based management systems), SAP, and miscellaneous management software. These softwares are developed using different technologies. I need to be able to implement these things. Stable and perfect operation simulation, and make the development of this process very simple, in order to achieve my goal, now that this goal is still far away, I will finally achieve it.
Finally, how do I download LzBot:
https://github.com/CN-xLeaves/LzRPA
Use Git's clone command to clone LzBot locally, or visit https://github.com/CN-xLeaves/LzRPA/releases to directly download the zip archive (yes, the main factor that prevents me from patronizing the ThinBasic forum often is the network, access The speed is not very fast. When I publish the results, I need to upload files many times to be successful, but this time the 0.972 version of the compressed package cannot be successfully uploaded to github, so please download the 0.97 version of the compressed package first)
After that I will say something about getting started with LzBot operation, in the form of a reply.
This article was published using google translation. I don't know if there are some sentences that are not very fluent or the meanings to be expressed are different. I am very sorry here, and language is one of the obstacles to communication.
These tools include, but are not limited to:
Office automation software (automatic operation of Excel, SAP, web pages)
Automated game software (giving the repetitive labor of online games to a virtual scripting robot)
Development of various other small programs (quickly develop various small programs that can solve problems in daily life)
Now that it has been updated to version 0.972, and has initially completed the planned functions, as well as the development of the English version, I will introduce this software in this new post.
10119
It uses a look and interface layout similar to VS.NET. The layout can be adjusted freely. It is divided into four main parts by default: command tree, log and integrated help, workspace, editor.
The command tree on the left can quickly browse the various functions supported by ThinBasic, and can quickly insert code into the editor, including various statements and commands, and even a document.
10120
Clicking a command can display the integrated help of this command, which allows the development process to be maintained within the integrated development environment without having to query the user manual, thereby improving development efficiency.
The workspace can open multiple projects, or execute files individually. LzBot provides a lot of convenience for project development, including automatic management of extended libraries and automatic copying of dependent files.
10122
LzBot also provides a project option editor, where you can more easily edit the version information (including automatic version overlay) and change the icon for the program.
Below the editor, there is also a Log pane where you can write code and use the TracePrint function to output debugging information here.
10123
In terms of code editing, the functions provided by LzRPA are also relatively complete, including keyword coloring, auto-completion, hover prompt and other functions.
10124
10125
My interest development team and I have used this editor to complete many project applications. At present, although it is not particularly perfect, it is stable enough.
I think that to attract enough users to a development environment, the first is stability and ease of use. Based on these two considerations, I have used ThinBasic as a back-end script engine because I have been paying attention to ThinBasic for some years. Updates are stable, and support for syntax and features is also very good (for ease of use, I have only filtered in the BASIC scripting language)
In terms of ease of use, I have made some improvements, such as integrating the help documentation directly into the IDE, changing various compilation preprocessing commands to be directly set by the user interface, and reorganizing the help documentation so that users only need to browse the commands Tree, find the required function, and then learn if, select, for, do, function and other statements to start programming. At present, my partners and I have launched some teaching videos (but explained in Chinese).
In addition, I have also extended some of the functionality of ThinBasic (or call it, within the extended range supported by ThinBasic, provided some new command libraries for ThinBasic), such as keyboard and mouse movement simulation, ported from FreeBasic Time library, extended window operations, extended Microsoft Office automation, extended web page automation (supports IE and Chrome), extended image text recognition, extended target window and process operations, etc.
In addition to these, I also tried to strengthen ThinBasic in terms of mechanism. Earlier, I tried to develop a shell program through thincore.dll to achieve multi-threading function, but this attempt failed. Later, I tried to pass multiple The process approach to achieve similar functions, fortunately this time I succeeded, and then I encapsulated the redis operation function into ThinBasic code, so it is very convenient to use LzBot to develop multi-process collaboration programs (the multi-thread function of other development tools). Thanks to this, it is very convenient to use LzBot to access the Redis database.
One of my wishes is to use software robots to simplify people's labor intensity at work. There are still many workers who need to sit in front of a computer and do a lot of repeated labor every day. These labors are often replaceable by robots, such as forms. Data entry, data transfer between multiple programs, etc.
When I'm doing similar work, I try to use LzBot to do it all automatically for me, so that I can spend my time on more creative tasks.
Compared to ThinBasic's existing development tools (ThinAir), LzBot does better in some aspects, but there are worse parts. I try to express the difference between the two objectively.
ThinAir is more focused on providing a complete toolchain for ThinBasic, and LzBot is more focused on its purpose, allowing more people to help themselves work through simpler learning using ThinBasic.
Because of this difference, LzBot has more considerations in terms of ease of use, but it is still insufficient in functional depth. For example, ThinAir provides the function of parsing the function list in the file, which LzBot does not have.
However, in development, LzBot is closer to VB. For example, TBMain is changed to Main. Some string functions do not require the use of $ at the end. Object aliases are created for the iDispatch type. The names of some functions are changed to VB or VBScript. Consistent, and added some new features, LzBot fits the usage habits of the target user as much as possible, and in the traditional ThinBasic development, it is more in line with the author's usage habits.
When LzBot uses the extension library, as long as the code of the extension library is added, the extension library will be automatically added to the project dependency list. When the EXE is generated, the code and files that the extension library depends on are automatically generated together to make this process. More simple.
At the same time, LzBot also extends the concept of extension libraries. Traditional ThinBasic can be an extension library. A piece of code and a DLL can also be used as extension libraries. This makes it easy for people who are good at different programming languages to develop extensions for ThinBasic instead of using PowerBasic as much as possible. Development extension.
Both LzBot and ThinAir have the concept of engineering, but ThinAir's project needs to be managed by the developer himself, and the files are referenced to each other. That's right. I also use C / C ++, C #, FreeBasic to develop and do the same.
However, this is not very friendly to novice programmers, so LzBot's project management simply assembles all files into a new file, and there is a unified entry point to make it easier for new users to get started. This is a Choosing the problem, my choice is to take care of new users.
LzBot has made a lot of simplifications. For example, generating an EXE does not need to face a complicated generator interface, but directly generates an EXE with the same name in the code directory. If it is a project, it is generated according to the path in the project option. Ask the user to save the file first, but ask the user where to save the program after generating the EXE, so it will be easier for novice users to use it.
Finally, to summarize the disadvantages of this version of LzBot:
The English version is not very mature, and some pop-up dialog boxes have not been translated, because there are pop-ups in many places. I am adding them to the multi-language configuration file one by one, and then helping Wendan translate it into the English version, which is a huge jobs.
There are some minor compatibility issues with the development of the ThinBasic original. In fact, I provided a solution. When the file extension uses tbs, the code is generated according to my improvement. When the file extension uses tbasic, the original development habits of ThinBasic are used Development.
Finally, the age of this development environment is still very low, only a few months, so the details are not good enough. For example, the cursor position is not displayed, the encoding does not support UTF8, there is no file parsing, and the function of listing function variables is not available. Automatically complete functions written by the user.
Of course, I also have a complete plan for the future direction of LzBot:
The first is the console system. I will use Redis and multiple processes to implement a new project type. This project type can manage all child processes in a unified data environment, and start, pause, and terminate the operation of a transaction at any time. And can feedback the running status of each task in the user interface. With this system, developers only need to complete specific function code, when this function is performed, how many times, and how many processes are performing the same task at the same time. How to coordinate and synchronize data between tasks is left to the framework.
The second is a new UI editor. As I said in another post, I want to provide users with a very simple user interface editor, preferably like VB, or even simpler (at least to achieve some effects (The interface is nice and simpler), this is a big project, so I planned for a few months and still haven't finalized the selection, maybe this is my most important task in 2020.
The last point is how to help the office staff. The richness of the ThinBasic and LzBot commands is far from enough. To help the people I want to help, I need to understand what these people need. In fact, I have investigated this matter several times. For years, office workers often use ERP systems such as Excel, web browsers (accessing web-based management systems), SAP, and miscellaneous management software. These softwares are developed using different technologies. I need to be able to implement these things. Stable and perfect operation simulation, and make the development of this process very simple, in order to achieve my goal, now that this goal is still far away, I will finally achieve it.
Finally, how do I download LzBot:
https://github.com/CN-xLeaves/LzRPA
Use Git's clone command to clone LzBot locally, or visit https://github.com/CN-xLeaves/LzRPA/releases to directly download the zip archive (yes, the main factor that prevents me from patronizing the ThinBasic forum often is the network, access The speed is not very fast. When I publish the results, I need to upload files many times to be successful, but this time the 0.972 version of the compressed package cannot be successfully uploaded to github, so please download the 0.97 version of the compressed package first)
After that I will say something about getting started with LzBot operation, in the form of a reply.
This article was published using google translation. I don't know if there are some sentences that are not very fluent or the meanings to be expressed are different. I am very sorry here, and language is one of the obstacles to communication.