Overclock.net banner

Need a small windows program made for you?

4K views 116 replies 21 participants last post by  kennyparker1337 
#1 ·
Dear Mods: Putting this here, instead of Programming, because this is meant for non-programmers.

I've been coding in C# which is a language used to develop Windows apps.
I've got bored and can't think of stuff to do that would be useful for me.

Here's the kicker!
You don't need to know anything about coding.
All you need is an idea.

So give me an idea and I will make it for you.
If I don't think your idea is possible I will let you know.

It might take me a day, or a week, up to a month depending on how large the request is and how many I get.
If the idea is already made, I don't care. I will still make MY version of it for you.
The simpler the idea, the quicker it will be made.

A "simple" idea would be one that doesn't require me to modify other processes (like trying to control another program than the one I create).

Obviously no ideas that involve anything illegal or hacking anything.
I would however still entertain the idea of a fake "virus" that is to say a program that acts like a virus but doesn't harm the PC.
An example of this would be a program that says "You Can't Close Me" and keeps moving itself around the screen when you go to close it. The user could simply end the process in TaskManager and it doesn't actually hurt anything. Stuff like that.


Any program I make will be open-source.


Update: All programs will now be listed under one link!
https://www.dropbox.com/sh/ve8p6p14z8c8kyh/AACUu-qHiUQK9hHbFJNlFzrHa?dl=0

This will always link to the latest uploads of all the programs I make.

Quote:
Active Programs
Ken's Download Helper (Beta) - A simple download manager.
Quote:
Inactive Programs
Runescape Calc - Compares items in runescape.
Quote:
Completed Programs
Aʟʟ ᴘʀᴏɢʀᴀᴍs ʀᴇǫᴜɪʀᴇ Wɪɴᴅᴏᴡs XP ᴀɴᴅ ᴜᴘ ᴜɴʟᴇss ᴏᴛʜᴇʀᴡɪsᴇ ɴᴏᴛᴇᴅ.
Quote:
Music Master
Status: Completed fully.

Description: Control iTunes and Windows volume while other apps are active (such as fullscreen games).
Quote:
Window Snapper
Status: Completed fully.

Description: Starts up and places designated programs at certain places on a specified screen.
Quote:
Customer Tracker
Status: Completed fully.

Description: Keep track of your customers! Add, Remove, Search, Save, and Load are all included in this package!
Quote:
Guess Me If You Can
Status: Completed fully.

Description: Auto generates a random customizable password every second.
Quote:
Rate My PC
Status: Completed fully.

Description: Uses Windows Experience Index (WEI) to display your system's score.
Quote:
Gate Master
Status: Completed fully.

Description: Creates/Deletes Windows firewall rules to control which IP address a program's traffic goes though.
Quote:
Defunct Programs
Quote:
Game Controller - Let's you send a single keyboard input, for a duration, to any program. (POSSIBLE / DIFFICULT)
-Requires hooking into Windows UI and emulating a virtual keyboard.
-Language is different than what I use.
-Most games disable virtual keyboards to prevent bot programs (I think, not sure).
-Information Gathered:code snippet MSDN
Quote:
Xbox 360 Controller Interface - Let's you control the Xbox 360 controller as if it was a mouse. (MAYBE POSSIBLE? / DIFFICULT)
-No built in code.
-Not much support.
-No experience on this matter.
 
See less See more
#2 ·
I have an odd one... Probably really hard to do as well, but I'll post it none the less.
tongue.gif


Would it be possible to make a window snap (CPUZ as an example) to a certain location (pixel x / pixel y)?

It's kinda hard to explain, but basically it would snap a program to the bottom left of the screen for example, with 10 pixels to the left, and 10 pixels from the bottom.
 
#3 ·
Quote:
Originally Posted by Ahnt View Post

I have an odd one... Probably really hard to do as well, but I'll post it none the less.
tongue.gif


