|
The easiest way is to use Norton Ghost.
|
|
|
|
|
bsaksida wrote: Norton Ghost.
Brad
Australian
- Christian Graus on "Best books for VBscript"
A big thick one, so you can whack yourself on the head with it.
|
|
|
|
|
When you set up a backup job in Windows you have the option to save 'System State'. This will make a copy of the Registry and any other critical system settings. See the online Help for Backup for details.
"...a photo album is like Life, but flat and stuck to pages." - Shog9
|
|
|
|
|
Hi ! I have an application (a game in C++ with DirectX) where the player can change the size (property) of the client area. Ex: He has a screen about 1440x900 pixels, he can setup his client area (the game) in a 800x600 window, 1280x1024, etc. My PROBLEM is when the player size DOWN the client area (like... from 1280x1024 to 800x600), we still have the old "Picture" around the new client area of 800x600. The software still runs without any problem but windows don't refresh the screen (the other software or the desktop background.
Is there any way to say to Windows OS to refresh all the screen or fire an event to all software to refresh there view ?
Than you.
Danny Gilbert, enginneer
Montréal, Canada
|
|
|
|
|
This has more to do with how you've written your game than telling Windows to repaint everything. Without knowing what you mean by "size DOWN to client area", or how you're accomplishing this or anything else about your code, there's really nothing we can tell you. There is no method of telling Windows to repaint everything. Windows already know stuff needs to be repainted, normally it's just a matter of giving Windows the time to do it.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
My code is like the following:
1- Change property of the client and the window
2- Destroy old scene, free memory
3- Resize
4- Create new scene
5- SetWindowPos
bool CGameEngine::ChangeWindowsSize( int NewWidth, int NewHeight )
{
// Windows
SetWindowLong( m_hWnd, GWL_style, m_dwWindowstyle );
// Resize window and put it on left-top corner. Player will then move
// the window where he wants.
m_WindowsWidth = NewWidth;
m_WindowsHeigth = NewHeight;
m_rcClient.left = 0;
m_rcClient.top = 0;
m_rcClient.right = m_rcClient.left + NewWidth;
m_rcClient.bottom = m_rcClient.top + NewHeight;
m_rcWindow.left = 0;
m_rcWindow.top = 0;
m_rcWindow.right = m_rcWindow.left + NewWidth;
m_rcWindow.bottom = m_rcWindow.top + NewHeight;
m_MiddleX = m_WindowsWidth / 2;
m_MiddleY = m_WindowsHeigth / 2;
// Destroy object in the old scene.
switch ( m_ActualScene )
{
case MAIN_MENU:
m_pSceneMainMenu->DestroyFinal();
SAFE_DELETE( m_pSceneMainMenu );
break;
// ... other scene
}
// Resize the screen like the user wants.
if( FAILED( m_pGraph3DEngine->Resize( m_WindowsWidth, m_WindowsHeigth )) )
{
return false;
}
else
{
switch ( m_ActualScene )
{
case MAIN_MENU:
m_pSceneMainMenu = new CSceneMainMenu( this );
m_pSceneMainMenu->SetRatioWindow( ( float)m_WindowsWidth/(float)m_WindowsHeigth );
m_pSceneMainMenu->Create();
break;
// ... other scene...
}
if( FAILED( SetWindowPos( m_hWnd, HWND_NOTOPMOST, 0, 0, NewWidth, NewHeight, SWP_SHOWWINDOW ) ) )
{
ErrorExit("SetWindowPos");
}
return true;
}
return false;
}
Danny Gilbert, enginneer
Montréal, Canada
|
|
|
|
|
This stuff just sets the window position and size. How about this. Does you game engine hog the CPU? You can find out in Task Manager. If the CPU utilization is pegged at 99-100, then Windows isn't getting any time to have the other application redraw themselves. Your have to modify your engine to be a little more friendly with the rest of teh system.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Yes ! You are right. It only sets the size and the position of the windows inside the current desktop. IT TAKES 99% of the CPU. I never checked that before with any software I wrote... and I don't know why !
I design most of my time embedded application, so this is always the only software in the system. Some time, I design software for windows like TOOLS and other little stuff. GAMES is my home project.
Is there something with the Windows Message loop ? Can I give sometime "the hand" or the control to the OS for a little time slice (for other software) ? How to do that ? Reducing cpu use about 5%, Is-it enough for Windows to update the screen, etc.
In embedded system, I always try to don't use more tha 50-70% of the CPU time but with Windows, I was sure that Windows CONTROLS/HANDLE it for us. I never get involved with this issue on Windows.
You are right, my GAME use 99% of the CPU. What to do ?
Thanks.;)
Danny Gilbert, enginneer
Montréal, Canada
|
|
|
|
|
Anyone notice that apps compiled on .NET 1.1 or 2.0 can run really quite slowly on Vista?
Have one app in particular, and running side by side on two machines (Win2K and Vista), it runs like a complete dog on Vista, gobling up CPU time. Both machines are the same spec, dual core, and have 2GB of memory, so I don't think its a machine performance problem, not meeting Vista specs.
|
|
|
|
|
Disclaimer: I'm not running Vista. However, I know a little about it.
If you're using the Windows Aero interface, try switching to the Windows Classic theme. Does that speed it up? If it does, possibly you're falling foul of the desktop composition.
With the Desktop Window Manager turned on (awful name, that), 'classic' 2D UI (GDI, GDI+) is no longer rendered in hardware by the graphics card. Instead, it is rendered in software to an off-screen memory buffer[1], which is then used as a texture on the '3D' object making up the window itself. Whenever you make a change, the texture has to be updated. This is different from classic GDI rendering, where the pixels were updated directly (with any regions obscured being clipped out so you didn't paint over a different window). This does mean that if a window is moved over yours, no WM_PAINT messages are sent.
See here[^] for some details on what's happening with GDI windows.
If I recall, the recommendation is to ensure that you're doing all your painting in WM_PAINT handlers, i.e. OnPaint in .NET, and simply using Invalidate to cause a callback to OnPaint if you need draw anything at any other point. That basically means that anywhere you use Control.CreateGraphics is suspect.
You should probably also be looking to make the minimal update required rather than completely redrawing a window.
If you're just using built-in controls then there possibly could be a problem with .NET itself.
It sounds like the hardware is pretty much up-to-date, but you should check whether the systems have integrated graphics (i.e. graphics implemented in the chipset using part of main memory for the video buffer) as this does have poor performance generally.
Or, of course, I could be off base entirely and it's got nothing to do with graphics!
[1] It's possible that some cards might support doing it in hardware, but I think current cards can't use their 2D acceleration hardware while the 3D APIs are in use, even if the driver model supported it, which I don't think it does.
|
|
|
|
|
Its a matrox workstation graphics card. I did wonder if it was something like sub optimal 64bit graphics drivers.
I'm using the Aero, but the one below it as I'm on the business version - does not support Aero. Could not see any difference between it and clasic.
This is all food for thought. Will look at how things are being drawn. I'm using a third party graph control, but do have the code for it. Will have a look at how its rendering itself. There are a number of different graphs that are on different tab conrols, and I wonder if even though they are not visible, by being stacked, they are all rendering themselves now. If so thats a problem.
Thank,
Giles
|
|
|
|
|
Actually what happens(internally) when we restart the system? please explain me
-- modified at 1:49 Friday 26th January, 2007
|
|
|
|
|
When you start up the system from cold, or set a particular voltage on the processor's RESET pin (your computer may have a hard reset switch that does this), the CPU starts executing code from a fixed location. This memory location is in the BIOS ROM chip. The processor starts up in what's known as 16-bit real mode.
In order to restart the computer, therefore, the operating system disables everything that won't work in that mode, switches to 16-bit real mode, then jumps to the starting location in the BIOS. As I recall, one of the processor's registers is set to a specific value, different from the processor's default values on switch-on or hard reset, so the BIOS can take different actions - traditionally, a warm boot skipped most of the power-on self-testing. In DOS, the Ctrl+Alt+Del key combination was used to perform a warm boot, and now you know how it worked.
When it starts up, the BIOS performs initialisation on various devices and performs tests on them, then calls any expansion ROMs (such as the video BIOS on the video card), then looks for a boot sector. This is the first sector on any disk or disk-like device it supports (some now support booting from USB sticks). When it finds one, it loads that into RAM, then executes it. From this point on, it's the boot sector's responsibility to continue the boot.
If you really want to know what happens from here, read "Windows Internals, 4th Edition" by Mark Russinovich and David Solomon.
|
|
|
|
|
Thank you Mr.Mike. your reply to my question is ver useful. thank you very much
Arise Awake Stop Not Till ur Goal is Reached.
|
|
|
|
|
I have a .NET component that I have registered in COM+ on the remote machine. I'm trying to create an object off that machine on my local machine in a VBA application, but I get RTE 462, "Remote server machine not available..."
Where do I start looking to resolve this issue? My local machine is XP SP2, server is Windows Server 2003 SP1.
|
|
|
|
|
Hi all! I am not sure if this is right place to ask this question, but I have always received excellent information from the ppl on this forum, so here it goes.
The problems I am having started a couple of months ago, before that everything worked pretty smoothly for a couple of years.
We have a MSW 2003 domain controller. At this moment, none of the computers that are logged into the domain show up in the network (Network Places--> Entire Network--> Microsoft Windows Network --> 'Network Name'). This is true for both the server and all computers in the network. This problem started when we had to change to a different NIC on the board due to the other one going bad. I also tried another NIC after that with the same problem. Heres the strange part. You can do a search for the computers by name and they will be found (either \\computername or doing a start-->search-->computername).
I made sure all of the DNS info is the same across all computers. I have the default setting for NETBios. I have the domain controller as the first DNS (Which it is also a DNS server) for all machines. All computers show up in AD.
I triple checked to make sure all of the settings for the new NIC were the same as the one we previously used.
I am at loss. Any direction would be helpful and appreciated.
Jude
|
|
|
|
|
Hi all,
which book should i refer to know internals of the FAT32 file system.
actually i want to write a program that will be able to
read the file system but it runs without kernel.
(it's in embedded domain.)
Thanks and regards
Harshal shete
|
|
|
|
|
Hi,
can CPU temperature be measured by reading a memory map(SMBIOS viewer)I do not want to use wmi for directly reading the CPU temperature. coz that is hardware dependant.? is it possible by reading memory map and then calculating from it?
If yes, please let me know how should i proceed.
Thanks in advance
manasi
-- modified at 8:33 Monday 22nd January, 2007
|
|
|
|
|
Manasi D wrote: is it possible by reading memory map
Nope. Usually that value is read from an I/O port by a device driver. This is actually far more hardware dependant than WMI. WMI supplies a consistant interface for vendors to use to supply your app this information. But, it only works if the manufacturer of the MoBo supplies a WMI Provider for their boards - most do NOT do this.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Thank you so much for your reply.
Actually only since wmi is not supported by most of the manufacturers, I wanted to read memory map ..though more h/w dependant.
I thought, if I have a memory map of a machine, i will surely be able to calculate cpu temp on that particular machine.
..manasi
|
|
|
|
|
Manasi D wrote: I wanted to read memory map
The "memory locations", or I/O port numbers, you're talking about change from chipset to chipset. You'd have to write code to detect the chipset the mobo uses, then look at the correct spots, then do any math necessary, and correctly, to calculate the value you're looking for. I'd rather have the manufacturer do that for me instead of me having to support dozens of modules to get the values you want.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
i have one doubt what it means that whether the AMD and INTEL software are same or different when i installing into the system.i am having AMD processor i lossed my motherboard cd u just tell that whether i get motherboard cd or not
;P ;) suss:
|
|
|
|
|
Open the computer, Look on the motherbouar for their product id, And go to their site and download drivers, manuals, ...
But it will not be the same as CD.
and AMD or intell processor isn't going make any diffrance. The only thing is important is manufactior and Product ID.
How old is your motherboard, Does all required driver included in your OS (Windows XP, Linux) system? If so you don't need it
|
|
|
|
|
I have used DataGridView in my application with 4 columns and 10 rows each row contain with number only, HOw can i sum the value in each row. Please give me an example?
Thanks
................
|
|
|
|
|
A few problems here:
You are in the wrong forum.
Missing data, such as what kind of database, what language?
Create new thread in appropriate forum, or are you asking how to use calculator.
|
|
|
|
|