How can I create a GUI program to launch Maintenance Tools?

Contributor
16May2009,18:56   #1
Panarchy's Avatar
Hi



Any ideas on how I could create the above mockup, for real?

I would like;

RAM - Display shows in log (bottom) - Open display system properties
Scheduled Tasks - Display shows in log - Open opens up the scheduled tasks control panel applet
Backup Directory - Display show which it will go to - Open opens it up in explorer
Check Raid - Checks if the Software RAID is healthy - Open opens up Disk Management

I thought of the idea, then I prtscn'd the XAMPP Control Panel for the mockup.

Please tell me if it is possible to do as shown in the mockup.

Thanks in advance,

Panarchy

Last edited by Panarchy; 16May2009 at 19:02..
Go4Expert Founder
16May2009,19:48   #2
shabbir's Avatar
Its very much possible and there are API to be doing this.

Opening Task manager can be done using just launching "taskmgr.exe"
Contributor
17May2009,05:32   #3
Panarchy's Avatar
Using the WinAPI?

Alright. Well I did some research yesterday, pretty sure this includes all;

Scheduled Tasks
http://msdn.microsoft.com/en-us/libr...01(VS.85).aspx

Disk Management
http://support.microsoft.com/kb/300415 (CLI)
http://msdn.microsoft.com/en-us/libr...86(VS.85).aspx
OCTL_DISK_PERFORMANCE:
http://msdn.microsoft.com/en-us/libr...83(VS.85).aspx

RAM
http://msdn.microsoft.com/en-us/libr...89(VS.85).aspx

My question is, how do I link all the above into a GUI program like the mockup I created before?

Thanks in advance for any more help with this,

Panarchy
Go4Expert Founder
17May2009,07:39   #4
shabbir's Avatar
What do you mean by linkup.

All you have to do is when button is clicked launch the needed thing.
Contributor
17May2009,07:40   #5
Panarchy's Avatar
Sorry, I still don't understand how to do that.

Please explain.

Thanks in advance,

Panarchy

PS: Once this is finished and working perfectly, I'll put it on SourceForge or the microsoft one... codeplex?
~ Б0ЯИ Τ0 С0δЭ ~
17May2009,08:40   #6
SaswatPadhi's Avatar
Quote:
Originally Posted by Panarchy View Post
Hi
Hi Panarchy,
--------------------------------------------------------------------------------------------------------------------------------------------
Quote:
Originally Posted by Panarchy View Post
RAM - Display shows in log (bottom) - Open display system properties
Code: c++
system("sysdm.cpl");
--------------------------------------------------------------------------------------------------------------------------------------------
Quote:
Originally Posted by Panarchy View Post
Scheduled Tasks - Display shows in log - Open opens up the scheduled tasks control panel applet
Code: c++
system("control schedtasks");
--------------------------------------------------------------------------------------------------------------------------------------------
Quote:
Originally Posted by Panarchy View Post
Backup Directory - Display show which it will go to - Open opens it up in explorer
Code: c++
system("start \"C:\\MyBackup\"");
(assuming your Backup dir is C:\MyBackup)
--------------------------------------------------------------------------------------------------------------------------------------------
Quote:
Originally Posted by Panarchy View Post
Check Raid - Checks if the Software RAID is healthy - Open opens up Disk Management
Code: c++
system("diskmgmt.msc");
--------------------------------------------------------------------------------------------------------------------------------------------
Quote:
Originally Posted by Panarchy View Post
Thanks in advance
My pleasure

Last edited by SaswatPadhi; 17May2009 at 08:45..
Contributor
17May2009,13:13   #7
Panarchy's Avatar
Thanks mate. However, here is what my current code looks like;

Code:
#include <windows.h>
#include <tchar.h>
#include <iostream>

#ifdef UNICODE
#define tcout wcout
#else
#define tcout cout
#endif

int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevious, LPSTR cmdline, int cmdshow) {

    STARTUPINFO si = {0};
    PROCESS_INFORMATION pi = {0};
    TCHAR lpCmdLine[MAX_PATH] = {0};
    ::ExpandEnvironmentStrings(_T("\"%ProgramFiles%\\Symantec\\LiveUpdate\\LUALL.exe\""),
                              lpCmdLine, MAX_PATH);

    std::tcout << _T("Command line : ") << lpCmdLine << std::endl;

    BOOL bRet = ::CreateProcess(NULL, lpCmdLine, NULL, NULL, FALSE,
                               CREATE_NO_WINDOW, NULL, NULL, &si, &pi);

    ShellExecute(NULL, TEXT("open"), TEXT("control"), TEXT("schedtasks\0"), NULL, SW_HIDE);
    ShellExecute(NULL, TEXT("open"), TEXT("control"), TEXT("sysdm.cpl"), NULL, SW_HIDE);
    ShellExecute(NULL, TEXT("open"), TEXT("diskmgmt.msc"), NULL, NULL, SW_HIDE);

    {
        if( reinterpret_cast<int>(ShellExecute(NULL, "explore", "\\\\panarchy\\share", NULL, NULL, SW_SHOWNORMAL)) <= 32)
            if( reinterpret_cast<int>(ShellExecute(NULL, "explore", "D:\\BackYouUp\\", NULL, NULL, SW_SHOWNORMAL)) <= 32)
            {
                ShellExecute(NULL, "explore", "C:\\Backups\\bac\\", NULL, NULL, SW_SHOWNORMAL);
            }
    }

    return 0;
}
Does the trick, however it could be much better. If I could programmically see if the partitions/drives are Healthy, then print whether or not it is within the textbox, that would save some time. Also, having the option to open Disk Management instead/as well as, would be very useful. Same goes for the others. For scheduled tasks, the last result field would be the one I'd be looking at. For System Properties, it would be RAM.

Would it be possible to implement the aforementioned code within a GUI program, like the one I first mentioned?

Even if you could just help me by getting the Open button working, I'd really appreciate it.

Thanks in advance,

Panarchy
Contributor
20May2009,05:52   #8
Panarchy's Avatar
So, if I could please have some help with getting this to work, I'd really appreciate it.

Thanks in advance,

Panarchy
Contributor
17Jun2009,07:09   #9
Panarchy's Avatar
Greetings,

I've worked out a ⅓ of the problem, to be specific, I've worked out the 'Open' button;

Code:
System::Diagnostics::Process::Start("diskmgmt.msc");
Still to work out;

- How to use System::Diagnostics::Process::Start with if & else command
- Programming the Display button

Please help me work those out!

Thanks in advance,

Panarchy
Contributor
21Sep2009,08:19   #10
Panarchy's Avatar
*bump