|
Buy the software, sounds like it will be cheaper.
|
|
|
|
|
Keith Barrow wrote: You could also sync with the clock in a connected GPS system, I think these need to be accurate
Not necessarily, see my post to the lounge (http://www.codeproject.com/Lounge.aspx?msg=3558840[^]) which shows real data proving the inaccurateness of a GPS unit clock.
|
|
|
|
|
Well, if the clock on the PC is wrong and you have no internet connection, its going to be hard to know what the time is. Impossible perhaps. What you do have is Environment.TickCount , which is the number of very small 'ticks' (order of tens of nanoseconds I think) since start up. If you know the time is correct when you start up, you can use this and a bit of maths to keep telling the correct time even if the clock changes.
Regards,
Rob Philpott.
|
|
|
|
|
Hello Rob
will this workout if i dont run the system regularly?
i want to implement a trial version kinda thing
for thirty days
were i dont have internet
|
|
|
|
|
No, it won't I'm afraid. That's a tricky problem but have a look around and I'm sure you'll find some discussion on it on the net. Instead of a 30 day trial, would being able to only run the app a certain number of times be an alternative?
Regards,
Rob Philpott.
|
|
|
|
|
Without an external clock source, which cannot be altered by the user, you can't do this with complete reliability.
However, you can set up a service (which must be running in order to use your app) which monitors the current time, and records it. If it is changed backwards, then it can cause a "validation failure" on your app. This can't catch every thing, and it has to be carefully done (avoid Summer time changes causing a problem, etc.) but it can be reasonably effective.
Other options:
1) Run time limited to n hours. After your app has executed for n hours, refuse to start. This tends to be more reliable (and more friendly) as people know where they are.
2) Function limited version.
To be honest, any trial protection is a pain for honest people, and a challenge for the dishonest. It generally isn't too difficult to circumvent and you can spend more on adding it to your app than you save in lost sales...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
hey guys..i want to change wordS' styles in a single cell of my datagridview
for example in a cell i have "AsdAsd.CvbCvb"..i want it to make as AsdAsd CvbCvb..to do that i declared two cellstyle
DataGridViewCellStyle mystyle1 = new DataGridViewCellStyle();
DataGridViewCellStyle mystyle2 = new DataGridViewCellStyle();
mystyle1.Font = new Font(dataGridView1.Font, FontStyle.Regular);
mystyle2.Font = new Font(dataGridView1.Font, FontStyle.Italic);
and to get the words in my cells i made this
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 1; j < dataGridView1.Columns.Count; j++)
{
string split = dataGridView1.Rows[i].Cells[j].Value.ToString();
string[] split2 = split.Split(new char[] { '.' });
foreach (string item in split2)
{
dataGridView1.Rows[i].Cells[j].Value = split2[0].ToString()+"/*/*" + split2[1].ToString();
}
}
}
but the point is that i dont know how to apply that styles to the words i got by splitting?
can anyone suggest me a way
vemedya.com
|
|
|
|
|
I think you can create two classes, one inheriting from DataGridViewColumn and the other one from DataGridViewCell, where you can use a RichTextBox control to show your data with the format you need. I have never done this, but I guess it is not too hard. Read the documentation about these two classes.
On the other hand, I would like to help you improve your code:
All of these lines (I have added some comments):
string split = dataGridView1.Rows[i].Cells[j].Value.ToString();
string[] split2 = split.Split(new char[] { '.' });
foreach (string item in split2)
{
dataGridView1.Rows[i].Cells[j].Value = split2[0].ToString()+"/*/*" + split2[1].ToString();
}
Give the same result as:
dataGridView1[j,i].Value = dataGridView1[j,i].Value.ToString().Replace(".", "/*/*");
But there is a difference: if you do not have a "." char, your code would also throw an exception.
|
|
|
|
|
As far as I know there is no way to do this with the 'standard' DataGridViewTextBoxColumn or DataGridViewTextBoxCell .
You can do it with the DataGridViewRichTextBoxColumn or Cell.
RichTextBox Cell in a DataGridView[^], might help.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
You can't use the styles because they apply to the ENTIRE cell, not just one little piece of content in it.
You have to write your own custom DataGridViewColumn implementation to pull this off. There are examples out there, you just have to Google for something like "Custom DataGridViewColumn" for them.
|
|
|
|
|
thanks for your asnwers guys..i will look at the examples and search more deeper.. because iam not that much professional yet to create a Custom DataGridView
vemedya.com
|
|
|
|
|
Any of you geniuses know how to develop an IME (Input Method Editor) in C# or know of a good article on how to do it? I have been "Googling" for some time now and not found anything useful; mostly links on how to enable the default MS ones for textboxes, etc. I am guessing a lot of PInvoke will be involved... any ideas? I haven't got a clue where to start... :-|
Thanks
|
|
|
|
|
What do you mean by "Input Method Editor"? The basics of an editor are largely the same: read input key strokes, format the data according to the rules of the editor, display in the relevant window, save to a file as and when necessary. Google has lots of samples.
Just say 'NO' to evaluated arguments for diadic functions! Ash
|
|
|
|
|
|
Yes, looks like a heck of a job to me. I have already created one in WinForms, but that is application specific. I want to add something to the system tray so a user can switch between normal input and IME and the text will be entered on whatever application they are using. Oh well... a lot of homework to do then... LOL.
Thanks anyway.
|
|
|
|
|
* edit to make a new post with this question *
|
|
|
|
|
Is there any method for detection of facila feature points in openCV??
|
|
|
|
|
|
Hi all,
I have a prob ,how we can read the registry keys in c# and display or write it into a text file
Please help
Thanks in advance
Rakesh
|
|
|
|
|
Do a search on the internet - you will get tons of answers.
See here[^] for the first link my search returned.
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
My latest tip/trick
|
|
|
|
|
Navigate the Given Link to open Google Search Engine for tons of Answer for your question
How to Read Registry Key[^]
Hope it Will works for you.
|
|
|
|
|
Include the required Header Files and then open ur required key
RegistryKey Key = Registry.CurrentUser;
Once Opening the key open ur sub key as needed..
RegistryKey SubKey = Key.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders");
Read the values of sub keys into string (if it is a string else required data type)
string str = SubKey.GetValue("AppData").ToString();
Then ur almost done write this str value into file stream, so that ur task is acheived....
If u like my answer.... rate it Thanks
|
|
|
|
|
Pardhu2 wrote: Include the required Header Files
This is the C# forum.
|
|
|
|
|
Here ya go. Paste this code into a class and you're all set:
using System;
using System.Linq;
using Microsoft.Win32;
using System.Collections.Generic;
namespace Marois.Common.RegistryProcedures
{
public static class RegistryProcedures
{
#region enum BaseKeys
public enum BaseKey
{
HKEY_CLASSES_ROOT,
HKEY_CURRENT_CONFIG,
HKEY_CURRENT_USER,
HKEY_DYN_DATA,
HKEY_LOCAL_MACHINE,
HKEY_PERFORMANCE_DATA
}
#endregion
#region Method CreateSubkey
public static void CreateSubkey(BaseKey BaseKey, string KeyToAdd)
{
CreateSubkey(BaseKey, "", KeyToAdd);
}
public static void CreateSubkey(BaseKey BaseKey, string SubKey, string KeyToAdd)
{
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey, true);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.CreateSubKey(KeyToAdd);
}
}
#endregion
#region Method DeleteSubkey
public static void DeleteSubkey(BaseKey BaseKey, string SubKey)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey.DeleteSubKey(SubKey);
}
#endregion
#region Method DeleteSubkeyTree
public static void DeleteSubKeyTree(BaseKey BaseKey, string sSubKey)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey.DeleteSubKeyTree(sSubKey);
}
#endregion
#region Method DeleteSubkeyTreeValues
public static void DeleteSubkeyTreeValues(BaseKey BaseKey, string sSubKey)
{
List<string> nodeNames = GetSubKeyNodeNames(BaseKey, sSubKey);
if(nodeNames.Count > 0)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey = baseKey.OpenSubKey(sSubKey, true);
foreach(string nodeName in nodeNames)
{
baseKey.DeleteValue(nodeName);
}
}
}
#endregion
#region Method DeleteValue
private static void DeleteValue(BaseKey BaseKey, string SubKey, string ValueToDelete)
{
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey, true);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.DeleteValue(ValueToDelete);
}
}
#endregion Method DeleteValue
#region Method GetSubkeyNames
public static List<string> GetSubkeyNames(BaseKey BaseKey, string SubKey)
{
List<string> retVal = null;
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
string[] names = baseKey.GetSubKeyNames();
retVal = (from n in names
select n).ToList();
}
return retVal;
}
#endregion
#region Method GetSubKeyNodeNames
public static List<string> GetSubKeyNodeNames(BaseKey BaseKey, string SubKey)
{
List<string> retVal = null;
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
string[] names = baseKey.GetValueNames();
retVal = (from n in names
select n).ToList();
}
return retVal;
}
#endregion
#region Method GetSubKeyValue
public static object GetSubKeyValue(BaseKey BaseKey, string SubKey, string Node)
{
object retVal = null;
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
retVal = baseKey.GetValue(Node);
}
return retVal;
}
#endregion
#region Method SetKeyValue
public static void SetKeyValue(BaseKey BaseKey, string SubKey, string NodeName, string Value)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey = baseKey.OpenSubKey(SubKey, true);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.SetValue(NodeName, Value);
}
}
public static void SetKeyValue(BaseKey BaseKey, string SubKey, string NodeName, int Value)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey = baseKey.OpenSubKey(SubKey, true);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.SetValue(NodeName, Value);
}
}
#endregion
#region Method _GetRegistryBaseKey
private static RegistryKey _GetRegistryBaseKey(BaseKey BaseKey)
{
RegistryKey key = null; ;
switch (BaseKey)
{
case BaseKey.HKEY_CLASSES_ROOT:
key = Registry.ClassesRoot;
break;
case BaseKey.HKEY_CURRENT_CONFIG:
key = Registry.CurrentConfig;
break;
case BaseKey.HKEY_CURRENT_USER:
key = Registry.CurrentUser;
break;
case BaseKey.HKEY_DYN_DATA:
key = Registry.DynData;
break;
case BaseKey.HKEY_LOCAL_MACHINE:
key = Registry.LocalMachine;
break;
case BaseKey.HKEY_PERFORMANCE_DATA:
key = Registry.PerformanceData;
break;
}
return key;
}
#endregion
}
}
Everything makes sense in someone's mind
|
|
|
|
|
I have a ListView control with 4 columns set to details view. I have implemented a column sort so the user can click a column header and resort the ListView on the desired column. The default sort is column 0.
When the default view is displayed, the user can give the ListView focus, start typing, and ListView will automatically scroll the list finding matches to what is typed. Perfect!
My problem is, when they change the sort column to some other column other than the first. Typing always searches the first column only.
Does anybody know if I can change what column is searched when the keyboard is typed on a ListView control? If so, how?
|
|
|
|