|
perhaps you are looking for something like this[^]?
|
|
|
|
|
Sorry if I wasn't clear.
I want to understand/write/test/build/architect this functionality.
Not purchase it.
|
|
|
|
|
My personal preference is to use the install date/time in a reversable math function and store it in an obscure place in the registry.
Any activation/licence keys would then be tied to the specific date/time of the install and therefore useless for activating other installations of the program.
Of course that makes the keys useless for re-installation purposes on the same system also (after a wipe out and reload of OS), which would be a legitimate use.
One way to identify a system by hardware would be to read the mac address of the NIC. Again far from foolproof as it assumes a system will have a NIC and it won't be replaced, but if you work with a combination of the date/time and MAC address and allow your activation keys to work if either matches the original, you should get pretty good security with minimal false positives.
|
|
|
|
|
Thats a pretty good idea. No matter how many times the user installs or wipes the computer and tries to reinstall, the license expires on the expiration date as defined when the license was created.
Could almost get away with a simple file then. I guess this approach is only as strong as the strength of the Reversible Function ...
Thanks for the suggestion.
-Luther
|
|
|
|
|
Use the registry not a file or all the user has to do is look for a new file in certain areas and delete it.
Elaine
The tigress is here
|
|
|
|
|
If the user finds the file - and deletes it, the software will no longer work.
And unless the user can reverse engineer the function that created the key in the first place, the user cannot create a new file and extend the license.
In the world of ssh and encryption, security by obscurity is generally considered a bad or weak thing. That is one of the reasons why DES, 3DES, AES, etc are public algorithms. Security by hiding things is not quite as secure as using "hard to decode" techniques. It seems that a file created using this premise could very well be public.
I think you have a good point from a practical standpoint though. It may be so timeconsuming and impractical to search the entire Registry for an obscure key ... that no normal user would do it ...
If memory serves me correct, http://www.ssh.com/products/tectia/client/non-commercial.html distributes a license file and http://www.vandyke.com/ actually gives the user a KEY to enter into the software manually. There's no hiding much of anything here.
Given the abovee points, can you elaborate and the danger you think exists in using a license file?
Thanks much,
-Luther
|
|
|
|
|
|
|
The CWD is obtained with GetCurrentDirectory() .
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Try with this code:
CFile file;
if(file.Open(".",CFile::modeRead))
{
MessageBox(file.GetFilePath());
}
Ivan Cachicatari Blog[^]
www.latindevelopers.com
|
|
|
|
|
c+- wrote:
How to get current directory path in mfc??
This Code Will help
CString szCurrentDirectory;
{
CString csPath;
::GetModuleFileName(NULL,csPath.GetBuffer(MAX_PATH),MAX_PATH);
csPath.ReleaseBuffer();
szCurrentDirectory=csPath.Left(csPath.ReverseFind('\\'));
}
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
|
Hi,
I'm using the
Express OLE DB Library[^], I have problem when try to build an application in Visual C++ .NET 2003:
SypODLCommand.h(27): error C3203: 'CRowset' : class template invalid as template argument for template parameter 'TRowset', expected a real type
SypODLCommand.h(27): error C3203: 'CRowset' : class template invalid as template argument for template parameter 'TRowset', expected a real type
SypODLRecordBase.h(53): error C3200: 'int' : invalid template argument for template parameter 'TRowset', expected a class template
SypODLRecordBase.h(53): error C3200: 'int' : invalid template argument for template parameter 'TRowset', expected a class template
SypODLRecordBase.h(53): error C3200: 'int' : invalid template argument for template parameter 'TRowset', expected a class template
SypODLRecordBase.h(53): error C3200: 'int' : invalid template argument for template parameter 'TRowset', expected a class template
SypODLRecordset.h(25): error C3203: 'CRowset' : class template invalid as template argument for template parameter 'TRowset', expected a real type
SypODLRecordset.h(25): error C3203: 'CRowset' : class template invalid as template argument for template parameter 'TRowset', expected a real type
How to fix this errors?
Ivan Cachicatari Blog[^]
www.latindevelopers.com
|
|
|
|
|
need more information...
are either CRowset or TRowset your classes ?
are you using either of those classes anywhere?
can we see the code where you're using them ?
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
The declaration is:
template <typename TAccessor, typename TRowset=CRowset><br />
class CSypODLRecordBase : public CSypODLError<br />
{<br />
...<br />
<br />
CAccessorRowset<TAccessor, TRowset> *m_pSet;<br />
...<br />
};<br />
<br />
<br />
<br />
class CSypODLCommand : public CSypODLRecordBase<CDynamicParameterAccessorEx><br />
{<br />
....<br />
};<br />
My code;
<br />
CSypODLConnection *tmpConn = NULL;<br />
try<br />
{<br />
USES_CONVERSION;<br />
tmpConn = new CSypODLConnection();<br />
tmpConn->OpenFromInitializationString(T2OLE(path));<br />
m_Conn = tmpConn;<br />
}<br />
catch(CSypODLException& e)<br />
{<br />
if(tmpConn != NULL)<br />
{<br />
if(tmpConn->IsOpen()) <br />
tmpConn->Close();<br />
delete tmpConn;<br />
}<br />
e.DisplayError();<br />
return false;<br />
}<br />
|
|
|
|
|
Hello all,
I have dialog based application and I have UDP connection running on bacground ( this takes about 1% from 100Mb network capacity ). Each time when I receive an UDP packet so then the communication class send a message to the main window. And when I drag the main window for the top blue strip (with min and max buttons) so then I lost messages from communication class ...
Why?
Do you have any solution suggestion?
Thank you for any advice and direction to I could go ....
KaMinek
|
|
|
|
|
Are you saying that when you move the window by dragging the title bar it no longer receives messages? Does it happen only while you move it or do you keep not getting the messages after you stop moving it?
Are you sure the messages are lost or maybe just queued behind the window movement messages?
Are you sure the (I assume) custom messages you sent to the window are of the proper WM_USER+X range and do not happen to have the same IDs are system messages?
|
|
|
|
|
The messages are not WM_USER but they are RegisterWindowMessage(s).
Yes, when I drag window by the title bar there hapanned something and my registered message dont swim up in the main window WindowProc handler. This is happaned even if I only press left mouse button on the title bar.
Why? Why? Why?
|
|
|
|
|
Hello
I have installed farsi font on an english version of Windows. I can press Alt+Shift to switch between farsi and english.
I have written a program that has farsi text used with TextOut function and also the window caption is in farsi language and also some buttons and some static texts.
this program runs correctly on my computer, but when I move it to another computer whitch farsi language has been installed on it, the texts are not shown correctly.
I hate using Unicode. how can I notify Windows that my program uses Codepage 1256 and Windows uses this codepage to show texts? (charset: Arabic(Windows))
|
|
|
|
|
hi, I just started to look at windbg, but having problem with the memory dump file....
I should be able to open the file inside the visual studio and attach with my application, but wasn't able to do so, seems like if i open the project the dump file goes away....
thanks.
|
|
|
|
|
WINDBG actually goes away if you open Visual Studio? Not exactly sure what you're doing, but you should be able to open windbg on a memory dump and infact you can even view source from windbg using the symbols. However opening VS should not conflict with WINDBG. Alternatively you can use a different editor to view your source.
8bc7c0ec02c0e404c0cc0680f7018827ebee
|
|
|
|
|
SetupDiClassGuidsFromName(nameof_class,&class_GuidList,
4,&required_size);
How can i find out if the class_GuidList is a device setup class or an interface class, bcos i need a device setup class to use the function
SetupDiGetClassRegistryProperty()
|
|
|
|
|
How to communicate with a micro controller using USB port?
|
|
|
|
|
Using an USB port is not as easy as accessing a serial port. The device connected to your USB port needs to enumerates (it will send his vendor ID and Product ID) in order for the OS to load the appropiate driver. The OS looks through inf files to match the ID's with a specific driver. Once the driver has been loaded, you can then, in your program, retrieve a handle to the driver with the function CreateFile and then send and retrieve information using the DeviceIOControl function.
Now my question is: what kind of micro-controller are you using and what do you need to do exactly ?
Normally, the driver is shipped with the USB device so you should find all the documentation with it.
|
|
|
|
|
Hello Mr. Cedric Moonen,
Thanks a lot for help. I am using Mitsubishi micro controller M16C/62P. If there is any ready communication code is available on any of the sites, I need not reinvent the wheel. Can you advise any?
Thanks and best regards,
Paresh
|
|
|
|