clipboard&file operating.

简介:

 

 
  1. /*------------------------------------------------- 
  2.    Code By Pnig0s1992 
  3.   -------------------------------------------------*/ 
  4.  
  5. #include <windows.h> 
  6. #include <windowsx.h> 
  7. #define DIVISIONS 5 
  8.  
  9. LRESULT CALLBACK WndProc (HWNDUINTWPARAMLPARAM) ; 
  10.  
  11. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, 
  12.                     PSTR  szCmdLine, int iCmdShow) 
  13.      static TCHAR szAppName[] = TEXT ("pwn0ne") ; 
  14.      HWND         hwnd ; 
  15.      MSG          msg ; 
  16.      WNDCLASS     wndclass ; 
  17.       
  18.      wndclass.style         = CS_HREDRAW | CS_VREDRAW ; 
  19.      wndclass.lpfnWndProc   = WndProc ; 
  20.      wndclass.cbClsExtra    = 0 ; 
  21.      wndclass.cbWndExtra    = 0 ; 
  22.      wndclass.hInstance     = hInstance ; 
  23.      wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ; 
  24.      wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ; 
  25.      wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; 
  26.      wndclass.lpszMenuName  = NULL ; 
  27.      wndclass.lpszClassName = szAppName ; 
  28.       
  29.      if (!RegisterClass (&wndclass)) 
  30.      { 
  31.           MessageBox (NULL, TEXT ("Program requires Windows NT!"),  
  32.                       szAppName, MB_ICONERROR) ; 
  33.           return 0 ; 
  34.      } 
  35.       
  36.      hwnd = CreateWindow (szAppName, TEXT ("pwn0ne"), 
  37.                           WS_OVERLAPPEDWINDOW, 
  38.                           CW_USEDEFAULT, CW_USEDEFAULT, 
  39.                           CW_USEDEFAULT, CW_USEDEFAULT, 
  40.                           NULL, NULL, hInstance, NULL) ; 
  41.       
  42.      ShowWindow (hwnd, iCmdShow) ; 
  43.      UpdateWindow (hwnd) ; 
  44.       
  45.      while (GetMessage (&msg, NULL, 0, 0)) 
  46.      { 
  47.           TranslateMessage (&msg) ; 
  48.           DispatchMessage (&msg) ; 
  49.      } 
  50.      return msg.wParam ; 
  51. LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 
  52.      static PTSTR pText; 
  53.      HBRUSH hBrush; 
  54.      HDC hdc; 
  55.      PAINTSTRUCT ps; 
  56.      RECT rc; 
  57.      HGLOBAL hGlobal; 
  58.      PTSTR pGlobal; 
  59.      HANDLE hHandle; 
  60.      LPCWSTR szFilePath = L"example.txt"
  61.      DWORD dzWriteDataSize; 
  62.      LPSTR szFileData = "Test for clipboard&file operating."
  63.      int i,iLength = strlen(szFileData); 
  64.      BOOL bAvailable; 
  65.      BOOL bOpen; 
  66.  
  67.      switch(message){ 
  68.      case WM_CREATE: 
  69.          hGlobal = GlobalAlloc(GPTR,iLength+1); 
  70.          pGlobal = GlobalLock(hGlobal); 
  71.          for(i=0;i<iLength;i++){ 
  72.              *pGlobal++=*szFileData++; 
  73.          } 
  74.          GlobalUnlock(hGlobal); 
  75.  
  76.          OpenClipboard(hwnd); 
  77.          EmptyClipboard(); 
  78.          SetClipboardData(CF_TEXT,hGlobal); 
  79.          CloseClipboard(); 
  80.          return 0; 
  81.      case WM_PAINT: 
  82.          hdc = BeginPaint(hwnd,&ps); 
  83.          GetClientRect(hwnd,&rc); 
  84.          hBrush=CreateSolidBrush(RGB(0,0,255)); 
  85.          FillRect(hdc,&rc,hBrush); 
  86.          if(bAvailable = IsClipboardFormatAvailable(CF_TEXT)){ 
  87.             MessageBox(hwnd,TEXT("Clipboard is empty."),TEXT("Tip"),MB_OK); 
  88.             SendMessage(hwnd,WM_DESTROY,0,0); 
  89.          } 
  90.          if(!(bOpen = OpenClipboard(hwnd))){ 
  91.             MessageBox(hwnd,TEXT("Open clipboard failed."),TEXT("Tip"),MB_OK); 
  92.             SendMessage(hwnd,WM_DESTROY,0,0); 
  93.          } 
  94.          hGlobal = GetClipboardData(CF_TEXT); 
  95.          pText = (char*)malloc(GlobalSize(hGlobal)); 
  96.          pGlobal = GlobalLock(hGlobal); 
  97.          lstrcpy(pText,pGlobal); 
  98.          GlobalUnlock(hGlobal); 
  99.          CloseClipboard(); 
  100.  
  101.          hHandle = CreateFile(szFilePath,GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,NULL); 
  102.   
  103.         if(hHandle == INVALID_HANDLE_VALUE){ 
  104.         MessageBox(hwnd,TEXT("Create file failed."),TEXT("Warnning"),MB_OK); 
  105.         SendMessage(hwnd,WM_DESTROY,0,0); 
  106.         }else
  107.             if(!WriteFile(hHandle,szFileData,iLength,&dzWriteDataSize,NULL)){ 
  108.                 MessageBox(hwnd,TEXT("Write file failed."),TEXT("Warnning"),MB_OK); 
  109.                 SendMessage(hwnd,WM_DESTROY,0,0); 
  110.             }else
  111.                 MessageBox(hwnd,TEXT("Write file successed."),TEXT("Tip"),MB_OK); 
  112.                 SendMessage(hwnd,WM_DESTROY,0,0); 
  113.         } 
  114.     } 
  115.          EndPaint(hwnd,&ps); 
  116.          DeleteObject(hBrush); 
  117.          return 0; 
  118.      case WM_DESTROY: 
  119.          PostQuitMessage(0); 
  120.          return 0; 
  121.      } 
  122.      return DefWindowProc(hwnd,message,wParam,lParam); 

 













