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

Panarchy's Avatar, Join Date: Nov 2007
Contributor
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..
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Its very much possible and there are API to be doing this.

Opening Task manager can be done using just launching "taskmgr.exe"
0
Panarchy's Avatar, Join Date: Nov 2007
Contributor
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
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
What do you mean by linkup.

All you have to do is when button is clicked launch the needed thing.
0
Panarchy's Avatar, Join Date: Nov 2007
Contributor
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
SaswatPadhi's Avatar, Join Date: May 2009
~ Б0ЯИ Τ0 С0δЭ ~
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..
0
Panarchy's Avatar, Join Date: Nov 2007
Contributor
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
0
Panarchy's Avatar, Join Date: Nov 2007
Contributor
So, if I could please have some help with getting this to work, I'd really appreciate it.

Thanks in advance,

Panarchy
0
Panarchy's Avatar, Join Date: Nov 2007
Contributor
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
0
Panarchy's Avatar, Join Date: Nov 2007
Contributor
*bump