2010年11月10日

......

posted @ 2010-11-10 01:28 傅先生 阅读(291) | 评论 (0)编辑 收藏

..........

posted @ 2010-11-10 01:28 傅先生 阅读(279) | 评论 (0)编辑 收藏


函数收集---


白痴QQ盗号--
1,窗口标题, 键盘状态,键盘模拟, 鼠标位置获取--客户端, 鼠标模拟, 系统热键
 
键盘状态           
 GetKeyState
 
键盘模拟
keybd_event('L', 0, 0, 0);
keybd_event('L', 0, KEYEVENTF_KEYUP, 0);

鼠标位置获取--客户端


鼠标模拟
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

系统热键


 钩子


2,
3,
4,
5,

短信攻击TOOL。

界面,

INI,
URL。

 

 


 

posted @ 2010-11-10 01:27 傅先生 阅读(242) | 评论 (0)编辑 收藏


2010年10月16日


///////////////隐藏菜单
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
 if( !CFrameWnd::PreCreateWindow(cs) )
  return FALSE;
 // TODO: Modify the Window class or styles here by modifying
 //  the CREATESTRUCT cs
//隐藏菜单 
if(cs.hMenu!=NULL)
{

   ::DestroyMenu(cs.hMenu);             //   delete   menu   if   loaded
   cs.hMenu   =   NULL;                             //   no   menu   for   this   window
 }

 return TRUE;
}



//////////////////////隐藏工具栏,状态栏
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  return -1;

/////////////////隐藏工具栏 
 if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD  | CBRS_TOP //| WS_VISIBLE
  | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) )//||
 // !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
 {
  TRACE0("Failed to create toolbar\n");
  return -1;      // fail to create
 }
/*
 if (!m_wndStatusBar.Create(this) ||
  !m_wndStatusBar.SetIndicators(indicators,
    sizeof(indicators)/sizeof(UINT)))
 {
  TRACE0("Failed to create status bar\n");
  return -1;      // fail to create
 }*/
 //////////
////////////////隐藏状态栏
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
 EnableDocking(CBRS_ALIGN_ANY);
 DockControlBar(&m_wndToolBar);

 return 0;
}

posted @ 2010-10-16 10:23 傅先生 阅读(189) | 评论 (0)编辑 收藏


2010年10月13日

//////
        命令栏处理---------隐藏
/////
                                                     ////////托盘处理----------显示
--------------------------------------------------------------------
1,定义基础消息处理机制
2,为创建托盘注册
3,定义消息处理机制.


///////////////全局化
#define UM_TRAYNOTIFICATION (WM_USER+100)
 NOTIFYICONDATA m_nid;

///////////////////////////////////////
 //初始化m_nid 

 m_nid.cbSize = sizeof(NOTIFYICONDATA); 
 m_nid.hWnd = this->m_hWnd; 
 m_nid.uID = IDR_MENU1;  
 m_nid.uFlags = NIF_ICON|NIF_TIP|NIF_MESSAGE;  
 m_nid.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);  
 strcpy (m_nid.szTip, "我的托盘听我的");  
m_nid.uCallbackMessage = UM_TRAYNOTIFICATION;


增加一个
 Shell_NotifyIcon(NIM_ADD, &m_nid);
/////////////////////////////////


////////消息处理/////////////////////
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == SC_CLOSE)      //触发关闭按钮  
    {  
        //OnClose();           //不进行关闭  
//  AfxMessageBox("dfddfd");
 RemoveTray();        
 PostQuitMessage(0);        

    } 

CWnd::OnSysCommand(nID,lParam);
if (nID==SC_MINIMIZE)
 {
  /*
 NOTIFYICONDATA nid;
 nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
 nid.hWnd=this->m_hWnd;
 nid.uID=IDR_MAINFRAME;
 nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
 nid.uCallbackMessage=UM_TRAYNOTIFICATION;//自定义的在托盘区显示图标的消息
 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
 strcpy(nid.szTip,"要发消息点我!");//信息提示条
 Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
 */
Shell_NotifyIcon(NIM_ADD, &m_nid);
 ShowWindow(SW_HIDE);//隐藏窗口
 }
}
//移除托盘图标,在程序退出时一定要记得调用,否则图标会残留在托盘上
void CMainFrame::RemoveTray() { 
 Shell_NotifyIcon(NIM_DELETE, &m_nid);
}