Would it be possible to make a window snap (CPUZ as an example) to a certain location (pixel x / pixel y)?

It's kinda hard to explain, but basically it would snap a program to the bottom left of the screen for example, with 10 pixels to the left, and 10 pixels from the bottom.
Sounds like using the 'auto arrange icons' for the desktop, just with a window of an application.

I could use two things. First one might be a little hard, but it's okay. It's lowest priority. Could you make something like beantunes.exe - except that it can work with all games. I cannot control it in a few like Civ5... a little irritating. I cannot use the new Steam beta as my client always crashes.

Second one should be easy. I need something similar to an auto typer. It needs to press a key (x) and hold it for a second or so, then let it go. Then press the key again... etc. The reason why is the damn golden saucer on FF7. I would like to be able to get easy GP for the battle section, but the basketball game is annoying.

Let me know if you can do these. I honestly don't mind if you can't. I figured that I could let you test yourself with this if you wanted.
 
#4 ·
Quote:
Originally Posted by AcEsSalvation View Post

Sounds like using the 'auto arrange icons' for the desktop, just with a window of an application.
Not really. Like I said it's kinda hard to explain what I mean. Basically when you open a program (I'll use CPUZ for an example) it opens up centered in the main monitor. I'm wanting it to open up and snap automatically to a specified location.

In my case, snap to the second monitor and locate itself to the bottom left corner without having to manually drag it there.

Basically snap [insert program here] to monitor [x] and locate at x,x pixel.
 
#7 ·
Quote:
Originally Posted by Ahnt View Post

I have an odd one... Probably really hard to do as well, but I'll post it none the less.
tongue.gif


Would it be possible to make a window snap (CPUZ as an example) to a certain location (pixel x / pixel y)?

It's kinda hard to explain, but basically it would snap a program to the bottom left of the screen for example, with 10 pixels to the left, and 10 pixels from the bottom.
This can be done but it's not built in to the language. I would have to "steal" code from Windows to use it which is a bit difficult as it's like writing in another language.

I'll see what I can do.

Quote:
Originally Posted by AcEsSalvation View Post

Quote:
Originally Posted by Ahnt View Post

I have an odd one... Probably really hard to do as well, but I'll post it none the less.
tongue.gif


Would it be possible to make a window snap (CPUZ as an example) to a certain location (pixel x / pixel y)?

It's kinda hard to explain, but basically it would snap a program to the bottom left of the screen for example, with 10 pixels to the left, and 10 pixels from the bottom.
Sounds like using the 'auto arrange icons' for the desktop, just with a window of an application.

I could use two things. First one might be a little hard, but it's okay. It's lowest priority. Could you make something like beantunes.exe - except that it can work with all games. I cannot control it in a few like Civ5... a little irritating. I cannot use the new Steam beta as my client always crashes.

Second one should be easy. I need something similar to an auto typer. It needs to press a key (x) and hold it for a second or so, then let it go. Then press the key again... etc. The reason why is the damn golden saucer on FF7. I would like to be able to get easy GP for the battle section, but the basketball game is annoying.

Let me know if you can do these. I honestly don't mind if you can't. I figured that I could let you test yourself with this if you wanted.
Your first program's issue might be the same issue I'm running into on your 2nd request.
You said beantunes won't work on games.
I believe that is because the key signals it sends out is ignored by the game because the game uses a graphics API to read input signals from the keyboard instead of listening for Windows to send the signal.

Unfortunately C# has the same issue. It's built in Keyboard controller uses the Windows API which is ignored by any app (usually games) that don't use it.

Would be the same as the above request. Can be done but would require writing code in a different language.

Right now I have my program sending out keystrokes but I'm having difficulties in controlling how long the key stays pressed down.
I think your first request would be easier since it doesn't require prolonging the key press.

I think I'm about to head to bed but when I get back on the PC I will work on your first request.

As a side note, this program requires a driver to be installed. (Which I have tested myself and it works fine.)
 
