当前位置:首页
开发技术指南» 文章正文
    引言:

 ·如何动态生成表结构    »显示摘要«
    摘要: 如何由 表1 office procode fact_qty bj p1 3 bj p2 4 bj p3 8 sh p1 2 sh p2 5 sh p3 9 得到 表2 procode bj sh p1 3 2 p2 4 5 p3 8 9 office 的内容会变化 表2可以动态生成吗 谢了 ......
 ·送分 题 双系统启动    »显示摘要«
    摘要: 装了双操作系统,怎么把开机出现的选择项去掉。 超级兔子有这个功能。 自己怎么做设置呢?? ......


求助,如何枚举任务栏托盘里的图标

关于枚举任务栏托盘里的图标  
  我想判断某个图标是否在“任务栏托盘”里出现,有什么好办法吗?  
  谢谢了!    
 

NO.1   作者: balloonman2002

参考:  
  何通过托盘图标得到该所属进程  
  http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207497

NO.2   作者: kmlxk

VB中获得托盘图标文字、所属窗口handle  
  lngTemp   =   FindWindow("Shell_TrayWnd",   vbNullString)  
          lngTemp   =   FindWindowEx(lngTemp,   0,   "TrayNotifyWnd",   vbNullString)  
          lngTemp   =   FindWindowEx(lngTemp,   0,   "SysPager",   vbNullString)  
          lngTray   =   FindWindowEx(lngTemp,   0,   "ToolbarWindow32",   vbNullString)  
          Debug.Print   "lngTray=";   lngTray  
          ret   =   GetWindowThreadProcessId(lngTray,   lngPid)  
          hProcess   =   OpenProcess(PROCESS_ALL_ACCESS   Or   PROCESS_VM_OPERATION   Or   PROCESS_VM_READ   Or   PROCESS_VM_WRITE,   0,   lngPid)  
          lngAddress   =   VirtualAllocEx(hProcess,   ByVal   0&,   ByVal   4096&,   MEM_COMMIT,   PAGE_READWRITE)  
          lngButtons   =   SendMessage(lngTray,   TB_BUTTONCOUNT,   0,   0)  
   
          For   i   =   0   To   lngButtons   -   1  
                  ret   =   SendMessage(lngTray,   TB_GETBUTTON,   ByVal   i,   ByVal   lngAddress)  
                  ret   =   ReadProcessMemory(hProcess,   ByVal   lngAddress   +   16,   ByVal   VarPtr(lngTextAdr),   ByVal   4,   ByVal   0&)  
                  If   lngTextAdr   <>   -1   Then  
                          ret   =   ReadProcessMemory(hProcess,   ByVal   lngTextAdr,   ByVal   VarPtr(strBuff(0)),   ByVal   1024,   ByVal   0&)  
                          ret   =   ReadProcessMemory(hProcess,   ByVal   lngAddress   +   12,   ByVal   VarPtr(lngHwndAdr),   ByVal   4,   ByVal   0&)  
                          ret   =   ReadProcessMemory(hProcess,   ByVal   lngHwndAdr,   ByVal   VarPtr(lngHWnd),   ByVal   4,   ByVal   0&)  
                          ret   =   ReadProcessMemory(hProcess,   ByVal   lngAddress   +   4,   ByVal   VarPtr(lngButtonID),   ByVal   4,   ByVal   0&)  
   
                          strText   =   ConverNull(strBuff)  
                          lngHwnd   所属窗口handle  
                          strText   托盘图标文字  
                  End   If  
          Next   i  
          VirtualFreeEx   hProcess,   ByVal   lngAddress,   ByVal   4096&,   MEM_RELEASE  
          CloseHandle   hProcess


    摘要: 前台是delphi6,数据库是mssqlserver2000,数据有6000多条。5个表联合查询,用查询分析器查询需要2-3秒,用程序开始查询到显示结果集大约十几秒的时间,客户要求加快显示时间,有没有好的办法?谢谢! 查询格式为: select a.id, a.name, a....., b.name, c.class, d.teacher, e.student from a left j......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE