|
I'm using CreateProcess() to create a new process for running a batch file. However the batch file contains command line to run another batch file. I would like to hide all the DOS window since it's the backend processing.
I have successfully made the DOS window for the first batch file hidden since I use CreateProcess() and set the attribute wShowWindow of STARTUPINFO to SW_HIDE. However, the DOS window for the second batch file (which is called to run within the first batch file) is not hidden.
How can I make the DOS window for the second batch file hidden as well?
Thank you very much and best regards.
|
|
|
|
|
I'm not sure if you can.
I tried this a while back in a console app. Because the application wasnt started via CreateProcess, I couldnt hide the console window.
Maybe you could use a multiline edit control in a dialog to simulate the 1st batch file in your application and use that to call the second batch file using CreateProcess. From there you know how to hide the console window.
Perhaps someone else knows if this is possible. As far as I know its not.
Let me know if you figure this one out!
Cheers!
Frank
|
|
|
|
|
I want to make a program, with witch I can mount and dismount a drive. That means: I want to give driveletters to each partition. Have anybody a full example, how to do that?
- first, we have to open a new ntmssession
- then we must get the guid of the partition
- get guide of driveletter??
- mount the partition...
please help me!!!!
thx
|
|
|
|
|
How can I create a transparent CRichEditView, so that graphical Objects like lines, Bitmaps, etc. get visible? At present, the objects are drawn, but immediatelly overwritten by the text.
|
|
|
|
|
How can I create a transparent CRichEditView, so that graphical Objects like lines, Bitmaps, etc. get visible? At present, the objects are drawn, but immediatelly overwritten by the text.
|
|
|
|
|
Hi Developer.
I have two questions.
First...
I want to get scrollbar handle to the Webbrowser.
But i have not any method.
Anybody knows that?.
Second...
I develop webbrowser using CHtmlView.
I want to change cursor in my browser and change the mousemove event.
But It is not correct solution.
Because the cursor is flickering.
Thanks in advance.
dooly
|
|
|
|
|
Hi gurus,
i have one dialogbox. it contains three listboxes,
1. I want to change items of one listbox contents depend on the
selection of item in another List box.
2. for this purpose i need to handle OnSelChange() function.
3. How can add this OnSelChange() function to Dialog box class.
thanks in advance,
- Koteswara Rao
|
|
|
|
|
Good Day!
In Visual Studio, the ClassWizard provides a tab for message handlers that creates the necessary function declaration and skeleton of implementation.
HTH.
|
|
|
|
|
I think I understand what you want to do...try subclassing the dialog listbox controls.
First derive a new class for each of the three listboxes from CListBox.
CMyListBox1
CMyListBox2
CMyListBox3
Then, in your dialog's main header file (mydlg.h, or whatever) change the default from:
CListBox m_ListBox1;
CListBox m_ListBox2;
CListBox m_ListBox3;
to:
CMyListBox1 m_ListBox1;
CMyListBox2 m_ListBox2;
CMyListBox3 m_ListBox3;
Don't forget to #include the CMyListBox(x).h files in your code.
Then, from your dialog's OnInitDialog function, subclass the controls using this code:
VERIFY(m_ListBox1.SubclassDlgItem(IDC_LISTBOX1, this));
VERIFY(m_ListBox2.SubclassDlgItem(IDC_LISTBOX2, this));
VERIFY(m_ListBox3.SubclassDlgItem(IDC_LISTBOX3, this));
Finally, then you can handle the OnSelChange event in your CListBox derived classes. So, you really don't add the function to the dialog class, you make it so you can handle the function from within that class.
Good Luck,
Frank
|
|
|
|
|
How can I spy for another application from my application ? I mean read what is inside its listboxes , emulate button presses and mousemovements ?
Can I do this in windows 2000 ?
|
|
|
|
|
Hi all,
is it possible to have language specific dll's only with the resources in it, like dialogs, menus and stringtable. But the dialog classes for these dialogs in the main application?
Because i want to load the dll at runtime to have the language the user specified as interface language. That means, differnt languages for the dialogs but only one dialog class.
TIA, chris
|
|
|
|
|
Yes, this works easy using MFC, and you need to do a little more work with regular Win32 programming.
Use AfxSetResourceHandle() with MFC, use the handle to the loaded resource DLL in the regular Win32 dialog calls.
|
|
|
|
|
HI,
I want to access to Http header data in IE COM..
There is OnDocumentComplete Method...But I can't find
any parameter gives me the exact information..
Nor can I find other interface available..
Any suggestion will be appreciated..
Thanks for reading..
Regardz
-Ray
|
|
|
|
|
I am a musician who is trying to code an app for a project.
I basically need to know how I can take a set of data integers saved in a file of some extension <.txt or whatever> that any user like myself can edit and save using notepad or such, and subsequently utilise these in my program.
By way of explanation, the app is desired to generate scorefile data for use within a soft synth app <csound> and the scorefiles usually take the form of long screeds of largely repeated data values which are coded manually- holding back the popularlity of the software no end!!!
If a set of <eg>pitch values could be saved in a file <delimited as="" reqd=""> then these values could be called by an app to gen the score using them as a template.
I appreciate this is a fairly non-technical <and probably="" insultingly="" straightforward=""> query, but it is becoming a bit of a stumbling block at my end I would really appreciate a hand.
I thank you for your time.
|
|
|
|
|
If I understand your question correctly :
1) you have files with a bunch of integers in them
2) you want to read these integers into an array
3) (possibly) manipulate the integers
4) (possibly) write the integers out to file again
One possible solution :
At the top of your CPP file :
#define MAX_RECORDS 1000 // max number of data integers
int array[MAX_RECORDS];
int numRecords;
To bring up a file open dialog and read in the data :
CFileDialog ifile(TRUE,"txt",NULL,OFN_HIDEREADONLY,
"text files|*.txt|all files|*.*||");
int result = ifile.DoModal();
if (result == IDOK)
{
CString info;
info = ifile.GetPathName();
ifstream infile;
infile.open(info);
numRecords = 0;
while (!infile.eof())
{
if (numRecords == MAX_RECORDS) break;
infile >> array[numRecords];
numRecords++;
}
if (infile.eof()) numRecords--;
infile.close();
}
to bring up a file save dialog and write the
data integers to file :
CFileDialog ofile(FALSE,"txt",NULL,OFN_OVERWRITEPROMPT,
"text files|*.txt|all files|*.*||");
int result = ofile.DoModal();
if (result == IDOK)
{
CString info;
info = ofile.GetPathName();
ofstream outfile;
outfile.open(info);
for (int i=0; i<numRecords; i++)
outfile << array[i] << "\n";
outfile.close();
}
|
|
|
|
|
forgot 1 thing ...
at the top of the CPP you also need to add the line :
#include <fstream.h>
|
|
|
|
|
Hello!
Is it possible to add a minimize box to a property sheet?
(and if it is, how?)
Thanks!
/Mathias
|
|
|
|
|
You can...
In your CPropertySheet derived class add the following to the constructor:
m_psh.dwFlags |= PSH_USEHICON;
m_psh.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
This will add the icon for the "System Menu".
Then, Add a message handler function for "OnCreate", and add this:
ModifyStyle(0, WS_MINIMIZEBOX|WS_SYSMENU);
This will add the "Minimize" button to the Non-Client area of the dialog. If you don't want "Maximize". You can add the following to the "OnInitDialog" function in your CPropertySheet class:
CMenu *pSysMenu = GetSystemMenu(FALSE);
ASSERT(pSysMenu != NULL);
VERIFY(pSysMenu->RemoveMenu(SC_MAXIMIZE, MF_BYCOMMAND));
I've done this in a project, and it works.
Good Luck,
Frank
|
|
|
|
|
I have a COM object. It is represented by a CAsyncSocket class which is responsible for listening , and this class holds a list of other CAsyncSocket objets ,
which may often be deleted or created. When I initially add sockets to this list
they are created succesfully , but if I delete one of the sockets, and then *Create* a new one - I get "Debug
assertion failed" File:afxwin1.inl Line:19. On that line is AfxInstanceHadle check up , in my case it's null. How can I handle it? Can't get it. One Create call is successfull , and another ones aren't. I read somewhere that there may be a kinda dead socket hadle hanging , but I am not sure ...
|
|
|
|
|
Hai,
I want to write a dial up program in vc++ for ASDL modem
what all we need to take care for writing the dial up program and i need to check all the errors in dial up program
kindly help me
Regards
krithi
|
|
|
|
|
Krithi,
Our company, Dundas Software, offers a free and pretty comprehensive C++ RAS Class that makes handling dial-up functions quite a bit easier. I encourage you to check it out and see if it will help you.
David Cunningham
Dundas Software
|
|
|
|
|
I am developing an install program that have to be capable to restart the computer. Cases that requre such threatment are when you hit file collision, i.e. the file that you are trying to copy, exists and is occupied by another program.
So you need to put a line in WINSTART.BAT to delete the old file and replace it with the newer one.
Following are two different functions: Reboot and ColdBoot.
As their name points to they are quite different. The first one Reboots the machine (but didn't work) and the second one turn the computer off (crude and unprofessional).
Why doesn't Reboot function work ?
/*
Function: Reboot
Purpose: Turn off the computer.
Parameters: bForce (if TRUE it doesn't close any window)
Return: TRUE if successful ?
Remarks: This function is somehow spooky.
*/
BOOL Reboot(BOOL bForce)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
char szBuf[100];
int x = MessageBox(GetFocus(), "This application closes all running "
"applications and logs you off of the system.\n"
"Do you wish to continue?", "Exit Windows", MB_YESNO);
if (x == IDNO) return FALSE;
/*
Get a token for this process.
*/
if (!(GetVersion() & WIN32S))
{
#ifdef _DEBUG
OutputDebugString("Setting token.\n");
#endif
/*
Running on NT so need to change privileges.
*/
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
wsprintf(szBuf, "OpenProcessToken Error #%d", GetLastError ());
MessageBox(GetFocus(), szBuf, NULL, MB_OK);
}
/*
Get the LUID for shutdown privilege.
*/
LookupPrivilegeValue(NULL, _T("SeShutdownPrivilege"), &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // One privilege to set.
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
/*
Get shutdown privilege for this process.
*/
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0))
{
wsprintf(szBuf, "AdjustTokenPrivileges Error #%d", GetLastError ());
MessageBox(GetFocus(), szBuf, NULL, MB_OK);
}
}
if (bForce)
{
if (!ExitWindowsEx(EWX_REBOOT, 0))
{
wsprintf(szBuf, "Error ExitWindows Error #%d", GetLastError ());
MessageBox(GetFocus(), szBuf, NULL, MB_OK);
}
}
else
{
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
{
wsprintf(szBuf, "Error ExitWindows Error #%d", GetLastError ());
MessageBox(GetFocus(), szBuf, NULL, MB_OK);
}
}
return TRUE;
}
/*
Function: ColdBoot
Purpose: Turn off the computer.
Remarks: This function just turn off the computer,
it doesn't reboot it like I want to
*/
void ColdBoot()
{
char szWinIni[255];
GetWindowsDirectory(szWinIni, sizeof(szWinIni));
strcat(szWinIni, "\\rundll.exe user.exe,exitwindows");
WinExec(szWinIni, SW_SHOWNORMAL);
}
Adalsteinn B. Bjarnason
adal@itn.is
|
|
|
|
|
This is my code and it worked (cold reboot). Needs some more work (checking of return values and so on)
// In order to reboot we have to change the privileges
HANDLE hProcess = GetCurrentProcess(); // Is pseudohandle, no close needed
HANDLE hToken = NULL;
OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken);
if ( hToken )
{
TOKEN_PRIVILEGES priv_struct;
LUID_AND_ATTRIBUTES priv;
LUID priv_luid;
BOOL bRet;
bRet = LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &priv_luid);
priv.Attributes = SE_PRIVILEGE_ENABLED;
priv.Luid = priv_luid;
priv_struct.PrivilegeCount = 1;
priv_struct.Privileges->Attributes = SE_PRIVILEGE_ENABLED;
priv_struct.Privileges->Luid = priv_luid;
bRet = AdjustTokenPrivileges(hToken, FALSE, &priv_struct,NULL,NULL, NULL);
CloseHandle( hToken );
}
// Restart and give message to restart if failed
if ( !ExitWindowsEx (EWX_REBOOT,EWX_FORCE) )
{
// do errorcatching stuff here
}
// We are rebooting here so we can safely exit the program
exit(1);
|
|
|
|
|
Hi,
When I compile an MFC project, the icon in the explorer remains the default MFC one ! how can I change it ???
Thank you !
|
|
|
|
|
method 1:
---------
In your project, go to your resource view, check for icon, usually it's named IDR_MAINFRAME. You can repaint that.
Or
method 2:
---------
right-click on icon in the icon view, you will then be able to select import from the contextmenu. You can then import an icon and change its name (after you deleted the default one) to that of the default one. (you will especially need to do this if the code you use, uses LoadFrame to load a lot of default stuff)
|
|
|
|
|