2012年2月29日 星期三

[VC(Visual C++) ]- 05_定時判斷是否可連上網際網路並做時間記錄

[VC(Visual C++) ]- 05_定時判斷是否可連上網際網路並做時間記錄



本篇分享05_定時判斷是否可連上網際網路並做時間記錄(Timer 應用)程式,有興趣的(C/P)同好,歡迎來http://filemarkets.com/file/jashliao/77abb024/索取,因為我不會上傳檔案分享哈哈 ^ ^












主要程式碼



// OfflineDlg.cpp : implementation file

//

 

#include "stdafx.h"

#include "Offline.h"

#include "OfflineDlg.h"

#include <intshcut.h>

#include <Wininet.h>

#ifdef _DEBUG

#definenew DEBUG_NEW

#undef THIS_FILE

staticchar THIS_FILE[] = __FILE__;

#endif

FILE *fp=NULL;

/////////////////////////////////////////////////////////////////////////////

// CAboutDlg dialog used for App About

 

class CAboutDlg : public CDialog

{

public:

    CAboutDlg();

 

// Dialog Data

    //{{AFX_DATA(CAboutDlg)

    enum { IDD = IDD_ABOUTBOX };

    //}}AFX_DATA

 

    // ClassWizard generated virtual function overrides

    //{{AFX_VIRTUAL(CAboutDlg)

    protected:

    virtualvoid DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

    //}}AFX_VIRTUAL

 

// Implementation

protected:

    //{{AFX_MSG(CAboutDlg)

    //}}AFX_MSG

    DECLARE_MESSAGE_MAP()

};

 

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

    //{{AFX_DATA_INIT(CAboutDlg)

    //}}AFX_DATA_INIT

}

 

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

    CDialog::DoDataExchange(pDX);

    //{{AFX_DATA_MAP(CAboutDlg)

    //}}AFX_DATA_MAP

}

 

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

    //{{AFX_MSG_MAP(CAboutDlg)

        // No message handlers

    //}}AFX_MSG_MAP

END_MESSAGE_MAP()

 

/////////////////////////////////////////////////////////////////////////////

// COfflineDlg dialog

 

COfflineDlg::COfflineDlg(CWnd* pParent /*=NULL*/)

    : CDialog(COfflineDlg::IDD, pParent)

{

    //{{AFX_DATA_INIT(COfflineDlg)

    m_v1 = _T("");

    //}}AFX_DATA_INIT

    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32

    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

 

void COfflineDlg::DoDataExchange(CDataExchange* pDX)

{

    CDialog::DoDataExchange(pDX);

    //{{AFX_DATA_MAP(COfflineDlg)

    DDX_Text(pDX, IDC_EDIT1, m_v1);

    //}}AFX_DATA_MAP

}

 

BEGIN_MESSAGE_MAP(COfflineDlg, CDialog)

    //{{AFX_MSG_MAP(COfflineDlg)

    ON_WM_SYSCOMMAND()

    ON_WM_PAINT()

    ON_WM_QUERYDRAGICON()

    ON_BN_CLICKED(IDC_BUTTON1, OnButton1)

    ON_WM_TIMER()

    //}}AFX_MSG_MAP

END_MESSAGE_MAP()

 

/////////////////////////////////////////////////////////////////////////////

// COfflineDlg message handlers

 

BOOL COfflineDlg::OnInitDialog()

{

    CDialog::OnInitDialog();

 

    // Add "About..." menu item to system menu.

 

    // IDM_ABOUTBOX must be in the system command range.

    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

    ASSERT(IDM_ABOUTBOX < 0xF000);

 

    CMenu* pSysMenu = GetSystemMenu(FALSE);

    if (pSysMenu != NULL)

    {

        CString strAboutMenu;

        strAboutMenu.LoadString(IDS_ABOUTBOX);

        if (!strAboutMenu.IsEmpty())

        {

            pSysMenu->AppendMenu(MF_SEPARATOR);

            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

        }

    }

 

    // Set the icon for this dialog.  The framework does this automatically

    //  when the application's main window is not a dialog

    SetIcon(m_hIcon, TRUE);            // Set big icon

    SetIcon(m_hIcon, FALSE);        // Set small icon

    

    // TODO: Add extra initialization here

    

    return TRUE;  // return TRUE  unless you set the focus to a control

}

 

void COfflineDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

    if ((nID & 0xFFF0) == IDM_ABOUTBOX)

    {

        CAboutDlg dlgAbout;

        dlgAbout.DoModal();

    }

    else

    {

        CDialog::OnSysCommand(nID, lParam);

    }

}

 

// If you add a minimize button to your dialog, you will need the code below

//  to draw the icon.  For MFC applications using the document/view model,

//  this is automatically done for you by the framework.

 

void COfflineDlg::OnPaint() 

{

    if (IsIconic())

    {

        CPaintDC dc(this); // device context for painting

 

        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

 

        // Center icon in client rectangle

        int cxIcon = GetSystemMetrics(SM_CXICON);

        int cyIcon = GetSystemMetrics(SM_CYICON);

        CRect rect;

        GetClientRect(&rect);

        int x = (rect.Width() - cxIcon + 1) / 2;

        int y = (rect.Height() - cyIcon + 1) / 2;

 

        // Draw the icon

        dc.DrawIcon(x, y, m_hIcon);

    }

    else

    {

        CDialog::OnPaint();

    }

}

 

// The system calls this to obtain the cursor to display while the user drags

//  the minimized window.

HCURSOR COfflineDlg::OnQueryDragIcon()

{

    return (HCURSOR) m_hIcon;

}

 

void COfflineDlg::OnButton1() 

{

    // TODO: Add your control notification handler code here

    fp=fopen("record.txt","w");

    Sleep(1000);

    fclose(fp);

    SetTimer(1,180000,NULL);

}

 

void COfflineDlg::OnTimer(UINT nIDEvent) 

{

    // TODO: Add your message handler code here and/or call default

    DWORD dwFlags;

    dwFlags=0;

    char *pchrTime=NULL;

    char *pchrv1=NULL;

    CTime t1=CTime::GetCurrentTime();

    CString m_strTime = t1.Format("%Y-%m-%d %H:%M:%S");

    pchrTime=m_strTime.GetBuffer(0); 

    fp=fopen("record.txt","a");

    UpdateData(true);

    if(InternetCheckConnection("http://tw.yahoo.com",FLAG_ICC_FORCE_CONNECTION,dwFlags))

    {

        m_v1="OK";

    }

    else

    {

        m_v1="Don't Work";

    }

    UpdateData(false);

    pchrv1=m_v1.GetBuffer(0);

    fprintf(fp,"%s\t%s\n",pchrTime,pchrv1);

    fclose(fp);

    CDialog::OnTimer(nIDEvent);

}

 



 


1 則留言: