|
Hello all,
I am building Win32 application. My requirement is to expire this application on a particular date let say for e.g. on 31 december, 2008. If i use system's local time then user will be able to run it by changing its date/time.
So is there any way to get global time in my VC application. Please help me out in this situation.
Any help would be greatly appreciated.
Thanks
|
|
|
|
|
If client PC is connected to internet then you can ask one of the many time servers for the current time. Otherwise as far as I know there is no way to find the correct time locally. May I ask why you need to do so. Are you trying to build a demo application which expires after a number of days. In that case you should store the time of the installation somewhere in the user PC and check against it.
Saurabh
|
|
|
|
|
Thanks for your reply. I also thought about the suggestion for getting global time from server till PC is connected to Internet that you have mentioned. But that's not my requirement. what could be the other way to do so?? As I told you that i need to expire it on particular date. Your suggestion would work if i need to expire it after number of days from its installation.
Please help me out if you still have some suggestions. by the way thanks again for you reply.
Thanks
|
|
|
|
|
As far as I know there is no way to determine the correct time irrespective of the time user has set in the machine. Actually if you think about it there is no such thing as correct time. In Singapore the current time is 15:15 07-11-08, in India it is 12:45 07-11-08 but in Los Angeles it is 11:15 PM on 06-11-08. So which one will you choose?
-Saurabh
|
|
|
|
|
yaa... I think you are right. Let me think over hoe to accomplish it. Thank you very much for your replies.
Thanks
|
|
|
|
|
I think you should be asking why do I need to do that? What actually am I trying to accomplish?
-Saurabh
|
|
|
|
|
I didn't get you in your previous reply. If you are asking what i am trying to accomplish is clear. I want to expire my application on particular date. but i can't use local time/date to check it as user may change its local time/date. That's why i am thinking of some other way.
Please help me if u have some suggestions for me.
Thanks
|
|
|
|
|
I don't think that is the goal.
If that is the goal then may I ask why do you want you application to suddenly stop working for every user. What purpose the purpose of this?
There is no suggestion I can give you for finding time, even if you assume that you want time in a particular time zone. As far as I know there is no way for a standalone computer to determine current time. In fact no device can have such capability because time is not absolute.
-Saurabh
|
|
|
|
|
Hemang Raval wrote: Your suggestion would work if i need to expire it after number of days from its installation.
If you already know that 31-Dec-2008 is the expiration date, and you installed the software today, then simply set the value to 53.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Hello,
you can save the current date every time the program runs, so you can check against the date for alterations.
Hope this helps
Bekir.
|
|
|
|
|
What if date has been altered before program was installed?
Saurabh
|
|
|
|
|
Hello,
Either limit the number of days also or if you are providing a license, do not proceed if the supplied date is earlier than the start date of the license.
You could also use both, if you want it.
The only drawback of this approach is that, if the user changes the date to an earlier date for any purpose (reports ), and mistakenly opened your program also, he/she would be pissed off .
Bekir.
|
|
|
|
|
Actually that is the interesting thing. OP do not want to disable application after a given number of days, he wants to disable it on a particular date.
-Saurabh
|
|
|
|
|
My suggestion is to follow what beko said. In addition to that you can mark it as expired once the expiry date reached. After that you should not allow the application to continue working even if the date is changed back.
|
|
|
|
|
Thank u to all. I really appreciate your help. I got a clue from all of your replies. Again thanks a lot to u all.
|
|
|
|
|
I am working on an mfc application in which I am opening a dialog box containing smileys on button click. Now what I want is to close the dialog dialog box with smileys when mouse click event is fired anywhere on the screen.
Thanks
Dhiraj Kumar Saini
|
|
|
|
|
You can use SetCapture, then you will get the click event anywhere on the screen and at that time you can check the coordinates and close the dialog if it is outside the dialog.
|
|
|
|
|
Can you help me out with some article.
|
|
|
|
|
|
Change style of IDC_FEEDLIST to owner draw fixed and check has strings.
|
|
|
|
|
thanks but what DDX_ to use? I tried DDX_Control it crashed the app
devy
|
|
|
|
|
Did u do what manish told u to do. well DDX_Control works for me.
|
|
|
|
|
devvvy wrote: I tried DDX_Control it crashed the app
Because you failed to set LBS_OWNERDRAWFIXED and LBS_HASSTRINGS styles.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
I have the following two classes :
1) A CDialog derived CDlgClass
2) A CCmdTarget derived CAnotherClass
I am unable to disable an item of the launched context-menu.
Please follow the comments below to track the problem.
In DlgClass.cpp
ON_COMMAND(ID_MENUITEM1, OnMenuItemEdit1Clicked)
ON_UPDATE_COMMAND_UI(ID_MENUITEM1, OnUpdateMenuItemEdit1)
VOID CDlgClass::OnContextMenu(CWnd* pWnd, CPoint point)
{
m_pAnotherClass->ShowContextMenu( this, point);
}
void CDlgClass::OnMenuItemEdit1Clicked()
{
}
void CDlgClass::OnUpdateMenuItemEdit1(CCmdUI* pCmdUI)
{
pCmdUI->Enable(FALSE);
}
In AnotherClass.cpp
VOID CAnotherClass::ShowContextMenu(CWnd *pDlg, CPoint point)
{
CMenu cmCtxtMenu;
cmCtxtMenu.LoadMenu(IDR_MENU_OPTIONS);
CMenu *pcmPopupMenu = cmCtxtMenu.GetSubMenu(0);
ASSERT(pcmPopupMenu);
pcmPopupMenu->TrackPopupMenu (TPM_RIGHTBUTTON|TPM_LEFTALIGN, point.x, point.y, pDlg );
}
What could be the problem with disabling the menu item although I could actually activate the menu item handler
properly?
The function CDlgClass::OnUpdateMenuItemEdit1(CCmdUI* pCmdUI) itself is not getting called before launch of the menu,
when the menu is loaded in a different class.
What could be the reason ?
Thanks in Advance.
|
|
|
|
|
SherTeks wrote: The function CDlgClass::OnUpdateMenuItemEdit1(CCmdUI* pCmdUI) itself is not getting called
See this post[^].
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|