2017年9月27日 星期三

Git tag



New tag                                                                             
a 就是標籤名稱,-m 代表該標籤說明
01
02
03
04
05
$ git tag -a v1.4 -m 'my version 1.4'
$ git tag
v0.1
v1.3
v1.4


Commit Tag                                                                         
git push origin v1.5
or
git push origin --tags

Delete local Tag                                                                  
git tag -d v12345



Git 如何 checkout 某個tag                                                                             

先利用 git clone 抓取整個repository 再利用 git tag -l 列出全部的tag清單 最後用 git checkout from http://miscflame.blogspot.tw/2010/10/git-checkout-tag.html

2017年9月5日 星期二

Visual Studio 2010 如何得知電腦休眠/待機狀態使用


【C++】Visual Studio 2010 如何得知電腦休眠/待機狀態使用 WM_POWERBROADCAST

有兩種方式 首先開啟[MFC類別精靈]                                                                           
第一種新增虛擬函式 virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CTestPowerDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
  if (message == WM_POWERBROADCAST)
 {
    if (wParam== PBT_APMSUSPEND)//休眠
      AfxMessageBox(L"System is suspending operation.");
  }
  return CDialogEx::WindowProc(message, wParam, lParam);
}

第二種新增訊息 afx_msg UINT OnPowerBroadcast(UINT nPowerEvent, UINT nEventData);
BEGIN_MESSAGE_MAP(CTestPowerDlg, CDialogEx)
 ON_WM_POWERBROADCAST()
END_MESSAGE_MAP()

UINT CTestPowerDlg::OnPowerBroadcast(UINT nPowerEvent, UINT nEventData)
{
  if (nPowerEvent == PBT_APMSUSPEND)//休眠
    AfxMessageBox(L"System is suspending operation.");
  return CDialogEx::OnPowerBroadcast(nPowerEvent, nEventData);
}
第三種  新增訊息 : ClientTool 是用這個方式

BEGIN_MESSAGE_MAP(CRtkDashClientDlg, CDialog)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_MESSAGE(WM_POWERBROADCAST, &CRtkDashClientDlg::OnPowerMsg)
END_MESSAGE_MAP()

afx_msg LRESULT CRtkDashClientDlg::OnPowerMsg(WPARAM wParam, LPARAM lParam)
{
#if 1
switch(wParam)
{
case PBT_APMQUERYSUSPEND: //進入suspend
m_AdaptOpened = FALSE;
::AfxMessageBox("PWD to sleep");
break;
case PBT_APMRESUMEAUTOMATIC: //resume回來
while(ChkRtkAdapter() == false)
{
Sleep(1000);
}
break;
}
#endif
return TRUE;

}



from : http://rockpenny.pixnet.net/blog/post/828136-%E3%80%90c%2B%2B%E3%80%91visual-studio-2010-%E5%A6%82%E4%BD%95%E5%BE%97%E7%9F%A5%E9%9B%BB%E8%85%A6%E4%BC%91%E7%9C%A0-%E5%BE%85%E6%A9%9F