|
I'm trying to launch the default browser, with a given URL in a particular event handler. The best I have so far is:
using (RegistryKey rkey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Classes\http\shell\open\command"))
{
string val = rkey.GetValue(String.Empty).ToString();
string browser = val.Split('\"')[1];
Process.Start(browser, URL);
} This works perfectly well on my machine but IE is the only browser I have installed, let alone the default.
Can anyone tell me
a) If there's a better place to look for the default browser and
b) If Netscape, Opera, et al can be parsed out of that key using the same Split?
Paul
We all will feed the worms and trees So don't be shy - Queens of the Stone Age, Mosquito Song
|
|
|
|
|
Key 1 :
HKCR\.html ==> htmlfile
Key 2 :
HKCR\htmlfile\shell\open\command ==> "c:\....\iexplore.exe" | "...\netscape.exe" | "...."
|
|
|
|
|
I did think about using ".html" but I figured it was possible, if unlikely, that someone might have it set up so that double-clicking an .html file would open a different browser from the default.
Daniel seems to have the perfect answer, but thanks anyway
Paul
We all will feed the worms and trees So don't be shy - Queens of the Stone Age, Mosquito Song
|
|
|
|
|
Just call Process.Start(URL) and it'll call the default browser for you.
It's not the fall that kills you: it's the sudden stop - Down by Law, Jim Jamursch (1986)
|
|
|
|
|
Nice answer Daniel. Didn't really give much thought to that idea, I didn't think it would work with a URL like "www.mydomain.com/mysite" (ie. no mention of http or html) but somehow it does. Very cool, thanks.
Paul
We all will feed the worms and trees So don't be shy - Queens of the Stone Age, Mosquito Song
|
|
|
|
|
i would like to add line numbers to a richTextBox, does anyone know of an easy way of doing this?
i was thinking about having two text boxes controlled by the same scroll bar but i dont know how to link them up?
or is it easier to use a different control to add the line numbers?
Any help would be extreemly useful as i dont remember seeing an example of this or anything similar anywhere!
|
|
|
|
|
I was thinking about how to design a custom control with the same functionality for the richTextBox. My initial approach would be to use a panel along the left side and set its dock property to left and the richTextBox to fill. I think there would have to be some sort of callback to the panel so it knows to update the line numbers.
I do not know if this is the correct approach but it could be a start for further discussion on this topic.
I would be interested in seeing the best method to do this.
Regards,
Brandon
|
|
|
|
|
My only reason for thinking of using two of the same text controls was an easy way to keep line numbers in the correct place as they could both share the same font and would have equal spaces in the line numbering i thought it would then be a simple task to get them to scroll together and somehow lock the textbox displaying the numbers so that it wouldn't highlight or selct on click, it would just appear next to it.
|
|
|
|
|
Can anyone tell me how can I obtain the HINSTANCE of my app in C#?
Thanks a lot,
Andrei Matei
andreimatei@home.ro
Andrei Matei
andreimatei@home.ro
|
|
|
|
|
System.Diagnostics.GetCurrentProcess().Handle
|
|
|
|
|
Treeview checkboxes don't have a ThreeState style, so I added a third state to my treeview with these statements:
System.Windows.Forms.TreeNode n = e.Node.Parent;
Rectangle myRect = n.Bounds;
CheckBox myCheckbox = new CheckBox();
myCheckbox.SetBounds(myRect.X - 33 , myRect.Y + 1, myRect.Height,
myRect.Height);
myCheckbox.CheckState = CheckState.Indeterminate;
myCheckbox.FlatStyle = FlatStyle.System;
treeView1.Controls.Add(myCheckbox);
myCheckbox.Show();
Problems encountered:
The checkbox doesn't move when the treeview is scrolled... I've tried to set the Anchor property for the checkbox, but it has no effect...
Unable to Uncheck the checkbox, using Hide or by creating another checkbox with the Unchecked style and calling Show.
can someone tell me how to get the checkbox to scroll with its associated treeview node, and how to uncheck it?
thanks.
|
|
|
|
|
If I see your history of posts, you seem to be expecting a lot from the .NET TreeView. May be a bit too much. My suggestion is to rely on Carlos H Perez's owner drawn treeview (Cp articles), which actually are wrappers over a WIN32 treectrl.
|
|
|
|
|
Hey dude, did you finally get a solution for this.
If yes, could you please send the code.
thanks in advance
Srini
|
|
|
|
|
I've got the following problem,
I use to call ExitWindowsEx in win98 environments to turn off the pc, but it doesn't work on w2k os,
What could I use to turn off/restart the computer on w2k??
(using vb or vc++ or any other .net tool)
I prefer not use WMI interfaces, any ideas??
Thanks in advance.
Just three words: void main(void)
|
|
|
|
|
Only one I can think of off the top of my head is InitiateSystemShutdownA from ADVAPI32.DLL. Not the prettiest, but that's what I usually use.
Mark Conger
Sonork:100.28396
|
|
|
|
|
You have to get privileges, here is the example for MSVC++, I think it could be easylly maded in C# or you could siply use a dll, here is the code
BOOL MySystemShutdown()<br />
{<br />
HANDLE hToken; <br />
TOKEN_PRIVILEGES tkp; <br />
<br />
<br />
if (!OpenProcessToken(GetCurrentProcess(), <br />
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) <br />
return( FALSE ); <br />
<br />
<br />
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, <br />
&tkp.Privileges[0].Luid); <br />
<br />
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; <br />
<br />
<br />
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, <br />
(PTOKEN_PRIVILEGES)NULL, 0); <br />
<br />
if (GetLastError() != ERROR_SUCCESS) <br />
return FALSE; <br />
<br />
<br />
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) <br />
return FALSE; <br />
<br />
return TRUE;<br />
}<br />
I hope it helps.
You can read more about privileges here.
Signature...
I look for that at home... tomorrow
|
|
|
|
|
jero7207 wrote:
I hope it helps.
Sure, it does.
Thanks a lot friend.
Just three words: void main(void)
|
|
|
|
|
i am very new to .Net and have decided to use C# in my next development project. my existing software is written in C++ and uses named pipes to communicate between appz. this existing app (which has the unfortunate acronym of "PMS" server) needs to updated to use SOAP messages over a tcp/ip network. currently the PMS uses serial communication. since xml serialization is so easy in .net and i already have all the necessary message classes, i am going to build a tcp communication layer outside of the PMS (did i mention i hate the name?!) i was hoping to utilize my existing pipe server in the PMS to communicate with this new C# app. any thoughts on the best way to approch this??
-613 "Code Poet"
"Real programmers don't work from 9 to 5. If any real programmers are around at 9am it's because they were up all night."
|
|
|
|
|
How would I call a method from a class i've not instantiated?
For example,
using CustomClasses;
.......
Binomial.RunIt();
rather than
Binomial b = new Binomial();
b.RunIt
Something similar to how Convert.ToString(...) works.
"De most compwehensive image seawch on de web." - Google in Elmer Fudd Language "But a fresh install - it's like having clean sheets" - Chris Maunder Lounge 3 Mar '03
Jonathan 'nonny' Newman Web Designer, Programmer, Lover, Visionary Leader...
Homepage [www.nonny.com] [^]
|
|
|
|
|
declare it as "static".
like this:
public static string ToString(...)
{
}
You can also declare static fields on the class.
And can create a static "constructor" to initialize them:
class X
{
static X()
{
}
}
Beware that your static methods may need synchronization (the "lock" statement on C#), since they may be called from several threads and probably will work on global data.
It's not the fall that kills you: it's the sudden stop - Down by Law, Jim Jamursch (1986)
|
|
|
|
|
Daniel Turini wrote:
Beware that your static methods may need synchronization (the "lock" statement on C#), since they may be called from several threads and probably will work on global data.
I've tried a lock statement in the class...
public static void SomeStatic()
{
lock(this)
{
System.Windows.Forms.MessageBox.Show("Hello");
}
}
But it says you can't use 'this' from a static method. Any thoughts...
"De most compwehensive image seawch on de web." - Google in Elmer Fudd Language "But a fresh install - it's like having clean sheets" - Chris Maunder Lounge 3 Mar '03
Jonathan 'nonny' Newman Web Designer, Programmer, Lover, Visionary Leader...
Homepage [www.nonny.com] [^]
|
|
|
|
|
Just remove the lock from that, that static function call should be thread save already.
I rated this article 2 by mistake. It deserves more. I wanted to get to the second page... - vjedlicka 3:33 25 Nov '02
|
|
|
|
|
leppie wrote:
Just remove the lock from that, that static function call should be thread save already.
Cheers
"De most compwehensive image seawch on de web." - Google in Elmer Fudd Language "But a fresh install - it's like having clean sheets" - Chris Maunder Lounge 3 Mar '03
Jonathan 'nonny' Newman Web Designer, Programmer, Lover, Visionary Leader...
Homepage [www.nonny.com] [^]
|
|
|
|
|
You can not use this keyword in static context. Try this:
Class YourClass
{
public static void SomeStatic()
{
lock(typeof(YourClass))
{
//some code operating on shared/global data
}
}
...
}
|
|
|
|
|