|
|
Welcome
Take care of that point, Roger Broomfield said, if you dont need to show two dialogs at the same time.
- NS -
|
|
|
|
|
In my opinion your problem isn't in the main window. When you display a Modal Dialog from the main window, it will automatically apply the WS_DISABLED style to the main window (check it out using the Spy++ tool), so what you propose really won't make any difference. Your problem is in the handler for the tray menu, where you are allowing the selecting of the menu option to open another modal dialog even though the main window is disabled. Your tray menu handler should process WM_INITMENU and check whether or not the main window is disabled and enable menu options accordingly.
|
|
|
|
|
can anyone help me regarding developing the registry cleaner software for window xp i am exploring on Regclean code by Chakrapani Ramachandran but it's not working well.
|
|
|
|
|
niki dutta wrote: i am exploring on Regclean code by Chakrapani Ramachandran but it's not working well.
whats the problem in that!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief
|
|
|
|
|
please you give some idea to develope registry cleaner software for window xp
and i just hook on working the regclean of Chakrapani Ramachandran after the successful execution of the program it prompts only"fail to read file" so let me what type of i need to give with command prompt where i am executing the exe file
|
|
|
|
|
When you double click on a file in the explorer window, it will run the default application for that file type. For example clicking on a .jpeg file might open up photoshop.
How do I get access to this information? Ideally I want some function like DoDefaultAction(filename). Does such a function exist in the windows API?
|
|
|
|
|
\\HKEY_CLASSES_ROOT\.jpg
Default (REG_SZ) = "ACDSee 9.0.jpg"
Maxwell Chen
|
|
|
|
|
Look in the registry under HKEY_CLASSES_ROOT
|
|
|
|
|
Thanks for the information. I can see there is some information about the file types there but I am not sure how you get from there to running the correct application with the file. For example I set up PNG files to be displayed with PSP.exe, but in the registry I get these entries for .PNG:
[default] REG_SZ pngfile
[Content Type] REG_SZ image/png
[PerceivedType] REG_SZ image
Do I perhaps have to cross-reference this data somehow with some data elsewhere in the registry?
|
|
|
|
|
I had written an article about lookup in the registry for icons. Maybe there are some interesting lines of code for you: http://www.codeproject.com/file/remoteicons.asp
Greetings from Germany
|
|
|
|
|
Another possibility is to go to your explorer, Extras, Folder Options, File Types and add the extension you want searching the software you want to use to open it.
Another thing is if you want to automate it when you run the install.exe. Then you should go through registry entries as the others already answered you.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
|
|
|
|
|
A Noteworthy Programmer wrote: Ideally I want some function like DoDefaultAction(filename).
ShellExecute() doesn't work for you?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hey, thats exactly what I need! I tried getting the information form the registry but its not as straightforward as you might imagine. I managed to get it to work for some file types but not all.
Thanks!
|
|
|
|
|
A Noteworthy Programmer wrote: I tried getting the information form the registry but its not as straightforward as you might imagine.
I would have just used FindExecutable() or AssocQueryString() .
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hello everyone,
I find that when using Debug build, we do not need to set linker --> input --> Advapi32.lib, but when using Release build, we need to set linker --> input --> Advapi32.lib. Or else, there will be error message, unresolved symbol RegSetValueEx.
I am using Visual Studio 2005.
thanks in advance,
George
|
|
|
|
|
George_George wrote: I am using Visual Studio 2005.
is there is any problem!!!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief
|
|
|
|
|
Thanks Alok,
I do not know why we need to add input for Advapi32.lib if we make a release build, and we do not need to import Advapi32.lib for debug build?
I think import library dependencies should be consistent for both debug and release version.
regards,
George
|
|
|
|
|
George_George wrote: I think import library dependencies should be consistent for both debug and release version.
That's true, so what is your question?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi David,
I do not know why we need to add input for Advapi32.lib if we make a release build, and we do not need to import Advapi32.lib for debug build?
If we need an import library, I think both debug and release version need the import library file. why only release version needs this file?
regards,
George
|
|
|
|
|
So I'm sure everyone else has seen stuff like this, but I'm not sure where in the array/pointer jungle I got lost. Here's a sample... I apologize for the huge chunk of code. A node is just a little class that holds an integer... it's for demonstration purposes. The toString() function is a method which prints out that node's integer.
<br />
#include <iostream><br />
#include "node.h"<br />
<br />
node** makeArray();<br />
<br />
using namespace std;<br />
<br />
int main(int argc, char* argv[])<br />
{<br />
node** myArray;<br />
myArray = makeArray();<br />
<br />
cout << "The array contains..." << endl;<br />
<br />
cout << (*myArray)->toString() << endl;<br />
myArray+=sizeof(node*);<br />
cout << (*myArray)->toString() << endl;<br />
myArray+=sizeof(node*);<br />
cout << (*myArray)->toString() << endl;<br />
}<br />
<br />
node** makeArray()<br />
{<br />
node* out[3];
<br />
node* test1 = new node(7);
node* test2 = new node(3);<br />
node* test3 = new node(9);<br />
<br />
out[0] = test1;
out[1] = test2;<br />
out[2] = test3;<br />
<br />
cout << out[0]->toString() << endl;
cout << out[1]->toString() << endl;<br />
cout << out[2]->toString() << endl;<br />
<br />
return out;<br />
}
The output is
<br />
7<br />
3<br />
9<br />
The array contains...<br />
1310504608<br />
1310520796<br />
-1077666540<br />
So where did I go wrong? By the way, this is all for the sake of learning and understanding, so I'm not looking for an easier way to do this particular job, I'm looking to understand what's going on in this case.
Thanks!
|
|
|
|
|
It's nothing to do with pointers. You are creating a stack object 'out' in the function makeArray() and returning a pointer to it, but it doesn't exist once you have left makeArray().
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
That makes sense, except that when I tried this initially I used integers rather than nodes in the makeArray function. It worked then. I am fairly certain that I didn't change anything other than the variable types. I suppose I did.
Thanks for the help, if I can't fix it, I'll post again. Everything else looks ok?
|
|
|
|
|
Returning a pointer to an object created on the stack in a function is definitely a no no, even if it worked once. This can lead to very hard to find bugs. When you created 'out' on the stack and used it in makeArray, all was fine until you returned. Then the stack pointer was altered and these old stack locations were available for reuse. Depending on the following code, and other variables declared on the stack in makeArray, sometimes you will find them intact, and at other times they will be overwritten. Every function you call (directly or indirectly through operator overloading such as <<) will use the stack and may overwrite them.
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
I had that problem in the first version of one project. It was pretty hard to find out what was happening because I was very bad programming (I now am not very good, but I at least can defend me a bit ). The fact is that I had to remake the programm when I started in one Firm, to adapt it to the Firm wishes not to my teacher's wishes.
The fact is that pointers to local objects, may point to nothing or to wrong areas when returning values to other point of the program. But you can still do that, if you want, making a different aproach.
If you are using Doc/View architecture (If not you can "simulate" it using a "DataStore" class/module), You may code more or less the same as you have, but returning a reference to an object that will not be destroyed when you return.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
|
|
|
|