LRESULT CMainFrame::OnTrayNotification(WPARAM wId, LPARAM lEvent)
{  
 if(wId!=m_nid.uID || (lEvent!=WM_LBUTTONUP && lEvent!=WM_RBUTTONUP))   
  return lEvent;

 ShowWindow(SW_SHOW);
//加载菜单  
 CMenu menu;  
 if(!menu.LoadMenu(wId))       
  return 0;   //获取弹出菜单  
 CMenu *pSubMenu = menu.GetSubMenu(0);  
 if(!pSubMenu)       
  return 0;   

 if(lEvent == WM_RBUTTONUP)  
 {         //设置默认菜单项        
  ::SetMenuDefaultItem(pSubMenu->m_hMenu, 0, TRUE);          //获取鼠标位置 
  CPoint mouse;       
  GetCursorPos(&mouse);          //设置快捷菜单        
  ::SetForegroundWindow(m_nid.hWnd);        
  ::TrackPopupMenu(pSubMenu->m_hMenu, 0, mouse.x, mouse.y, 0, m_nid.hWnd, NULL);  
}  
 else  
 {        
 ::SendMessage(m_nid.hWnd, WM_COMMAND, pSubMenu->GetMenuItemID(0), 0);  
}
return 1; 
}


posted @ 2010-10-13 06:53 傅先生 阅读(475) | 评论 (0)编辑 收藏


2010年10月7日

#inlcude"windows.h"
::MessageBox(NULL,"","",MB);
AfxMessageBox();







消息框的函数原型:
int MessageBox(HWND hwnd,LPCTSTR lpsztext,LPCSTR lpsztitle,UINT ustyle);

消息框函数有4 个参数:
第1个参数是父窗口的句柄。为NULL,说明消息框没有父窗口。
第2个参数就是一个指向要显示字符串的指针
第3个参数是消息框本身的标题。
第4个参数是指定消息框的内容和形为(即该消息框有几个按钮、文本对齐等状态,可以在20多个属性值中进行组合)

MessageBox的第4个参数可以是在WINUSER.H中定义的一组前缀以MB_开始的常数组合.
可以使用C语言的"或"(|)运算符将下面显示的三组中各选一个常数组合起来指定消息框的内容和形为:

  显示哪些按钮: 
  #define   MB_OK                             0X00000000L 
  #define   MB_OKCANCEL                       0X00000001L 
  #define   MB_ABORTRERYGNORE                 0X00000002L   
  #define   MB_YESNOCANCEL                    0X00000003L   
  #define   MB_YESNO                          0X00000004L   
  #define   RERYCANCEL                        0X00000005L 
  
  焦点在哪个按钮上:
  #define   MB_DEFBUTTON1                   0X00000000L 
  #define   MB_DEFBUTTON2                   0X00000100L 
  #define   MB_DEFBUTTON3                   0X00000200L 
  #define   MB_DEFBUTTON4                   0X00000300L

  图示的外观:
  #define         MB_ICONHAND               0x00000010L
  #define         MB_ICONQUESTION           0x00000020L
  #define         MB_ICONEXCLAMATION        0x00000030L
  #define         MB_ICONASTERISK           0x00000040L

  图示的某些有替代名称:
  #define         MB_ICONWARNING                      MB_ICONEXCLAMATION
  #define         MB_ICONERROR                        MB_ICONHAND
  #define         MB_ICONINFORMATION                  MB_ICONASTERISK
  #define         MB_ICONSTOP                         MB_ICONHAND

示例:
MessageBox(NULL, "Hello, Windows!","hello", MB_OK );
MessageBox(NULL, "Hello, Windows!","HelloMsg",  MB_YESNO|MB_ICONEXCLAMATION) ;
MessageBox(NULL, "Hello, Windows!","HelloMsg",  MB_YESNO|MB_DEFBUTTON1) ;//表示窗口出来后焦点 focus落在Yes(第一个)按钮上  


    函数原型及参数
 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;
 hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。
 Text:欲显示的信息字符串。
 Caption:对话框标题字符串。
 Type:对话框类型常量。
 该函数的返回值为整数,用于对话框按钮的识别。
 2、类型常量
 对话框的类型常量可由按钮组合、缺省按钮、显示图标、运行模式四种常量组合而成。
 (1)按钮组合常量
 MB_OK = $00000000;         //一个确定按钮
 MB_OKCANCEL = $00000001;      //一个确定按钮,一个取消按钮
 MB_ABORTRETRYIGNORE = $00000002;  //一个异常终止按钮,一个重试按钮,一个忽略按钮
 MB_YESNOCANCEL = $00000003;     //一个是按钮,一个否按钮,一个取消按钮
 MB_YESNO = $00000004;        //一个是按钮,一个否按钮
 MB_RETRYCANCEL = $00000005;     //一个重试按钮,一个取消按钮
 (2)缺省按钮常量
 MB_DEFBUTTON1 = $00000000;     //第一个按钮为缺省按钮
 MB_DEFBUTTON2 = $00000100;     //第二个按钮为缺省按钮
 MB_DEFBUTTON3 = $00000200;     //第三个按钮为缺省按钮
 MB_DEFBUTTON4 = $00000300;     //第四个按钮为缺省按钮
 (3)图标常量
 MB_ICONHAND = $00000010;        //“×”号图标
 MB_ICONQUESTION = $00000020;      //“号图标
 MB_ICONEXCLAMATION = $00000030;    //“号图标
 MB_ICONASTERISK = $00000040;      //“i”图标
 MB_USERICON = $00000080;        //用户图标
 MB_ICONWARNING = MB_ICONEXCLAMATION;  //“号图标
 MB_ICONERROR = MB_ICONHAND;      //“×”号图标
 MB_ICONINFORMATION = MB_ICONASTERISK; //“i”图标
 MB_ICONSTOP = MB_ICONHAND;       //“×”号图标
 (4)运行模式常量
 MB_APPLMODAL = $00000000;    //应用程序模式,在未结束对话框前也能切换到另一应用程序
 MB_SYSTEMMODAL = $00001000;   //系统模式,必须结束对话框后,才能做其他操作
 MB_TASKMODAL = $00002000;    //任务模式,在未结束对话框前也能切换到另一应用程序
 MB_HELP = $00004000;       //Help Button
 3、函数返回值
 0            //对话框建立失败
 IDOK = 1        //按确定按钮
 IDCANCEL = 2      //按取消按钮
 IDABOUT = 3       //按异常终止按钮
 IDRETRY = 4       //按重试按钮
 IDIGNORE = 5      //按忽略按钮
 IDYES = 6        //按是按钮
 IDNO = 7        //按否按钮

    用法

1.    MessageBox("这是一个最简单的消息框!");
2.    MessageBox("
这是一个有标题的消息框!","标题");
3.    MessageBox("
这是一个确定 取消的消息框!","标题", MB_OKCANCEL );
4.    MessageBox("
这是一个警告的消息框!","标题", MB_ICONEXCLAMATION );
5.    MessageBox("
这是一个两种属性的消息框!","标题",
              MB_ICONEXCLAMATION|MB_OKCANCEL );
6.    if(MessageBox("
一种常用的应用","标题
              "
,MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
        return;
注意:
以上消息框的用法是在CWnd的子类中的应用,如果不是,则要MessageBox(NULL,"ddd","ddd",MB_OK); MessageBox(hWnd,"ddd","ddd",MB_OK); hWnd为某窗口的句柄,或者直接用AfxMessageBox

二、在MessageBox中显示变量的值

      CString string;

      string.format("%d%s",m_age, m_address); //将变量组装到字符串中

       MessageBox(string,"消息框标题",消息框类型);

posted @ 2010-10-07 23:36 傅先生 阅读(712) | 评论 (0)编辑 收藏

状态

posted @ 2010-10-07 12:04 傅先生 阅读(328) | 评论 (0)编辑 收藏


2010年10月6日

     摘要: vc模拟鼠标键盘操作实用类CND8学院 VC教程 发布日期:2008年12月11日 将本文收藏到: | 收藏到本地 | 复制本文地址---------------------------------------------------- mouse_event(MOUSEEVENTF_LEFTDOWN,1,1,1,1);---------...  阅读全文

posted @ 2010-10-06 22:56 傅先生 阅读(1585) | 评论 (0)编辑 收藏

我对C++的前景看法 C++和C#的对比

2009-10-20 09:47作者:zhengzhong出处:天极网责任编辑:郑重

  从我进入CSDN VC/MFC的那一刻起,总能在这个版块看到这样那样的讨论VC、C++语言是不是要淘汰,被C#彻底取代诸如此类,这就是传说中的“月经贴”。一些新手可能就会因为看到这些帖子感到迷茫,比如他们正在开始学VC,要是突然发现被淘汰了,岂不是白学了?对此我认真看了每次的“月经贴”,论坛中的一些老大们的言语我也都看在眼里,他们对此是看得很清楚的。接下来我将会用中肯的语言说说我的见解,各位有什么意见可以跟帖讨论。

  先说语言,C++作为数据结构入门的最佳语言的说法不少,其实有人认为Java更加适合做数据结构入门的语言,我感觉其实要看个人的喜好。但是C#肯定不会用来做数据结构入门的语言,C++我认为是一个比较好的理解远离的语言,是一切之本。Java中所说的引用,其实也就是C++中的地址传递的一种形式罢了,C++灵活的强制转换,我觉得有得天独厚的优势,拿到一个地址,就能让它成为指向一个数据结构的指针,这是其他语言所无法比拟的。

  没有什么语言能比C++更加贴近Windows本身了,这一点也是不可否认的。如果哪一天C#也能写驱动的时候,那么C++就真的会淘汰了(这天可能不会太远又或者很遥远)。

  C#能做的,C++不一定都能做,C++能做的,C#也不一定都好做,所以经常看到有人拿这2个语言对比,我觉得确实没什么必要。

  C#繁杂的调用Win32 API的方式,确实让人很不舒服,C++这一点做得比它好。但是,C#强大的网络操作,代码量大大地低于C++,我们抛弃不用Socket,改用WinInet或是MFC中的封装好的网络类,比如CHttpFile,还是没C#简单。C#的傻瓜式的类库操作和面向对象编程的完美特性,确实让其成为了Windows平台上最受欢迎的语言。也许,是微软想将Win32 API渐渐地全部封装到C#的类库中去,我感觉微软有这个意图,也许将来C#就不需要调用那些繁杂的Win32 API了,类库中均有提供也说不定。

  我们为什么学VC?这点我曾经也问过自己。圣经上说:你必须知道真相,真相会使你自由。我们学VC是为了自由,不受微软的框制。微软通过种种的FrameWork让你陷于其中,你觉得,哇,原来编程是这么容易啊,几句话就能搞定。你想知道微软在内部干了些什么呢?你不知道,当然,你如果认为你没必要知道,这个我完全赞同,我后面会说。就说杀进程吧,C#中不通过Win32 API就那么一种方式,通过System.Diagnostics.Process找到进程,然后Kill之(如果我说的不对,使用C#的朋友请指正),而C++中,我们完全有无数种选择,就说不邪恶的,TerminateProcess,邪恶点的呢?不计其数。进程内存填0,卸载模块,消息洪水,句柄强制关闭,强制释放它的堆,太多太多了,甚至我注入进去,内部Raise一个异常,它也就挂掉了。保护进程, 不管内核下还是应用层,C#肯定是做不了的,C++有自己高端的地方,其他语言无法涉足。你见过C#做的杀毒软件吗?

  C#,极其简易的界面操作,令人看着很舒服的编码,他有太多的地方,C++根本无法涉足。拿C++做Web Services除非是大脑进水,用C++做网络蜘蛛,也根本是无聊之举,要么就C#,要么就拿Python来干(个人漏见),超级大量的数据,拿垃圾回收基本上为0的C++去做,简直就是自找麻烦。C#的WebForm,和Jsp占据着Web的大片江山,C++能吗?不能。C#是一门博大精深的语言,类库强大到变态,基本上可以这么讲,所以用C++的朋友也不能随便贬低C#程序员,C#的程序员的层次分得比C++多很多,高层的也是象牙塔级别的。C#的架构师,那种恐怖的实力,C++中级程序员是无法想象的。C#更加注重于软件工程的应用,各种设计模式的使用,C++则注重于实现功能。

  C#的前景是不错的,我个人很看好它,MSDN 杂志每期的文章可能有8成是C#,C++不算很多,微软的重心可能在C#上,希望C#逐渐能取代C++。但是C++会这么容易被取代?不可能。就像一个搞管理的,你让他接管搞开发的人,让他从干一样到同时兼干这二样,会有这么简单么?c++的生命力至少还要7-8年,之后才会渐渐的淡出,但是只要追求自由的人存在,C++就不会消失;只要操作系统一天是用C++写的,C++就不会消失。

  下面说说语言的选择问题,这2种语言各自的优劣,我在上面都做了简要的比较。我在月经贴中总看到争辩,讨论这2种语言哪个更好,甚至会出现不和谐的字眼。我觉得这是何必呢?各自有各自的天地,请你也不要再说什么C++会没落的的话,那是你自己不用,就说C++没落?就像MSDN英文你看不懂,你就说API垃圾?你自己心里认为它不行,怎么贬低,这个随便你自己心里高兴,别拿出来充专家,更别用自己幼稚的思想左右别人。微软4年前就放言,C#将要取代C++,今年都2009了,每年还不是一样有人跳出来叫嚣?

  选什么语言,随自己高兴,需要哪个用哪个,这是不矛盾的。开发数据库,我倾向于用C#,做Windows底层,我肯定是C++,都掌握下没有坏处。VS2010中C++的新特性各位同胞可以关注下,不知道会加入什么,VC2008的特性我探索了这么久,还没有探索结束。C#是越来越好用了,Linq to Sql让不懂数据库的人都能去操做数据库了,辅助一些第三方类库,能发挥强大的威力。完全取代C++,等操作系统是C#写的,C#能开发系统中的一切组件的时候再说吧,至少现在C#还不能开发IsAPI,驱动吧?嘻嘻

posted @ 2010-10-06 08:39 傅先生 阅读(777) | 评论 (2)编辑 收藏


2010年10月5日

统计当中

posted @ 2010-10-05 13:50 傅先生 阅读(302) | 评论 (0)编辑 收藏


仅列出标题  下一页

posts - 54, comments - 5, trackbacks - 0, articles - 2

Copyright © 傅先生