当前位置:编程学习 > C#/ASP.NET >>

C#托盘程序咨询

各位大侠
   我想问一下C#怎么实现监视所有的鼠标键盘事件?
   即使是当前程序最小化的的情况下,也可以记录对其他软件的鼠标单击事件。

--------------------编程问答-------------------- Processing Global Mouse and Keyboard Hooks in C#
http://www.codeproject.com/KB/cs/globalhook.aspx --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 支持楼上的
  楼主可以下载这个键盘钩子,要不楼主自己写钩子程序呢
  --------------------编程问答-------------------- c# 搞这个能力有限啊。 还不如E语言。 --------------------编程问答-------------------- C#写托盘程序 还是比较简单的
我记得有一个nofity控件,
拖一个放到窗体上,
然后把窗体的showintaskbar设为false,
把窗体启动时状态改为最小化,
就可以了,
至于你说的要记录单击,这个,
估计得走底层了,
找下win32编程看看windows有没有提供API?
--------------------编程问答--------------------
DEBUGLOG("j7(): Copy one sendqueueitem to writebuffer "<< z4 << " byte.");DELETE_A(pTemp->pMessage);
DELETE(pTemp);} else //如果缓冲区不够放,那把节点消息部分放入缓冲区 {
 memcpy(&m_writeBuf[m_writeEnd], pTemp->pBeginWritePos, iTmpBufSize);//修改队列节点的写长度和写指针
 z4   -= iTmpBufSize; pTemp->pBeginWritePos  += iTmpBufSize; m_writeEnd = MaxWriteBuf;
DEBUGLOG("j7(): Copy the sendqueueitem to writebuffer "  << z4 << " byte, Buffer is fulled.");
break; }}  // end of while (1) 这个循环数据流向是从发送队列到发送缓冲区
//发送队列空并且发送缓冲区没有数据,跳出循环 if ((NULL == pTemp) && (m_writeEnd <= m_writeBegin))
{ break;}}  //end of while (1)return;}
//TSocket功能函数,清空写缓冲区中的数据
void TSocket::clearWriteBuf(){//初始化写参数 memset(m_writeBuf, 0, MaxWriteBuf);
m_writeBegin = 0; m_writeEnd   = 0;  return;}
//TSocket功能函数,清空读缓冲区数据
void TSocket::clearReadBuf(){y7 = y6;y8     = 4;  //消息头四字节是长度y9 = y5;  
j1  = 0; memset(m_readBuf, 0, MaxReadBuf);z3 = 0; m_readEnd   = 0; return;}
//TSocket功能函数,关闭套接字连接
void TSocket::y2{if (m_fdSocket >= 0){ close(m_fdSocket); } m_fdSocket = -1; m_state=Close; return;}
//TSocket功能函数,设置套接字名称
void TSocket::setSocketName(char* socketName){ if (NULL != socketName){
 strncpy(m_sSocketName, socketName, 79); }return;}
//TSocket功能测试函数,打印对象的全部成员变量到日志文件
void TSocket::dump(HOfstream& tOutStream){char l_sBuf4Print[65536];tOutStream.reopen();
sprintf(l_sBuf4Print, "m_remoteAddr.sin_family      :%d\n", m_remoteAddr.sin_family);
 y1;格式同上 m_remoteAddr.sin_port); y1;.. m_remoteAddr.sin_addr.s_addr); y1;.. m_remoteAddr.sin_zero);
y1;.. m_localAddr.sin_family);y1;..m_localAddr.sin_port);y1;..m_localAddr.sin_addr.s_addr);y1;
.. m_localAddr.sin_zero);y1;.. m_fdSocket);y1;..m_state); y1; ..y6);y1;..y6); y1;..y7); y1;..y8); y1;
..y9);y1; ..j1);y1;..m_readBuf);y1;..z3);y1;..m_readEnd);y1;..m_writeBuf); y1;.. m_writeBegin);y1;
..m_writeEnd);y1;..z7); y1; ..z6);y1; ..z5); y1;..m_sSocketName); y1;  tOutStream.close();}
//TSocket功能测试函数,打印发送队列成员到日志文件
void TSocket::dumpSendQueue(HOfstream& tOutStream){
WRITELOG(tOutStream, "This is socket[" << m_sSocketName << "] send queue[itemnumber:" << z5 
<< " ] informaiton");TQueueItem* pItem = z7; int iItemOrder = 1;while (NULL != pItem){
WRITELOG(tOutStream, "-------- QueueItem number " << iItemOrder++ << " -------"); printCodeBuff(
pItem->pMessage, pItem->msgLength, tOutStream); pItem = pItem->next; }} --------------------编程问答-------------------- 谢谢各位大侠~小弟试试~
补充:.NET技术 ,  其他语言
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,