|
"IE" as you call it is nothing more than an application that hosts the WebBrowser control (which hosts MSHTML). Read the documentation for the Internet Explorer SDK. Read information specifically about IHTMLDocument2 and its selection property. If you don't understand how to get the IHTMLDocument2 object, there are plenty of articles here on CP about it. Just search for "WebBrowser" or "IHTMLDocument2".
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Hi,
I create in the folder DEBUG or RELEASE some settings files for my executable.
When I compile my project, the compiler delete the settings files and recreate a new folder DEBUG or RELEASE with the compiled files
So how can I do for disable this option.
Best Regards
youssef
|
|
|
|
|
What do you mean by "settings file"? Do you mean the .config file? If this is the case, remove the app.config file from your project, which is a specially named file that's name is changed and it is copied to the output directory. Usually this is desired behavior so that you can source-manage the configuration file.
Otherwise, you may have a pre- or post-build configuration (only in VS.NET 2003 and up for C# and VB.NET) that is deleting these files because the project compilers only replace files in the output directories that it actually creates.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Hello.
I'm using an ActiveX Control in my .NET project and I have to use a method that originally accepted a IStream.
The .NET type library importer has modified the parameter of this method and now looks like this Interop::MyActiveXControl::IStream.
The problem that I have is that I can't create directly a Interop::MyActiveXControl::IStream because this is an interface.
I have created a System::IO::MemoryStream and fill it with data but this type can't be converted ( or I don't know how ) to convert to Interop::MyActiveXControl::IStream.
Any ideas ??
Thanks in advance.
|
|
|
|
|
Create a new class and implement that interface. There won't be a class generated for it because the parameter is an interface, unless your COM library exposed a class that already implements it elsewhere.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I wrote an application a while back that used WIN32 C++ to query a list box in another application for its contents (using SendMessage).
I would like to do the same in C#, but instead of using SendMessage, I would like to associate the HWND with a ListBox instance.
I can get the HWND for the listbox that is in another app, and I tried using Control.FromHandle, but it returns null. If, however, I put a listbox in my own application it works. This made me suspect that it is a security issue and just not possible.
Thanks for any help.
|
|
|
|
|
An HWND is not global but specific for an application's domain. (It's essentially a pointer). It is therefore not possible to use an HWND outside of that application.
|
|
|
|
|
i want to retrieve the group-membership of all ad-users.
the performance with the directorysearcher-class seems to be very poor.
what do you think is the the fastest way?
thanks for your hints!
reagrds, thilo.
CODE:
Dim adEntry As New DirectoryEntry("LDAP://lan", "xxx", "yyy", AuthenticationTypes.Secure)
Dim adSearcher As New DirectorySearcher(adEntry)
Dim adSearchResult As SearchResult
Dim AllResults As SearchResultCollection
adSearcher.Filter = "(objectCategory=user)"
adSearcher.SearchScope = SearchScope.Subtree
adSearcher.SizeLimit = 65535
adSearcher.PageSize = 65535
adSearcher.PropertiesToLoad.Add("cn")
adSearcher.PropertiesToLoad.Add("sAMAccountName")
adSearcher.PropertiesToLoad.Add("memberOf")
Dim intCount As Int32 = 0
Dim strSoft As String
Dim strUser As String
Dim ArrSoftware As New ArrayList
' alle gefundenen ad-user...
AllResults = adSearcher.FindAll()
For Each adSearchResult In AllResults
' wenn die user-id ok ist...
If Not IsNothing(adSearchResult.Properties("sAMAccountName")) Then
strUser = Convert.ToString(adSearchResult.Properties("sAMAccountName")(0)).Trim.ToLower
Debug.WriteLine(strUser)
Try
' wenn der user mitglied von gruppen ist...
If adSearchResult.Properties("memberOf").Count Then
ArrSoftware.Clear()
' jede gruppe in der der user mitglied ist...
For Each strSoft In adSearchResult.Properties("memberOf")
ArrSoftware.Add(strSoft)
End If
Next
' datensätze in datenbank
If ArrSoftware.Count > 0 Then ApplInsert(strUser, ArrSoftware)
End If
Catch
' nix zu tun
End Try
End If
Next
|
|
|
|
|
Unfortunatley, you don't have a lot of choices if you want to use pure .NET code. If this is a major problem, you could try doing this in a thread or a worker thread (see the ThreadPool class), being sure to use Invoke for ApplInsert if it modifies a UI (since controls are created on the main UI thread and should only be modified on that thread). You could also create a delegate for the ApplInsert method and use BeginInvoke (won't necessarily show-up via IntelliSense, but the compiler creates them automatically, at least the C# compiler does, which brings me to my next statement...)
Also, this VB.NET code and you posted it in the C# forum. Fortunately, .NET allows coders to use different languages that use the base class library (BCL) - as well as other assemblies - to produce the (almost) the same IL that is language-independant. I must warn you, though, posting VB.NET in the C# forum might get you beat up!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
ok. thanks.
sorry for that vb.net-stuff!
regards, thilo.
|
|
|
|
|
Hi, All.
Please, help. I need to create a COM Object for remote data accessing. It will connect to SQL server.
Is there any samples or articles?
I need just a little sample code to catch the idea...
Vital
|
|
|
|
|
Are you referring to create a .NET assembly (DLL) written in C# that contains interop code to create a CCW for COM clients to use?
First, worry about writing the class to access SQL Server. That's trivial and you can find articles all over CP and the rest of the 'net on this, or look at the System.Data.SqlClient namespace classes, structs, enums, and interfaces. There's a ton of documentation and examples in there.
To create the CCW, take a look at Nick Parker's article here: http://www.codeproject.com/dotnet/nettocom.asp[^]. Use regasm.exe to register the DLL, then COM clients can access it. If you create your class interfaces with the attribute InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch) (or with ComInterfaceType.InterfaceIsDual ), then automation clients like VB and VBA (and all your scripting languages) can access the COM object.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
|
Can someone show me how i can open Internet Explorer by clicking on a button?
I'm having a hard time finding out how to do this...
Thank you for taking time with this lame-o question.
|
|
|
|
|
Hi .gonad,
This works
System.Diagnostics.Process.Start("http://www.codeproject.com/");
BUT if a browser is open it uses that instead, which is quite anoying for the user I spose.
|
|
|
|
|
Thank you for your response!
This will work perfectly for my situation.
Have a blessed day!
|
|
|
|
|
np, have a good day yourself
|
|
|
|
|
This piece of code runs well for a new browser.
Dont forget to give a reference to ExplorerLib.dll
ExplorerLib.InternetExplorer explorer;
ExplorerLib.IWebBrowserApp webBrowser;
explorer = new ExplorerLib.InternetExplorer();
webBrowser = (ExplorerLib.IWebBrowserApp) explorer;
webBrowser.Visible = true;
webBrowser.Url or something like that = "yourURL";
|
|
|
|
|
where to give the url there is nothing
webBrowser.Url or something like that
|
|
|
|
|
You could also do the following:
Add reference to "Microsoft Internet Controls" (that is SHDocVw.dll) in the COM tab.
Use this code:
string URL = "http://www.codeproject.com";<br />
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorerClass();<br />
object empty = null;<br />
ie.Navigate(URL, ref empty, ref empty, ref empty, ref empty);<br />
ie.Visible = true;
This should solve your problem.
|
|
|
|
|
Is there a methode for recording sounds from a microphone,
creating a wav, wma or mp3 file?
I'm using VS.NET 2002.
Thanks in advance for your help ,
Thomas
|
|
|
|
|
The easiest way would be to use DirectX 9 managed APIs. To record sound isn't too hard, but it does create additional dependencies that require a separate install for DirectX 9 and the managed assemblies.
Otherwise, just search CP. There's several articles that discuss other ways to do it, P/Invoking several Win32 APIs to do it.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I'm writing a C# app which uses some xslt scripts to transform XML files. The XSLT files are embedded as resources in the application assembly. Some of these files use 2 input: one is the XML file to be transformed, another is an XML fragment contained in a distinct file, accessed via document() XSL function. The location of this second input file is known at runtime, and is passed from the application to the Transform method using an XsltArgumentList.
The code I have written works fine if I load the XSLT from file, but the transformation *fails to access the 2nd input document when I load it from the assembly resources*. In both cases, the parameter is received correctly and the transformation works except for the external document data, which in one case are completely ignored as if the document did not exist. Maybe I'm missing some credentials, or what else can be wrong? Thx guys for helping a newbie...
Here's a dummy sample:
--- let's say we have a dummy contacts list in a XML file, and I want to prepend some XML coming from another file; the XSLT looks like:
<xsl:param name="newdoc"/>
...
<xsl:template match="TheRoot">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="document($newdoc)"/>
<xsl:copy-of select="TheContacts"/>
</xsl:copy>
<test1><xsl:value-of select="$newdoc"/></test1>
<test2><xsl:copy-of select="document($newdoc)"/></test2>
</xsl:template></code>
where the full path for the file to be prepended is passed as "newdoc" parameter. I add the <test> tags above to examine the parameter value.
--- the code for the transformation follows: it works fine if I use the Load from file method, but FAILS if I load the XSLT from resources. In both cases, I can be sure that the parameter is received correctly, but it seems that the XSLT loaded from resources CANNOT ACCESS the file using document() function (<test2> above is always empty, while <test1> contains the file name as expected):
// setup params
XsltArgumentList xlArgs = new XsltArgumentList();
xlArgs.AddParam("newdoc", "", "c:\\Work\\SomeDummyFile.xml");
// load input XML
XPathDocument doc = new XPathDocument("c:\\Work\\theInputFile.xml");
// open output
XmlTextWriter wr = new XmlTextWriter("c:\\work\\theOutputFile.xml"), null);
wr.Formatting = System.Xml.Formatting.Indented;
// transform
XmlUrlResolver res = new XmlUrlResolver();
res.Credentials = System.Net.CredentialCache.DefaultCredentials;
XslTransform xslt = new XslTransform();
// xslt.Load("c:\\work\\Test.xslt"); <-- loading from file works!!!
Assembly a = Assembly.GetExecutingAssembly();
Stream st = a.GetManifestResourceStream("MyNamespace.Test.xslt");
xslt.Load(new XmlTextReader(new StreamReader(st, Encoding.UTF8)), res, null);
xslt.Transform(doc, xlArgs, wr, res);
wr.Close();
|
|
|
|
|
one word: "Security"....
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconxsltransformclassimplementsxsltprocessor.asp[^]
"Most of the Load methods also take Evidence as a parameter. The Evidence parameter is the System.Security.Policy.Evidence that is associated with the style sheet. The security level of the style sheet affects the security level of any subsequent resources it references, such as the script it contains, any document() functions it uses, and any extension objects used by the XsltArgumentList."
I had the same problem...
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
I would like to know how I could do drag and drop from my application to the windows file explorer in a Winrar style.
What I'm trying to reproduce is that for example in Winrar when you drag a file out of an archive the file is not extracted before the DoDragDrop would be called but only when the drop happens.
How can I catch the event of dropping the file on another application so that I can do some sort of processing only at that time?
|
|
|
|