#8 ·
Some games ti would work, as long as I'm not using a key that the game is using like Skyrim. Other games like Civ5 just won't work period. Like I said, it's fine if you can't do this. I don't mind using Alt+Tab to swap songs. The main reason why I hated doing that was my Skyrim crashed a lot. I now have my modpack stable, so that's not an issue anymore.

And I'm not sure if it would be easier about the key press, but you could make it press a button on a controller. I have a X360 controller that I can remap the buttons for.
 
#9 ·
I have an idea: I'd like to use a gamepad with Balder's gate 2 (the one you get from gog). Also something to make it work on a win 8 touch screen. Again this is the 15 or so old one so running windowed would work and I assume a sendkey wrapper hack thing is as fancy as would be required. Feel free to use a fancier method and...I guess it could be generic instead of bg2 specific.
 
#10 ·
I have an idea: I'd like to use a gamepad with Balder's gate 2 (the one you get from gog). Also something to make it work on a win 8 touch screen. Again this is the 15 or so old one so running windowed would work and I assume a sendkey wrapper hack thing is as fancy as would be required. Feel free to use a fancier method and...I guess it could be generic instead of bg2 specific.
Quote:
Originally Posted by AcEsSalvation View Post

Sounds like using the 'auto arrange icons' for the desktop, just with a window of an application.

I could use two things. First one might be a little hard, but it's okay. It's lowest priority. Could you make something like beantunes.exe - except that it can work with all games. I cannot control it in a few like Civ5... a little irritating. I cannot use the new Steam beta as my client always crashes.

Second one should be easy. I need something similar to an auto typer. It needs to press a key (x) and hold it for a second or so, then let it go. Then press the key again... etc. The reason why is the damn golden saucer on FF7. I would like to be able to get easy GP for the battle section, but the basketball game is annoying.

Let me know if you can do these. I honestly don't mind if you can't. I figured that I could let you test yourself with this if you wanted.
Quote:
Originally Posted by kennyparker1337 View Post

This can be done but it's not built in to the language. I would have to "steal" code from Windows to use it which is a bit difficult as it's like writing in another language.

I'll see what I can do.
Your first program's issue might be the same issue I'm running into on your 2nd request.
You said beantunes won't work on games.
I believe that is because the key signals it sends out is ignored by the game because the game uses a graphics API to read input signals from the keyboard instead of listening for Windows to send the signal.

Unfortunately C# has the same issue. It's built in Keyboard controller uses the Windows API which is ignored by any app (usually games) that don't use it.

Would be the same as the above request. Can be done but would require writing code in a different language.

Right now I have my program sending out keystrokes but I'm having difficulties in controlling how long the key stays pressed down.
I think your first request would be easier since it doesn't require prolonging the key press.

I think I'm about to head to bed but when I get back on the PC I will work on your first request.

