The Multi-Application Opener is a tool designed to simplify the process of managing and executing multiple files or programs. Initially built as a console-based application, it evolves into a feature-rich graphical program using wxWidgets, supporting custom file extensions for batch execution.
- Add Files: Enter file paths manually or through a command-line prompt to add them to a list.
- View Files: Display the current list of files.
- Remove Files: Remove specific files from the list by specifying their index.
- Open Files: Execute all files in the list using the system's execution command (e.g.,
std::system).
-
File Explorer for Adding Files:
- Browse the file system using a file picker to add files easily.
-
Custom File Extension:
- Use a
.mexefile to store and execute a batch of programs. - Automatically open programs listed in the
.mexefile, then exit the opener program.
- Use a
-
File List Creation and Editing:
- Save file lists as
.mexefiles. - Open and edit existing
.mexefiles (e.g., add, remove, or reorder items).
- Save file lists as
-
Graphical User Interface (GUI):
- Transition from a console-based program to a wxWidgets-based GUI.
- Features include buttons, file lists, and a menu for actions like saving/loading lists and styling.
-
Styling and Theming:
- Apply custom themes, icons, and styles for a polished user experience.
- Create a
.mexefile with the desired list of executable paths.- Example content:
C:\path\to\app1.exe C:\path\to\app2.exe
- Example content:
- Open it with the program to automatically execute the listed files.
- Core functionality: Add, view, remove, and open files.
- Test for cross-platform compatibility.
- Add native file picker for adding files.
- Introduce
.mexefile format for batch execution.
- Build a basic wxWidgets-based GUI.
- Implement buttons and menus for all actions.
- Add theming and icons for the GUI.
- Create detailed documentation.
- Package the application for distribution.
Contributions are welcome! Feel free to open issues or submit pull requests on GitHub.
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Add new feature" - Push to your branch and open a pull request:
git push origin feature-name
This project is licensed under the MIT License. See the LICENSE file for details.