本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/604402,如需转载请自行联系原作者

相关文章
|
4月前
|
人工智能 Go
[go]Slice 切片原理
本文详细介绍了Go语言中的切片(slice)数据结构,包括其定义、创建方式、扩容机制及常见操作。切片是一种动态数组,依托底层数组实现,具有灵活的扩容和传递特性。文章解析了切片的内部结构(包含指向底层数组的指针、长度和容量),并探讨了通过`make`创建切片、基于数组生成切片以及切片扩容的规则。此外,还分析了`append`函数的工作原理及其可能引发的扩容问题,以及切片拷贝时需要注意的细节。最后,通过典型面试题深入讲解了切片在函数间传递时的行为特点,帮助读者更好地理解和使用Go语言中的切片。
111 0
星级博主数码礼包分享
星级博主数码礼包分享
272 0
星级博主数码礼包分享
|
关系型数据库 MySQL
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(上)
文章目录 写在前面 1 聚合函数 1.1 GROUP_CONCAT() 1.2 其他聚合函数 2 数学函数 3 字符串函数 4 日期函数 4.1 常见日期函数与使用 4.2 日期格式 5 控制流函数 5.1 if逻辑判断语句 5.2 case when语句
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(上)
|
机器学习/深度学习 人工智能 自然语言处理
原滴滴AI Labs负责人叶杰平正式加入贝壳找房
滴滴出行原副总裁叶杰平的去向终于尘埃落定。
549 0
原滴滴AI Labs负责人叶杰平正式加入贝壳找房
「镁客·请讲」狗尾草邱楠:做更好的AI虚拟生命
在这个日渐孤单的地球上,你可以有一个属于自己的AI虚拟生命。
777 0
|
4天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1107 0
|
3天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
536 10
|
13天前
|
人工智能 运维 安全
|
12天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
4天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
303 0

热门文章

最新文章