As a side note, this program requires a driver to be installed. (Which I have tested myself and it works fine.)
For what it's worth I used to do something similar to what you're describing with Morrowind using AutoHotkey. I wrote a little checker loop that would check and make sure morrowind was running, if so then make sure the window had focus (and give it focus if it didn't) and only then do a sendkey to that window and that window only. It was really simple, just send the "quick save" key every five minutes (seems like I lost hours of experience on a fairly regular basis due to game or windows crashes or whatever).

I think the same thing could be done with Windows Script Host in VBScrit or JavaScript (my windows programming experience only goes back to 2006 or so so that's all I know).

Autohotkey could work for your FF7 task. There's a huge community library of scripts I'm sure holding it for a second or two at a time is more than possible. If you do go authotkey having a multi-monitor setup is helpful for debugging (one screen for the game, key outputs on the second). I didn't know any game had a built-in way of blocking raw sendkeys calls like that. I suppose it's possible as an anti-cheating or something.
 
#11 ·
OK guys I'm going to put updates on the first post.
Mostly it will just list what programs I'm working on and their difficulty (for me).

So far all the requests have asked to modify a process that isn't created by me, which requires "borrowing" code from Windows which is written in a different language. So while they can be done, I have to learn a new language which takes a while.

A "simple" program would not require me to modify something I don't personally create.

Thanks for your suggestions! I love a challenge!
thumb.gif
 
#13 ·
FYI, you can do window snapping easily with shell hooks.

Here's the source code for an application I wrote to fix some bugs with the new Windows task manager, which uses the same hooking technique:

ModernTaskManagerUI.zip 2393k .zip file


It won't be easy in C#, but you can write the nitty gritty and C and call into it from C#.

The hook you're after is WH_SHELL and the notification you're after is HSHELL_WINDOWCREATED. The wParam contains the HWND that you can use to call SetWindowPos on.

For more learning resources, Oopsie (also written by me) contains various other hooking techniques and extensive use of C# language features. Source is available in this thread: http://www.overclock.net/t/1480764/oopsie-its-a-program-that-reopens-folders-or-programs-with-customizable-keyboard-shortcuts/0_20

I'm happy to get you started with the kernel (i.e. just the real basics) of the window snapping idea if you like.
 

Attachments

#14 ·
Quote:
Originally Posted by Ahnt View Post

Quote:
Originally Posted by AcEsSalvation View Post

Sounds like using the 'auto arrange icons' for the desktop, just with a window of an application.
Not really. Like I said it's kinda hard to explain what I mean. Basically when you open a program (I'll use CPUZ for an example) it opens up centered in the main monitor. I'm wanting it to open up and snap automatically to a specified location.

In my case, snap to the second monitor and locate itself to the bottom left corner without having to manually drag it there.

Basically snap [insert program here] to monitor [x] and locate at x,x pixel.
This is easier than I thought it would be.
I was falling asleep and thought you wanted to snap Icons, not windows.

I'll be working on yours next as it seems quite a bit easier than emulating a virtual keyboard.
 
#16 ·
Quote:
Originally Posted by tompsonn View Post

FYI, you can do window snapping easily with shell hooks.

Here's the source code for an application I wrote to fix some bugs with the new Windows task manager, which uses the same hooking technique:

ModernTaskManagerUI.zip 2393k .zip file


It won't be easy in C#, but you can write the nitty gritty and C and call into it from C#.

The hook you're after is WH_SHELL and the notification you're after is HSHELL_WINDOWCREATED. The wParam contains the HWND that you can use to call SetWindowPos on.

For more learning resources, Oopsie (also written by me) contains various other hooking techniques and extensive use of C# language features. Source is available in this thread: http://www.overclock.net/t/1480764/oopsie-its-a-program-that-reopens-folders-or-programs-with-customizable-keyboard-shortcuts/0_20

I'm happy to get you started with the kernel (i.e. just the real basics) of the window snapping idea if you like.
Thanks for that and cool program!

I used someone else opensource keyboard hooks for the iTunes Controller but I'm going to do Window Snapper without hooks.
Instead of listening to the user's UI I will just provide a way for the user to start and control external apps' location using my app.

I just have no experience in hooking and I can build this program without it. So I'd rather not bang my head against a wall trying to figure it out.
 
#17 ·
How about a program that combines Logitech Gaming Software and Corsair Gaming Software?
 
#18 ·
Quote:
Originally Posted by kennyparker1337 View Post

Thanks for that and cool program!

I used someone else opensource keyboard hooks for the iTunes Controller but I'm going to do Window Snapper without hooks.
Instead of listening to the user's UI I will just provide a way for the user to start and control external apps' location using my app.

I just have no experience in hooking and I can build this program without it. So I'd rather not bang my head against a wall trying to figure it out.
How about I build one with hooking and see what people like better?

(Just kidding)
tongue.gif


--

For the game controller you'll need a virtual keyboard device, or at the very least a keyboard filter driver running in kernel-mode. Then have a user-mode program talk to the driver and send it commands, which the driver then processes into input to send up the driver stack. This should bypass any sort of thing that the game is doing to block things like SendKeys (as the input looks like it comes from a real keyboard - unfortunately virtual keyboard devices and filters drivers are not simple, and you're running in the kernel so you better be careful!).
 
