Hello Everybody! first of all,i`m complete noob at software developing.I don`t even know what language i should write the program that i need.Basically, i want to create program that has sort of "sand box" environment for windows. The purpose of the program is to make the human who currently logged in the OS, stay focused on the work.In other words,it will only allow student do stuff that is related to the assignment.At the beginning, mentor will just modify what programs, can student use, and what web-sites he/she can use.

Dani AI

Generated

As suggested, stop and design before coding. Decide the enforcement model first: a user‑mode agent (Windows Service) that enforces policies and a separate mentor UI to edit those policies is the simplest split. Define a clear policy model (whitelist vs blacklist, time windows, allowed URLs, allowed executable hashes). Whitelisting is far more effective than trying to enumerate everything to block.

For language and technical approach: for a beginner, C#/.NET + WPF (or WinForms) is the fastest way to build the mentor UI and a Windows Service agent. C# can call Win32 APIs (P/Invoke) when you need lower‑level functions. If you need kernel‑level process creation hooks or robust packet filtering you will need C++ and the Windows Driver Kit (WDK) — that path requires driver signing and advanced testing. For network rules, prototypes can use a local proxy or hosts file edits (easy, but bypassable); production-grade filtering uses Windows Filtering Platform (WFP) or platform features like AppLocker/Group Policy where available.

Start small and iterate. Suggested first milestones:

  • Write a short spec: allowed executables (by full path or hash), allowed domains, scheduling rules.
  • Build the mentor UI that edits policies saved in JSON.
  • Implement an agent/service that runs at boot and, at first, only logs process starts and network attempts (do not kill yet).
  • Detect process creation via WMI event queries or periodic process enumeration; apply policy changes based on the schedule.
  • Move from logging to gentle enforcement (foreground notification + blocking) before hard kills.

A tiny pseudocode prototype for the agent loop:

loadPolicy();
while (running) {
  events = pollProcessStarts();   // or subscribe WMI events
  foreach (e in events) {
    if (!policy.allows(e.exe, currentTime)) logViolation(e);
    else allow(e);
  }
  sleep(shortInterval);
}

Test everything in a VM or separate account to avoid locking yourself out. Plan secure uninstall, require mentor authentication to change policies, and document failure modes before adding driver‑level or network hooks.

Recommended Answers

All 6 Replies

...maybe this should be in another forum?

as i said before, i complete noob, and i really don`t know how to start to implement this,i`m currently taking some C++ classes so i thought that could write this program in C++,that`s why i posted in this section.

All programs start with a clearly defined concept and clearly defined design. Do you have a clearly defined process for keeping someone on task?

All programs start with a clearly defined concept and clearly defined design. Do you have a clearly defined process for keeping someone on task?

What do you mean by process?Is it some sort of pseudocode or u meant design of program?if u meant design i had in mind that it needs to have sort of firewall,that will block any other programs/pages that weren`t allowed by mentor.I also though about a scheduler,which will allow student to use particular programs on certain days of week.

What do you mean by process?Is it some sort of pseudocode or u meant design of program?

Design.

if u meant design i had in mind that it needs to have sort of firewall,that will block any other programs/pages that weren`t allowed by mentor.I also though about a scheduler,which will allow student to use particular programs on certain days of week.

What kind of firewall? Do you know how to make one?
What kind of scheduler? Do you know how they work?

And I always wonder what countries teach that in English sentences are all run together. Don't they teach that after ?.,! and so on there is always a space? It's used to make text readable.

And u is not a word. It is spelled Y-O-U. Please...

Design.


What kind of firewall? Do you know how to make one?
What kind of scheduler? Do you know how they work?

And I always wonder what countries teach that in English sentences are all run together. Don't they teach that after ?.,! and so on there is always a space? It's used to make text readable.

And u is not a word. It is spelled Y-O-U. Please...

I`m really sorry for my English. I do understand that i sound really dumb,but i don`t think there`s a lot of types of firewalls. What i meant is not the typical firewall such as "Zone Alarm" but the basic meaning of firewall program(designed to block unauthorized access while permitting authorized communications.). In this case, authorized communications will be programs that mentor/teacher/parent has allowed to use in the beginning for the particular task.For example, if the student has math homework, it will only allow student to use programs such as Matlab, browser to get the assignment and MS Word to write the answers. No other website except online math homework will be allowed to use during this assignment.
Scheduler in this case will help parent/teacher to schedule, which applications student/children can use during certain days.For example, today`s Monday. There are 3 assignments for this week:math(due Friday),art(due Thursday) and physics(due Wednesday) .Mentor/teacher/parent schedule the program to allow student do the physics first(for the first 2 days),then art(starting from Tuesday to Thursday), and math (from Wednesday to Thursday).So this will help student help stay focused on the task,that has the highest priority and help student manage time successfully.

So, this is what i have in mind. Now comes the hardest part, i really don`t know where to start.I do understand what i have in mind,but i have never programmed
any firewall or scheduler in my life.
So here`s my questions:
1.What language should i implement this program in ?
2.What resource would you recommend to start learning and gaining knowledge about how to design that sort of stuff?
3.What would you suggest me to start with?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.