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,如需转载请自行联系原作者

相关文章
|
5月前
|
人工智能 Go
[go]Slice 切片原理
本文详细介绍了Go语言中的切片(slice)数据结构,包括其定义、创建方式、扩容机制及常见操作。切片是一种动态数组,依托底层数组实现,具有灵活的扩容和传递特性。文章解析了切片的内部结构(包含指向底层数组的指针、长度和容量),并探讨了通过`make`创建切片、基于数组生成切片以及切片扩容的规则。此外,还分析了`append`函数的工作原理及其可能引发的扩容问题,以及切片拷贝时需要注意的细节。最后,通过典型面试题深入讲解了切片在函数间传递时的行为特点,帮助读者更好地理解和使用Go语言中的切片。
123 0
星级博主数码礼包分享
星级博主数码礼包分享
278 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负责人叶杰平正式加入贝壳找房
滴滴出行原副总裁叶杰平的去向终于尘埃落定。
559 0
原滴滴AI Labs负责人叶杰平正式加入贝壳找房
「镁客·请讲」狗尾草邱楠:做更好的AI虚拟生命
在这个日渐孤单的地球上,你可以有一个属于自己的AI虚拟生命。
798 0
|
2天前
|
云安全 数据采集 人工智能
古茗联名引爆全网,阿里云三层防护助力对抗黑产
阿里云三层校验+风险识别,为古茗每一杯奶茶保驾护航!
古茗联名引爆全网,阿里云三层防护助力对抗黑产
|
6天前
|
人工智能 中间件 API
AutoGen for .NET - 架构学习指南
《AutoGen for .NET 架构学习指南》系统解析微软多智能体框架,涵盖新旧双架构、核心设计、技术栈与实战路径,助你从入门到精通,构建分布式AI协同系统。
307 142
|
2天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
405 0

热门文章

最新文章