#19 ·
Quote:
Originally Posted by tompsonn View Post

Quote:
Originally Posted by kennyparker1337 View Post

Thanks for that and cool program!

I used someone else opensource keyboard hooks for the iTunes Controller but I'm going to do Window Snapper without hooks.
Instead of listening to the user's UI I will just provide a way for the user to start and control external apps' location using my app.

I just have no experience in hooking and I can build this program without it. So I'd rather not bang my head against a wall trying to figure it out.
How about I build one with hooking and see what people like better?

(Just kidding)
tongue.gif


--

For the game controller you'll need a virtual keyboard device, or at the very least a keyboard filter driver running in kernel-mode. Then have a user-mode program talk to the driver and send it commands, which the driver then processes into input to send up the driver stack. This should bypass any sort of thing that the game is doing to block things like SendKeys (as the input looks like it comes from a real keyboard - unfortunately virtual keyboard devices and filters drivers are not simple, and you're running in the kernel so you better be careful!).
IF you built your own version, at the very least I would expect you say this to everyone who used it (including me):


Probably something like this: http://www.codeproject.com/Articles/194729/Keyboard-Hooking-In-Kernel

The problem is that anything low-level like the kernel requires unmanaged code in another language and my expertise is very limited in that area. I would need a lot more time to study how to program that.

This WinAPI stuff is already coma inducing.
tongue.gif

Quote:
Originally Posted by Speedster159 View Post

How about a program that combines Logitech Gaming Software and Corsair Gaming Software?
Are you talking about joining two separate programs into one?
Don't think that is possible (without rewriting the programs from the ground up).
 
#20 ·
Quote:
Originally Posted by kennyparker1337 View Post

IF you built your own version, at the very least I would expect you say this to everyone who used it (including me):


Probably something like this: http://www.codeproject.com/Articles/194729/Keyboard-Hooking-In-Kernel

The problem is that anything low-level like the kernel requires unmanaged code in another language and my expertise is very limited in that area. I would need a lot more time to study how to program that.

This WinAPI stuff is already coma inducing.
tongue.gif

Are you talking about joining two separate programs into one?
Don't think that is possible (without rewriting the programs from the ground up).
Indeed.
 
#21 ·
Quote:
Originally Posted by Speedster159 View Post

Indeed.
Yeah I hate shooting down an idea but it's kinda of like asking me to join two stranger's houses together without their permission.
Quote:
Originally Posted by Ahnt View Post

Nice, thanks.
thumb.gif
Finally done.
Was fun making this one and didn't hurt my head nearly as much with the "Windows code" as much as the iTunes controller did.

I'm also glad that it has almost no limitations unlike the iTunes controller did.

Let me know if it works for you.

 
#23 ·
Well I was hoping there would be more replies.

puss-in-boots-sad-eyes.jpg
 
#24 ·
Not really a request as much of a question. How did you go about learning C# and how long did it take to become relatively fluent? I say this as I'd like to enter the world of programming, but I feel as if the ideas I have are so far out of the scope of my abilities that it'd take a long "grind" before I'd feel any notable sense of accomplishment. The simple "Hello World" things feel useless to me and I'd enjoy it if someone broke down a larger program into sections and explained each part and how they interact with/influence each other to achieve the desired results. Most tutorials I see are "Here is this function/method, and here is a small example" but I never actually get to see those small examples become actual pieces to a larger puzzle. Sorry for the long rant.
tongue.gif
I'm just starting my CS major so I suppose these would come in time along with those courses, but I'm interested in becoming fluent in at least one language beforeI enter my real programming courses, that way it's not so much of a stress factor as I work full-time.
redface.gif


