|
Hi all.
I need to get internet expl. selected text to process in my C# application.
Any clear help will be appreciated.
|
|
|
|
|
Get the IHTMLDocument2 interface from the WebBrowser control (include the Microsoft.mshtml assembly in your project and get it from the WebBrowser.Document property, which may be null), then get the selection property (which may be null). This gets an IHTMLSelectionObject from which you can use the type property to determine the selection type (text, insertion point, control, etc.) and the createRange method to create a suitable object to work with the actual selection (like a TextRange ). See the documentation for IHTMLSelectionObject in the MSDN Library for more detailed information).
-----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-----
|
|
|
|
|
Ughhh ugly and messy COM interfaces. Can't wait for Whidbey's managed web browser control.
The graveyards are filled with indispensible men.
|
|
|
|
|
I haven't had a time to look at it (or eat, or drink, or breathe) lately. Is the WebBrowser control completely managed (inside and out), or is it just a nicer CCW for the existing WebBrowser COM control (wrapping mshtml and providing IHLink and all that jazz)?
I know our app would definitely benefit from that, especially when the Microsoft.mshtml.dll assembly is almost 8 MB!
-----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 didnt understand what you tried to tell.
What web browser? Do i have to create mine in order to get the selected text?
Say there is an instance of ie open , after that my app is run , and typing a hotkey I see the selected text. I want this.
|
|
|
|
|
"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.
|
|
|
|