|
As you have the proper files on both machines, I'd suspect the ordering of the include directories.
One PC may look in the platform SDK directory first, and find the header there, and the other PC
might look in the visual studio include directory first, and find the header there...
That problem might not be with cdosys.h, but with a header *it* includes. One version defines _Stream
etc, and the other does not.
In VC6, look at Tools | Options, Directory tab, and pick Include on the Combo box. There are black
arrows to rearrange the order.
Have a look at the working machine, and replicate the order on the not-working machine!
Good luck,
Iain.
|
|
|
|
|
What is the difference between an accelerators and a hotkey?
Software Developer
Sanjay Khapre
|
|
|
|
|
|
toxcct is 90% right. People use the two names interchangably. Hot Key is a common user name
for an accelerator.
Being pedantic...
An accelerator is a part of an accelerator table. (LoadAccelerator , TranslateAccelerator , etc.) It only works when your application has the keyboard focus.
A Hot Key is a a system wide key (RegisterHotKey , UnregisterHotKey ). When pressed, windows send a WM_HOTKEY message to you. It works all the time. You could use it to make a certain key combination do something even when your application is hidden. (eg. screen capture, etc). I would not recommend having it active all the time, as it may collide with accelerators of other applications.
Iain.
|
|
|
|
|
|
Gosh, I don't normally get voted on! And to think I was trying to kill time productively while I
struggled to work out a problem of *mine*!
Iain.
|
|
|
|
|
Some also confuse one or both of those words with a "mnemonic", which is the underlined character you get on dialog controls allowing you to focus or activate that control using the <ALT> key along with the key of the underlined character.
They (mnemonics) are also used on top-level Menus and Menu Items (although you do not need to use the <ALT> key when a menu or menubar is active).
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Tip for new SUV drivers: Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
Hi all,
I'd like a little help. I am writing a Setup program and have come up against the problem of installation over a network. The program currently works perfectly installing on Windows machines locally but I am trying to consider how a network admin might install across a network. Currently the setup would require individual installations on each machine due to the fact that local registries are set by the setup program.
I guess what I'm asking is, what is best? Do network admins usually install systems individually or is there a method of cascade installation which can be applied?
Many thanks
u6ik
|
|
|
|
|
u6ik wrote:
Do network admins usually install systems individually
In windows this is the case. But there are tricks we sometimes use to do a full install of all applications then mirror the disk and use special software to make windows create a new uid for the machine. However this generally only works on very similar systems (same hardware).
John
|
|
|
|
|
Thanks for the feedback. My favourite kind of problem... A problem that's not a problem. Looks like I'm onto testing
Cheers
u6ik
|
|
|
|
|
One thing you can do to make it less work for network admins is to allow the media to be copied (not installed) to a server share and then installed individually from there to each pc instead of having to carry a cd around to 1000 computers. In some places (my hospital) we have computers without cds so allowing pcs to be installed in this way is essential.
John
|
|
|
|
|
Piracy aside, this is probably the way the product will be released for institutions. A licenced network release
u6ik
|
|
|
|
|
How can I make a simple shell with c or c++ . have you any program
about shell writen in c or c++.
|
|
|
|
|
ok ok, i stop after this one
my question (cross posting avoided again) is this one[^]
any suggestion on how one can set the focus again to an already existing ainstance of a program ?
thanks to all of you in advance
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
toxcct wrote:
(cross posting avoided again)
Oops, I Posted my answer there!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
|
|
|
|
|
toxcct wrote:
any suggestion on how one can set the focus again to an already existing ainstance of a program ?
Something like:
if (bFound)
{
if (it's a popup window)
SetForegroundWindow(handle to the popup window);
if (it's an icon)
ShowWindow(handle to the popup window, SW_RESTORE);
return FALSE;
}
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
thanks david, but firstly, Alok answer satisfied my plainly (with code), and secondly, your sample is not exactly what i need.
anyway, i apreciate.
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
toxcct wrote:
...your sample is not exactly what i need.
Strange, as it has always worked for me. After you find that the mutex exists, indicating that the application is already running, it's simply a matter of restoring the window.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
oh sorry, i didn't understood your *code* at first time.
DavidCrow wrote:
SetForegroundWindow(handle to the popup window);
ShowWindow(handle to the popup window, SW_RESTORE);
hum well, how do you get handle to the popup window ?
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
toxcct wrote:
how do you get handle to the popup window ?
Use EnumWindows() .
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
This is how I limit my apps to a single instance and activate the first instance if another is run.
HANDLE hm = CreateMutex(NULL, TRUE, "Mutex Name");<br />
DWORD dw = GetLastError();<br />
if(dw == ERROR_ALREADY_EXISTS)<br />
{<br />
SetForegroundWindow(FindWindow("ClassName", "WindowName"));<br />
return(0);<br />
}
There are probably better ways but this is the simplest I know and has always worked just fine.
|
|
|
|
|
interesting code.
but what do ClassName and WindowName represent exactly in your above line code ?
<code>SetForegroundWindow(FindWindow("ClassName", "WindowName"));</code>
thanks in advance.
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
ClassName is the name of the type of class of the window you are looking for. Such as the name you used when you called RegisterClass .
WindowName is the name of the window you wish to find. This is the window title. Such as "The Code Project - Free Source Code and Tutorials - Internet Explorer".
Read the MSDN entry for FindWindow , that should explain it better than me.
Hope this is helpful.
|
|
|
|
|
hi codeprojecter,
it's me again... (and it's not the end )
i asked this[^] for making a background from a bitmap "mosaïc-ed".
as i don't like cross posting, i dont post the entiere message but the link, but as i may i faster answers here...
it's for you guys. i'm ready !
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
If you can paint a bitmap once, it is pretty simple to do it multiple times, but with different corner
positions...
void PaintMosaic (CDC *pDC, CRect rc, CDC &m_DCPic, CSize m_PicSize)
{
CPoint pt;
GetClientRect (&rc);
for (ptOrigin.y = rc.top; ptOrigin.y < rc.bottom; ptOrigin.y += m_PicSize.cy)
{
for (ptOrigin.x = rc.left; ptOrigin.x < rc.right; ptOrigin.x += m_PicSize.cx)
{
pDC->BitBlt (ptOrigin.x,ptOrigin.y, m_PicSize.cx, m_PicSize.cy, &m_DCPic, 0,0, SRCCOPY);
}
}
}
I've not given you the bits for loading a bitmap, selecting it into a memory dc, etc, as you can
get those from the origina article you linked to.
Iain.
|
|
|
|