Actually, I have a request. I've been wanting to make a ticket system that would allow me to track customers that I've seen.
The program would ask for information such as:
-Customer Name
-Customer Address
-Customer Phone Number
-Date seen
-Work Done (Computer Repair/Virus Removal etc)
-Cost to Customer
-Time required to complete request (This information would be used to calculate my average pay-rate per job by dividing the static cost to the time required to complete the task)

This information would then be entered into a database to become a searchable archive for later use for repeat customer tracking and possible warranty of services use (Work/Customer/Date Performed verification in order to keep track of valid/invalid warranties).

Just one of the many programs I'd have planned for use in my daily life as a college student who repairs computers for side money.
thumb.gif
 
#25 ·
Quote:
Originally Posted by Owari View Post

Not really a request as much of a question. How did you go about learning C# and how long did it take to become relatively fluent? I say this as I'd like to enter the world of programming, but I feel as if the ideas I have are so far out of the scope of my abilities that it'd take a long "grind" before I'd feel any notable sense of accomplishment. The simple "Hello World" things feel useless to me and I'd enjoy it if someone broke down a larger program into sections and explained each part and how they interact with/influence each other to achieve the desired results. Most tutorials I see are "Here is this function/method, and here is a small example" but I never actually get to see those small examples become actual pieces to a larger puzzle. Sorry for the long rant.
tongue.gif
I'm just starting my CS major so I suppose these would come in time along with those courses, but I'm interested in becoming fluent in at least one language beforeI enter my real programming courses, that way it's not so much of a stress factor as I work full-time.
redface.gif
As much as I hate people saying this, I'll say it cause it's true. I learned C# on my own without any classes.
However, this isn't a fair statement cause I had plenty of courses in Visual Basic, C, C++, and Java.
So I had a lot of knowledge on how to program, just not in C# syntax.

As you'll come to find out in your first programming logic course is that "syntax" is very easy to learn on your own.
Programming logic is difficult to learn but it will translate to any language syntax.

The extremely basic example is making a new variable to hold data.
Programming logic is knowing that you need that variable and what type it needs to be (such as a Boolean for an off/on decision).
Then you just need to figure out how to make that variable, which is easy to do in any language.
It's as simple as searching Google for "How do I declare a Boolean in {programming language}?"

I learned C# on that basic prinicple.
I started out searching Google a hundred times a day, until the basic programming functions were second nature to me.
Then it was just a matter of making a couple two Google searches on how to accomplish a more advanced task in C#.

C#, to me personally, is just a much nicer Visual Basic.
I don't know why any teacher would teach students Visual Basic first these days.

How To Write In C#: http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx
How To Properly Write In C#: http://msdn.microsoft.com/en-us/library/ff926074.aspx

Step By Step Guide To C#: http://comsci.liu.edu/~vasilaky/dotnet/Csharpbook.htm


Quote:
Actually, I have a request. I've been wanting to make a ticket system that would allow me to track customers that I've seen.
The program would ask for information such as:
-Customer Name
-Customer Address
-Customer Phone Number
-Date seen
-Work Done (Computer Repair/Virus Removal etc)
-Cost to Customer
-Time required to complete request (This information would be used to calculate my average pay-rate per job by dividing the static cost to the time required to complete the task)

This information would then be entered into a database to become a searchable archive for later use for repeat customer tracking and possible warranty of services use (Work/Customer/Date Performed verification in order to keep track of valid/invalid warranties).

Just one of the many programs I'd have planned for use in my daily life as a college student who repairs computers for side money.
thumb.gif
Sounds fun and I'll get to work on it.
 
#26 ·
I have one request but I'm not sure if it's possible or even makes sense.
If we go fullscreen in some games (Skyrim, Metro 2033), we cannot control the sound from our keyboards - reason i dont know. So a program which could make it happen. Something like a trainer but instead of interacting with game memory it would change the sound level of windows.
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top