|
Heath Stewart wrote:
take it you're trying to use this ActiveX control server-side, right? If
Yes, it doesn't have any user interface.
So you mean I can't use it there? I don't know if that poor VB programmer can change his option for his ActiveX so it could run in MTA. But thats better for me , cause I can charge him and write that Activex myself
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
You might also try asking in the COM forum. Threading models is something I try not to mess with, and have hence avoided as much as possible. Someone there - like Mike Dunn if he visits - should be able to provide some suggestions (though a solution would require a little expertise in both COM threading models and ASP.NET).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks to Both of you, when I do it through Customize Toolbox I didn't got error,its strange, but I have to read Heath reply carefully first.
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
Hi,
I would like to get a list of files and folders on a specific URL.
How can I do that?
I am searching for something like DirectoryInfo and FileInfo (thees two classes can onyl work with local files&folders aparently).
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
|
I tryed passing an URL to the constructor, but it says that URLs are not suported ...
I checked this article and I can't find anything about getting a list of files from a URL ...
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
CWIZO wrote:
I checked this article and I can't find anything about getting a list of files from a URL ...
Look at the picture of article, it gets IP address with username and password. And in the tab of sample application ,you will see MY EXPLORER . So isn't it what you want?
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
By the way, if it doesn't help,you can use remotng to run a application on server to respond to your application and send information you need.
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
The problem is that the server is "random". It can be any server.
So I can't have autherication or something.
Im building something like a spider, that would grab images from a server for instance (no I am not making a pr0n downloader ).
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
CWIZO wrote:
So I can't have autherication or something.
You missed some point , there is something called security,unless you wanna do hacking.
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
To demonstrate what I'm trying to achive please download&install this programm:
http://sbl.net/Downloads/BlackWidow%20Setup.exe
it is called Black Widow, you just type in a URL, and the program generates a structure of files and folders. And if files are accessible (like images, or html files) you can download them.
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
I would like to get rid of (actually move) the arrow in the menu item which is used to show the existence of menu items to the right of the menu item. The reason for this is that I need to show the menu on the right hand side of the form and when I change the RightToLeft property, the arrow appears in the center of the menu item. I've made several different attempts but to no avail. It doesn't seem to matter whether I use owner draw or not. Can somebody help?
|
|
|
|
|
There's plenty of articles here on CodeProject about owner drawing menus. Just try a search[^].
There's also a pretty basic - but complete - example on Dr. GUI .NET some time back, Controls and Icons a la .NET[^]. The example is in VB.NET, but if you truly understand the .NET Framework, you'll have no problems translating it to C# if you need that. There's also a pretty good "Cutting Edge" article in MSDN Magazine, Owner-drawing in .NET[^], which deals completely with menus.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks but I still don't see from these articles what to do in order to get rid of the arrows. They are always drawn when one or more submenus are added to a menu item (to its right). These arrows appear in black while viewing the menu item and in white when selecting (hovering over) it. This occurs regardless of which colors are set in the DrawString or FillRectangle methods (in the owner draw procedure).
I put some debugging print statements into an overridden WndProc method, but I fail to see which event (in Message) would do this drawing.
I also attempted to create a graphics object in the MenuItemPopUp method but when I attempted to create such an object from the handle I received from the sender (MenuItem) the program just crashed giving me an out of memory error msg. Seems like creating a graphics object from the window handle of the form object is allowed but doing the same from the window handle of the menu is not. (Although, even if this had succeeded I have my doubts as to whether this would solve my problem).
So, if anybody out there has succeeded in getting rid of (or moving) these arrows, I would appreciate it if you could tell me.
|
|
|
|
|
The MenuItem.DrawItem event gives you the the Graphics object you should be using. It's possible the out-of-memory exception is because a Graphics object has already been created from the window handle, which obtained the HDC internally. There can only exist one HDC for the drawing operation, IIRC.
I threw together a quick test and see what you mean. Unfortunately, .NET probably has nothing to do with this since it merely encapsulates the Windows APIs. You could always try adjusting the SizeF in which the text is drawn so that the menu item is long enough to display some space between the arrow and the text. I have heard that there are some quirks in right-to-left reading orders, and this appears to be one. Googling for this subject pretty much comes up with that idea - offsetting your text appropriately.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thank you for your response and for trying this out with a test program. I increased the width of the menu item window in MeasureItem and it does look better. Unfortunately, the arrows are on the wrong side of the text and are pointing in the wrong direction. What really baffles me is that I can't find the Windows API message which probably repaints the Menu item after I paint it in DrawItem. This message ought to be one of the messages coming through the WndProc method.
By the way the out-of-memory exception I get is not in MenuItem.DrawItem but in the PopUp event method. It happens when I attempt to create a Graphics object from the window handle of the MenuItem. I wonder whether this is a bug in .NET (with C#).
|
|
|
|
|
When displaying the underlying popup window for a menu, an HDC would also be used. From experience, creating an additional one causes similar problems.
When I threw together my simple - and very stupid! - application and set RightToLeft on the main form to RighToLeft.Yes (the child controls were left as the default RightToLeft.Inherit ), the arrows were on the right (left, that is! ) side and pointing the right (left) direction.
Are you trying to perform right-to-left drawing yourself without regard to the RightToLeft property?
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I pretty much gave up on this whole endeavor now. Instead I am now keeping the RightToLeft as Inherit (that is NO) and instead placed a huge empty MenuItem (filled with spaces and set to Enabled = False). But what I was trying to do was to keep the labels on my menu items as Left adjusted (by using tabs in my Format.SetTabStops. But for me the arrows showed up on the left and pointed to the left and since I am using English this didn't look so great (especially when the arrows came in the middle of the labels). When I attempted this, I did set the RightToLeft value to be YES.
|
|
|
|
|
Wait, you used tab-stops? The default menuing provided by Windows uses these for arrow and shortcut key placement. Set 2 or 3 tab stops (calculating in the maximum SizeF.Width from Graphics.MeasureString ) and see what you come up with.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Just for the hell of it I set up some tabs (though it turns out I just needed one). This is my code:
float[] tabs = {15};
Format.SetTabStops(0, tabs);
string MenuItmStr = "\tX\t" + Item.Text;
The X now covers the arrow though the arrow is still there. Seems like it somehow gets drawn after my DrawItem gets executed.
|
|
|
|
|
I'm trying to run the GetDisplayName method of a folder (in this case, the desktop folder). It all executes perfectly as far as I can see, until it reaches the StrRetToStr method, where it crashes with a null pointer error.
I'm slightly confused as its practicaly identical to the tutorial on this site.
The code follows:
<br />
desktopPIDL = new IntPtr();<br />
<br />
COMStuff.SHGetDesktopFolder(out desktopPIDL);<br />
<br />
Type shellType = typeof(IShellFolder);<br />
<br />
IShellFolder shellFolder = (IShellFolder)<br />
Marshal.GetTypedObjectForIUnknown(thing, shellType);<br />
<br />
<br />
IntPtr interfacePtr = new IntPtr();<br />
IntPtr relativePIDL = new IntPtr();<br />
<br />
Guid myGUID = Marshal.GenerateGuidForType(shellType);<br />
<br />
result = COMStuff.SHBindToParent(pidl,<br />
myGUID,
out interfacePtr,<br />
out relativePIDL);<br />
<br />
IShellFolder myShellFolder = (IShellFolder)Marshal.GetTypedObjectForIUnknown(interfacePtr,shellType);<br />
<br />
mySTRRET = new STRRET();<br />
result = myShellFolder.GetDisplayNameOf(relativePIDL,SHGDN_Flags.SHGDN_NORMAL | SHGDN_Flags.SHGDN_FORPARSING<br />
,ref mySTRRET);<br />
<br />
<br />
myFileName = new string(' ',128);<br />
<br />
result = COMStuff.StrRetToStr(ref mySTRRET, relativePIDL, out myFileName); <br />
The calling code above gets to the last line before crashing.. STRRET has all it's values set (except type... the uint is always 0 for this struct).
The STRRET struct and the StrRetToStr method are declared as follows:
<br />
[StructLayout(LayoutKind.Explicit, CharSet = CharSet.Auto)]<br />
public struct STRRET <br />
{<br />
[FieldOffset(0)]<br />
public uint uType;
<br />
[FieldOffset(4)]<br />
public IntPtr pOleStr;
<br />
[FieldOffset(4)]<br />
public UInt32 uOffset;
<br />
[FieldOffset(4)]<br />
public IntPtr cStr;
<br />
}<br />
<br />
<br />
<br />
[DllImport("shlwapi.dll", CharSet=CharSet.Auto)]<br />
public static extern int StrRetToStr(<br />
ref STRRET pstr, <br />
IntPtr pidl,<br />
[MarshalAs(UnmanagedType.BStr)]<br />
out string pbstring);<br />
<br />
If anyone could shed some light on this subject, it would be most grateful.
regards
Cata
(This is actualy an expantion on a thread I posted 2 weeks ago, but I've been supremely busy, so it's lost in the archives somewhere)
|
|
|
|
|
how would i run a command from c# like i would at the command prompt? (just an example: command="explorer /e,c:")
thanks,
Rob Tomson
--
There are 10 kinds of people. Those who understand binary and those who don't.
|
|
|
|
|
Look at Process class and specifly its method Process.Start() and StartInfo property.
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
You can use the code below to run an application.
The arguments in this case is the application's exe as the first argument & the second argument is the actual file you want to open.
You can also just specify the file & it will open in the default application.
I'm sure it must be possible to just specify the application as well.
System.Diagnostics.Process.Start("WMPlayer.exe", "C:\\test.wmv");
Hope it helps
Jaclyn
|
|
|
|
|
i was actually looking at that but since it said Diagnostics i didn't know if it was meant to be used for that or something else. what i want to do is running a third party console program silently. using the Process.Start it opens up a command prompt box for me and does exactly what i want but is there a way to not show the window?
thanks,
Rob Tomson
--
There are 10 kinds of people. Those who understand binary and those who don't.
|
|
|
|