## DEV Community 👩‍💻👨‍💻

lia

Posted on • Updated on

# How to schedule any file type to open at computer startup

So, how about schedule certain programs or files to open first thing when your computer boots up? Or maybe you want them to open at a specific time of the day?

Maybe you work remotely and need certain programs, folders or files to open when you start your computer while you can do your morning routine. If so, then this post will feature a program which will (hopefully) help you with that!

That was my problem! I did not like having to use Windows startup feature because it did not let me open programs at specific days. Even the Windows Task Scheduler was not simple enough and did not let me schedule programs at certain days and at startup in the same configuration. I hated having to close all my work programs manually on weekends.

So, I developed a command line interface (CLI) to do that exact task: schedule programs, folders or files (anything really) at startup but also at specific days.

Now, I'm a changed person and can finally have my work programs open at startup only on week days and forget about work completely (without reminders) on weekends.

## Installing

You will need Python installed. You can do that here.

The CLI can be downloaded from here and the GitHub repository can be found here.

pip install progscheduler


To check if the program was successfully installed, you can run the following command in the console:

progscheduler -h


## How to

For anymore information please have a look at this file.

### Startup feature

#### Windows users

This program does not actually have the ability to start running automatically by itself when the computer boots up yet, so you have to copy the contents of this file right here (available on the GitHub repository) and paste them to a notepad on your computer. Don't forget to save the file with the .bat extension.
The purpose of the file is run the progscheduler program. So this needs to be in the following folder path:

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup


What this step does is to make Windows run all the files in this folder when it boots up (at startup).

#### Linux users

I don't own a Linux environment so this section will have to wait until I make sure I know how to explain this.

After this step, you should be able to boot up your computer and the program will run automatically.

### Usage

For now, when the computer boots up, the program will not do anything. This is because we did not schedule anything yet.
To do this, you need to open a command prompt to start using the CLI.

#### Commands

When configuring you will need the following information about a program, folder or file:

• path to program, folder or file;
• desired name to describe this program, folder or file;
• days to open;
• time of the day to open; ##### Path The path can be the absolute path of an executable, a folder, a file, etc. If it's a program or a file, the path must include the extension.

IMPORTANT
If you want an executable to be schedule, some programs will not work with the original file path and it needs to be the path for a shortcut of that executable.
To use a shortcut, the extension of that file must be .lnk.

For instance, a path for a shortcut executable:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk


or a path for a folder:

C:\Users\<username>\Desktop\folder to open


or a path for a file,

C:\Users\<username>\Desktop\text file to open.txt


##### Alias

The alias is a name which will describe the file to be scheduled and it will be used for update the scheduling if needed in the future.

##### Days

The days will be the days in which you want something to be opened. It can be:

• some specific days: monday, wednesday
• everyday: monday, tuesday, wednesday, thursday, friday, saturday, sunday
• weekdays: monday, tuesday, wednesday, thursday, friday
• weekends: saturday, sunday

##### Time

The time can be at startup, in this case you don't have to specify anything because this is the default. Can also be a specific time of the day: 10:27.

The commands are available in the README.md file in the GitHub repository.

#### Create/Configure a schedule

If you want to schedule Paint to open only at week days at startup then the following command should work:

progscheduler -a paint -e "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" -d weekdays


On the other hand, if you want to schedule Paint to open only on weekends and at 15:05, the following command should also work:

progscheduler -a paint -e "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" -d weekends -t "15:05"


Now, if you want to change Paint to open only on Mondays at startup then:

progscheduler -a paint -d monday -t "at startup"


Note the alias is required when creating or modifying a schedule. An alias needs to be unique, because if not, it can configure the wrong configuration or create a non-sense configuration.

#### Scheduling in action

After we added a schedule and the next time the computer boots up, the program will run automatically and Paint will be opened.
The following image shows that a command prompt will be opened at startup and start running all schedules created.

If a specific time has been set, then the image does not change much, it will be running and when the specified time comes, the program will be opened and showed and this command prompt.

Upon closing this command prompt window, the program will not run anymore schedules so only close it when you know there's no files to be opened.
If closed, the next time the program will start running is:

• if the computer boots up;
• if you run manually the program-scheduler.bat;
• if you run the command 'progscheduler' in a command prompt.

### Other features

#### Delete a configuration

A configuration can also be deleted by the alias by simply typing in the command prompt:

progscheduler -del paint


## Future features

Currently the program only opens any type of file, in the future, other options can be added by user request.

## Conclusion

I'm fully available to implement new features, fixing bugs and improve anything. Just comment here or open an issue in the GitHub repository.
Any suggestions I'm more than glad to consider them.
Any feedback is really appreciated.

For anymore information please have a look at this file.

The CLI can be downloaded from here and the GitHub repository can be found here.

Thanks for reading :D

## 🌚 Friends don't let friends browse without dark mode.

Sorry, it's true.