I am trying to write programme code in Visual Studio.Net to make a btn return different values if clicked more than once.Eg the button I am trying to write code for would be similar to one found on a mobile phone, ie it can enter both numerical and alphabetical characters.
For example if the button contained the digit 2 as well as the letters abc, Clicking a button for the first time causes the first letter of the sequence to be added to a string (a). Rapid clicking should advance within the sequence ie, 2 clicks causes the second letter to be entered (b), 3 clicks causes the 3 letter (c). After reaching the end of the sequence, the sequence restarts (a). Selecting a letter from a sequence must be completed within 1 second otherwise the sequence restarts(a).
What I cannot work out is the code required to measure the time in between clicks and the function description to indicate a button has been clicked more than once or multiple times.
For the time monitoring you should use the System.Timers.Timer Class.
create a timer object System.Timers.Timer BtnTimer
and set the interval to 1000 (1 second)
use something like flag (BOOL blDuringClick;) that will determine whether you are during a 'rapid' click time, on the button's click event set blDuringClick = True and use BtnTimer.stop and then BtnTimer.Start(so each click resets the timer), and on the Elapsed event for the timer set blDuringClick = False
now when you handle click events check if you are during the rapid click by checking blDuringClick's value.
For checking the character,
there are many ways to do it, maybe the easiest one is to have a string for each button holding something like "2ABCabc" and then cycle through the chars (hold an index, and remember to check bounds).
today i installed VS.Net and after that i downloaded some code samples from microsof's site, and when i try to open the sample project, a message comes and says, "Your project file version is '7.10'. Visual Studio .NET can only load version 7.0 project files".
how can i get the higher version ...? is it available like a patch/update..????
Use System.IntPtr. Use IntPtr.Zero where you would pass a NULL.
A common pattern is to wrap the HANDLE with a simple wrapper class that implements the IDisposable interface and has a finalizer (the ~ClassName function in C#, or an override of Finalize in VB.NET) which calls Dispose. Inside your override of Dispose you should suppress the finalizer using GC.SuppressFinalize (this allows the object's memory to be freed earlier if Dispose is called explicitly) then call whatever function frees the HANDLE.
I am building an application that will use Microsoft's ODBC .NET Data Provider. That is an extension that is not installed by default with the .NET framework. I would like my application to detect whether the data provider has been installed on the machine where it is running during startup.
You cannot do it using that technique. Probably, the only way to do it is using a 3rd party component. Try Aspose.com. I have not tried their Excel component, but their PDF one worked very well - we stream the PDF directly to the browser, no temp file.
I read from a Microsoft guide on Performance (www.serverside.net) and it says that Windows Services uses Workstaton GC even Server has multiple CPU. The conclusion seems to be that we should not host TCP Remoting in WinSvcs.
(1) Is the above true or false ? (I have seen various opinion on this)
(2) How to configure to use Server GC (
I have some idea but not sure about it. But I will open source it so everyone can comment later.
If the .NET Framework is implicitly loaded, by loading a managed executable or loading a library into a process where the Framework isn't already loaded, the Workstation GC will always be used. To use the Server GC, you must explicitly load the framework by calling CorBindToRuntimeEx, exported by mscoree.dll.
Thanks for your "real-time" response.
I have read both articles: The 1st is great in concept and the 2nd has
My Company blocked Blogging so I have to wait till after 6pm at home to read.
I basically modified Steven Pratschner's code and made a Windows Services (.net) that calls Unmanaged API CorBindToRuntimeEx to run a remoting host code. (Just like you said). It really works as a TCP Remoting Host.
Though My problem is that I would rather not use my code since it does not have PROVEN scalability in production.(and I do not have 8-CPU machine anyway)
Is there any code I can download that has been proven ?
PS. I have no problem upload my code onto www.codeproject.com, so that we developer can improve and test it in this community.
I am using a commercial protocol stack that calls a registered callback function to receive data when the driver it talks to has done it's thing and has new data to report. The sample code that came with the stack uses PostMessage from the Win32 world to send a local copy of the data back to the host GUI/window message parsing thread. This is to avoid thread crossing problems, etc.
I want to do the same thing with a new .NET application. But, I can't see a way to do it. I can't spawn a new thread, call invoke, etc. because I have to follow the signature of the callback function. I can't just add the callback function into my form namespace for the same reason. I can't call PostMessage because .NET hides the message pump parsing and I don't know how to add handling a custom message, assuming I could succesfully send it. IMessage doesn't see to apply... It seems like this would be an easy question.
I'm developing a setup project. Can you help me with these queries
- How do I get the installation path the user enters at runtime
- How can I copy some files to specified location eg:C:\temp
- How can I check for existence of a particular folder? Is it possible with Launch Condition. If not how can I do it?
-'User Interface -Add Dialog '- How can I get the values entered in the textboxes at runtime and pass it to my application?
- Custom Action properties , properties- Installer Class - true / false signify ?
- How do I start an application when Installation completes ?
Thankx in advance
I'm a little confused about what you are trying to do here. ASCII is not capable of displaying the full range of letters for all character sets. That is one of the reasons why we have Unicode!
It seems like expected behavior to me, or at least not unexpected. If you have an international application, then you should stick to unicode only, if at all possible. Heck, you should probably stick to unicode even if you're not.
If your challenge is that you need to transmit data over a medium that only supports ASCII, consider Base64 encoding.
For example the data sent was "abcdefüüü"... its a unicode string with special characters.. now the programmer(not a .NET programmer) who sent me the data said that he converted this unicode string to UTF8 first before sending it to the stream...
Now when i got the data from my side, the new string is "abcdefA¼A¼A¼"..
what i need to do is make the string back to "abcdefüüü"..
See "About ASCII Encoding class" in the SDK. The encoding always results in 7 bit characters. It always excludes the extended ASCII characters, i.e. those in the range of 128-255. They will be converted as "?", which has an ASCII byte code of 63.
I do not think you can do what you want with the ASCIIEncoding class. I think perhaps Encoding.Default will work as you expect. This will return an encoding for the system's current ANSI code page. I'm not sure what that means exactly in terms of byte values, but it sounds promising.
I wrote about the difference between ASCII and 8-bit character sets here[^]. The encoding that the .NET Framework refers to as 'Unicode' is UTF-16 (Little Endian). The encoding referred to as 'Ascii' is ISO-646-US, a 7-bit encoding. Only the code points from 0 to 127 have any meaning; any code outside this range is simply translated to '?'.
If you want to convert an array of bytes representing characters into a System.String object, you must know what character set they represent, and what Windows code page that corresponds to. Windows code page numbers are listed at http://www.microsoft.com/globaldev/reference/WinCP.mspx[^].
For converting UTF-8 to a System.String, you can use the object returned by the System.Text.Encoding.UTF8 property.