|
|
Can the use of GlobalLock solve the purpose?
If yes, then how to use it in C#? how to get Handle to Clipboard ?
please guide
|
|
|
|
|
No, because the clipboard contains pointers to objects. All GlobalLock would do (and you'd P/Invoke that like anything else, using GCHandle to pin reference types in memory) is lock your object to prevent it from being overwritten.
The problem you're facing is a problem that all application face. Either use a clipboard ring like Office has (and manage that yourself - ever so carefully) or learn to deal with the consequences as every other application does.
The best way is to avoid using the clipboard when you don't need it. Marshal objects to other processes and what not when possible.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi all,
I have just moved some Enumerations from one assembly to a new one. However, the solution no-longer builds, as the enum's have suddenly become non CLS-Compliant. Moving them back to the old assembly fixes the problem! Is it really the case that you cannot use enum's from different assemblies?
I have google'd for the problem, but the only things I could find said to explicity define the enum as type int, which I have done without success.
Any ideas?
Thanks in advance,
Simon.
|
|
|
|
|
Simon_uk wrote:
Is it really the case that you cannot use enum's from different assemblies?
I use enums from different assemblies all the time. In fact you probably do too when ever you use an enum from the Framework itself.
Can you post the exact error message? It might help narrow the problem.
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
Thanks for your response.
Colin Angus Mackay wrote:
I use enums from different assemblies all the time. In fact you probably do too when ever you use an enum from the Framework itself.
Yes, I realise this, which is what makes it even stranger (to me anyway!).
Ok, to recreate this problem create a new solution and add two new projects (I added a class library (proj1) and a windows control library(proj2)). I added a new file to proj1, which contained the following enum definition:
<br />
public enum MyEnum<br />
{<br />
Monday,<br />
Tuesday,<br />
Wednesday<br />
}<br />
In UserControl1 in proj2, I added a new property of Type MyEnum. This builds successfully. I then added the line:
<br />
[assembly: CLSCompliant(true)]<br />
to the AssemblyInfo.cs file (and added using System;)
Now re-building gives this error: "c:\Working\testenum\controls\UserControl1.cs(43): Type of 'controls.UserControl1.Day' is not CLS-compliant".
Any clues?
Thanks again for your help,
Simon.
|
|
|
|
|
Did you add the line: [assembly: CLSCompliant(true)] to both projects?
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
No, I thought I had tried that, but obviously not because it now works!! Thanks very much for your help - most appreciated!
Cheers.
|
|
|
|
|
Is there any way in .NET to get machine constants (I need to build an application licensing software). If not, how far can I get by using only managed code?
Thanks,
Daniel
|
|
|
|
|
Don't know exactly what you mean by machine constants, but I think maybe the Environment class could be helphful.
Take a look at the documentation[^].
www.troschuetz.de
|
|
|
|
|
things like HDD serial number, processor serial number, etc.
I’ve almost forgotten… it must work on Win 98 as well
|
|
|
|
|
Mmh, I'm pretty sure there is no easy way to get this with managed code.
Sorry, maybe someone else can help!
www.troschuetz.de
|
|
|
|
|
your wrong foo!
/\ |_ E X E GG
|
|
|
|
|
In some way I was, but I already corrected myself and I pointed him to WMI.
And that's exactly what the article uses, you want him to read. Of course on condition that I found the right article as you provided no link.
www.troschuetz.de
|
|
|
|
|
yes I did. just look harder.
/\ |_ E X E GG
|
|
|
|
|
Yeah, now I see. Think the tiny delay of your answer made me missing it at first sight
www.troschuetz.de
|
|
|
|
|
Probably. I forgive you.
/\ |_ E X E GG
|
|
|
|
|
|
The information you need can be accessed by Windows Management Instrumentation (WMI).
.NET offers ways to work with WMI. Take a look at this article[^].
www.troschuetz.de
|
|
|
|
|
Thanks man!
I didn't know that it is possible to instal WMI on 98.
Thanks,
Daniel.
|
|
|
|
|
You can get all of this with dot .net. Actually there is a HDD serial number article on this site!!! Oh man!
/\ |_ E X E GG
|
|
|
|
|
I ca't find it..
|
|
|
|
|
I think he is referring to this[^].
Actually it use the WMI like i suggested, so it will give you a good example.
www.troschuetz.de
|
|
|
|
|
Yes, it is the only one , and it uses WMI. I think this is the only way to do this with managed code.
|
|
|
|
|
Yeah, I think you won't get around this
Besides, on searching I found another article[^] on WMI which may help you.
Happy Programming
www.troschuetz.de
|
|
|
|