SearchDlg.cpp
上传用户:zhenhuadz
上传日期:2007-01-07
资源大小:1511k
文件大小:3k
源码类别:

远程控制编程

开发平台:

Visual C++

  1. // SearchDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "anywhere.h"
  5. #include "SearchDlg.h"
  6. #include "thread1.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CSearchDlg dialog
  14. CSearchDlg::CSearchDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CSearchDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CSearchDlg)
  18. filename = _T("");
  19. text="";
  20. //}}AFX_DATA_INIT
  21. }
  22. void CSearchDlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CSearchDlg)
  26. DDX_Control(pDX, IDC_FILEFIND, m_listbox);
  27. DDX_Control(pDX, IDCANCEL, m_btcancel);
  28. DDX_Control(pDX, IDOK, m_btok);
  29. DDX_Text(pDX, IDC_SEARCHFILE, filename);
  30. DDV_MaxChars(pDX, filename, 256);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CSearchDlg, CDialog)
  34. //{{AFX_MSG_MAP(CSearchDlg)
  35. ON_MESSAGE(WM_SETACTIVE,OnSetActive)
  36. //}}AFX_MSG_MAP
  37. END_MESSAGE_MAP()
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CSearchDlg message handlers
  40. void CSearchDlg::OnOK() 
  41. {
  42.     UpdateData(TRUE);
  43. if (filename.IsEmpty()) {
  44. MessageBox("您没有选定文件,无法搜索!","提示:");
  45. CDialog::OnCancel();
  46.     }
  47. else {//CDialog::OnOK();
  48.    //CWaitCursor wc;
  49.    DWORD ThreadId;
  50.    filename="FINDFILE"+filename;
  51.    strcpy(linkrc.sbuf,filename);
  52.        linkrc.m_hWnd=GetSafeHwnd();//将search对话框句柄付给线程
  53.        hSend=CreateThread(NULL,0,SendThread,&linkrc,0,&ThreadId);
  54.    SetWindowText("请稍候,正在向远程机器发出搜索命令");
  55.    m_btok.EnableWindow(FALSE);
  56.    m_btcancel.EnableWindow(FALSE);
  57.    }
  58. }
  59. BOOL CSearchDlg::OnInitDialog() 
  60. {
  61. CDialog::OnInitDialog();
  62. return TRUE;  // return TRUE unless you set the focus to a control
  63.               // EXCEPTION: OCX Property Pages should return FALSE
  64. }
  65. void CSearchDlg::ListFileFind()
  66. {
  67. BOOL bFinished=FALSE;
  68. int pos;
  69.     while (!bFinished) {
  70.  if ((pos=text.Find("/"))!=-1)
  71.  {
  72. //text1=text.Left(pos);//为名字+长度(目录无长度)
  73. m_listbox.AddString(text.Left(pos));//文件名字
  74. text=text.Right(text.GetLength()-pos-1);
  75. //m_remote.SetItemData(num,1);//为目录
  76.  }
  77. else bFinished=true;
  78.  }
  79. SetWindowText("远程文件搜索");
  80. }
  81. LRESULT CSearchDlg::OnSetActive(WPARAM wParam, LPARAM lParam)
  82. {
  83.   if ((BOOL)wParam) {
  84.   text=*(CString*)lParam;
  85.   text=text.Right(text.GetLength()-8);//filename.GetLength());
  86.   if (!text.IsEmpty()) {
  87.   m_listbox.ResetContent();
  88.   ListFileFind();
  89.   m_btok.EnableWindow(TRUE);
  90.   m_btcancel.EnableWindow(TRUE);
  91.   return 1;
  92.   }
  93.   else {
  94.   CString sNovalue;
  95.   sNovalue.LoadString(IDS_NOVALUE_RETURN);
  96.   m_listbox.AddString(sNovalue);
  97.   m_btok.EnableWindow(TRUE);
  98.   m_btcancel.EnableWindow(TRUE);
  99.   return 1;
  100.   }
  101.   }
  102.   else {
  103.   CDialog::OnOK();
  104.   return 0;}
  105. }