|
Hi, guys, I'm writing simple tool for interest, like managing softwares, file association or IE history.
But when I get into this field, I find there are many information stored in files or registry. Like "index.dat" or "HKLM\SOFTWARE\Clients".
So I want to know, where I can get more information about such thing( registry about shell )?
Thanks in advance.
|
|
|
|
|
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
The Windows 7 Training Kit for Developers includes presentations, hands-on labs, and demos designed to help you learn how to build applications that are compatible with and shine on Windows 7. You'll learn about how you can build in Touch, MultiTouch, implement Taskbar, Ribbon, Sensor, and more.
Windows 7 Training Kit For Developers^]
|
|
|
|
|
I have 2 forms in a windows application - LogonForm and ProcessForm. The Logon Form is setup as the "Startup Object" for the project. Upon successful logon, I have the below code to transfer the control from LogonForm to ProcessForm and close the LogonForm (only).
//Instantiate ProcessForm and Show ProcessForm
MyProcessForm = new ProcessForm(InputData);
MyProcessForm.Show();
//Close the Logon Form
this.Close();
This code actually closes the entire application without showing the ProcessForm.
Now, if I change this.Close() to this.Hide(), the ProcessForm opens, but when I close the ProcessForm, I can see the application still running as the "LogonForm" is still in the hidden state.
When I close the ProcessForm, I have to close the entire application. Can you please help me with how to do it? Thanks in advance for your help
|
|
|
|
|
Hi,
Yes the first form is the main form, closing it ends the app.
If you are working in C#, have a look at Main() in program.cs; you'll see your first form is treated differently, it is passed to Application.Run
You could adapt program.cs to have two Application.Run statements, one with the logon form, the next with your real main form.
OTOH Application.Exit() should terminate your app no matter what.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Luc Pattyn wrote: You could adapt program.cs to have two Application.Run statements, one with the logon form, the next with your real main form.
Hi Luc, thank you very much for your response. Will I be able to pass information on if the logon was successful or not (like a boolean flag or an object with all the logon credential entered in the logon screen) back to program.cs to determine if the main form should be displayed or not for the user?
Thanks again for your help!
|
|
|
|
|
crazylad wrote: Will I be able to pass information
I don't know. I would. But then I wouldn't need to, as I wouldn't want to show the real main form on an unsuccessful logon.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
When the main form closes, it will stop the message loop and your application will end. You need to change the main method and do something like,
int main()
{
if(loginValidated)
{
Application.Run(new ProcessForm());
}
}
|
|
|
|
|
N a v a n e e t h wrote: int main(){ // show the login form here. if(loginValidated) { // starts the application message loop Application.Run(new ProcessForm()); /* .... */ }}
Hi Navaneeth, thank you very much for your response. If I use Application.Run(new LogonForm()) and try returning a boolean parameter to indicate successful/unsuccessful logon, the project doesn't build successfully.
Would you know how I can return the logon status to main(). Thanks again for your help!
|
|
|
|
|
There are a dozen ways to pass data around, here is one using a user-supplied Form property.
LogonForm lf=new LogonForm();
Application.Run(lf);
bool success=lf.Success;
lf.Dispose();
if (success) ...
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Will that be good to start application message loop (Application.Run ) only after validating login?
|
|
|
|
|
N a v a n e e t h wrote: message loop (Application.Run) only after validating login?
You don't need a mesage loop to construct a form or anything else; you need one to get it alive on the screen. Me creating the form before Run() gives me a reference so I can get at its Success property afterwards.
Your code below is fine too, there you make the LogonForm modal, so it gets its own message loop from ShowDialog.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
crazylad wrote: If I use Application.Run(new LogonForm()) and try returning a boolean parameter to indicate successful/unsuccessful logon, the project doesn't build successfully.
IMO, you need to use Application.Run only when the login is successful. As I said, before calling Application.Run , validate the login and if successful call it. To get the validation result back, you can use DialogResult enum provided with .NET framework. You can do like this,
int main()
{
bool loginValidated = false;
using (LoginWindow window = new LoginWindow())
{
loginValidated = window.ShowDialog() == DialogResult.OK;
}
if(loginValidated)
{
Application.Run(new ProcessForm());
}
} Inside the login form, once you validate all the details, write like
this.DialogResult = DialogResult.OK;
|
|
|
|
|
N a v a n e e t h wrote: IMO, you need to use Application.Run only when the login is successful. As I said, before calling Application.Run, validate the login and if successful call it. To get the validation result back, you can use DialogResult enum provided with .NET framework. You can do like this,int main(){ bool loginValidated = false; using (LoginWindow window = new LoginWindow()) { loginValidated = window.ShowDialog() == DialogResult.OK; } if(loginValidated) { // starts the application message loop Application.Run(new ProcessForm()); /* .... */ }}Inside the login form, once you validate all the details, write like
this.DialogResult = DialogResult.OK;
Navaneeth & Luc, thank you very much for your response. It was of great help. I also happen to come across an article about passing data between forms. I'm providing the link in this post for the benefit of anybody that is looking for the same information.
Passing Data Between Forms[^]
Thanks again for your help!!
|
|
|
|
|
I know several ways to hide individual properties, and in something I'm working on I do it using a Designer , more specifically by overriding the PreFilterProperties method
protected override void PreFilterProperties(System.Collections.IDictionary properties)
{
properties.Remove("Dock");
properties.Remove("TabStop");
properties.Remove("TabIndex");
properties.Remove("Visible");
properties.Remove("Enabled");
properties.Remove("Locked"); <===========================================================
properties.Remove("Anchor");
properties.Remove("Name"); <===========================================================
properties.Remove("AutoSize");
properties.Remove("AutoSizeMode");
properties.Remove("Location");
properties.Remove("Size");
properties.Remove("MaximumSize");
properties.Remove("MinimumSize");
properties.Remove("BorderStyle");
properties.Remove("GenerateMember");
properties.Remove("Modifiers");
properties.Remove("Design");
base.PreFilterProperties(properties);
}
The two properties marked still show up however.
They are both in the 'Design' Category, so even if the code above worked, I would still be left with an empty Category. So
1) anybody got any ideas about why the two properties remain and/or how to get rid of them.
2) any ideas on how to remove the 'Design' Category. If you look at either of the Panels in a SplitContainer , they don't have a Design Category, so presumably it is possible.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Hello Sir Henry,
my undercover informant told me the secret of SplitContainer panels is in this line:
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
Hope that helps.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Hi Luc,
Thanks for that. I had completely forgotten EditorBrowsable , so this was a useful reminder. Unfortunately these attributes are of no help in my case.
I have discovered, through experimentation and reading the documentation that Locked , certainly, and Name must be guilty by association, is not a Property of Panel , which my class descends from. It therefore must be provided by an Extender Provider in the host designer. I vaguely remember reading this about Name somewhere anyway. So it's another round of googling and reading, unless your good self or A.N. Other has a solution.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
I got some more info for you:
1. Locked is not a run-time property of most Controls; only a few (ToolStripPanel) have it.
It seems to exist inside VD only.
2. Name is completely different; it is a property of Control, public and not virtual. It is Browsable(false) so the "(Name)" you see in VD isn't the real thing.
And some specialized controls have their own Name property, not new, not override, not virtual?????
That will be all from me on this subject.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Cheers.
More ammunition for the Google gun.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Good morning Henry.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Bonjour, Luc.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Oy Statler, we speak Dutch around here. Goede middag ondertussen.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Hi friends,
In my application from windows form i am going to open one URL in IE...in that web page[PAGE 1] after passing UserName & password it will redirect to other page[Page 2]....that page contain IFrames....
Now from that page i have to redirect to another page[PAGE 3]...
but URL of Page 3 is different..
I mean to say if Page 2 URL is https://www.google.com
Than Page 3 URL will be https://www.abcgoogle.com....but due to Iframe when i redirect from page 2 to page 3 address bar url will not change due to Iframe....
Now when i am on Page 2 when i mouse over on link button(which redirect me to third page)...at that time on status bar it is display this URL(https://www.abcgoogle.com)
Now my problem is From page2 how can i get status bar value??? so finally i redirect to third page.....
REgards,
Hemant Patel.
|
|
|
|
|
Windows 7 is released for developers today. It's available to MSDN subscribers. I've put together a list of Microsoft programs for developers for getting Windows 7 and developer tools including MSDN subscriptions at big discounts at http://tinyurl.com/newahd[^]
If you are a startup, your MSDN subscription can be nearly free through BizSpark[^]. The post also describes the free programs that are available for software companies to get your applications compatible, publicize compatibility, and to be listed on Microsoft sites.
|
|
|
|
|
Hello, I'm working on a developing a windows application which displays file names as link labels on a form. The files are saved in an Oracle database table as BLOBs. The files can be of any format .jpg, .gif, .pdf, .tiff, .htm, .pdf, .zip etc. When the user clicks on a link label, I am retrieving the corresponding BLOB from Oracle and have converted into byte array. I'm stuck on how to stream this byte array for the user to save in his desktop. If there is a way to even save and open the file systematically also, that would be great.
Any help from you is greatly appreciated.
|
|
|
|