auto_clipboard

本文介绍了一个简单的自动剪贴板类实现,该类能够将指定的文本复制到剪贴板,并提供了从剪贴板获取文本的方法。适用于Windows平台,使用了Win32 API进行剪贴板操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

黄山松发表于博客园:http://www.cnblogs.com/tomview/p/6137179.html

#ifndef __HSS_AUTO_CLIPBOARD_HSS__
#define __HSS_AUTO_CLIPBOARD_HSS__

/*********************************************************************************\
*  2012-10-30
自动复制内容到剪贴板

  用法:

  复制:
  auto_clipboard a(hwnd, psz);

  粘贴:
  CString sz;
  auto_clipboard::GetText(sz);
\***************************************************************************/

class auto_clipboard
{
public:
    auto_clipboard(HWND hwnd, LPCTSTR pszText)
    {
        if (::OpenClipboard(hwnd))
        {
            ::EmptyClipboard();

            HANDLE hMem = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE , strlen(pszText)+1);
            if (hMem)
            {
                char* pszMem = (char*)(::GlobalLock(hMem));
                if (pszMem)
                {
                    strcpy(pszMem, pszText);
                    ::GlobalUnlock(hMem);
                    SetClipboardData(CF_TEXT, hMem);
                }
                ::GlobalFree(hMem);
            }
            CloseClipboard();
        }
    }

    ~auto_clipboard()
    {
    }

    /*************************************************************************\
    * auto_clipboard    :    2014年12月2日
    * CString sz        :   
    \**************************************************************************/

#ifdef __AFX_H__
    static BOOL GetText(CString& sz)
    {
        if (!OpenClipboard(0))        
            return FALSE;

        HANDLE hClip = GetClipboardData(CF_TEXT);

        if (hClip == 0)
        {
            CloseClipboard();
            return FALSE;
        }

        LPVOID pRes = (LPVOID)GlobalLock(hClip);

        if (pRes == 0)
        {
            CloseClipboard();
            return FALSE;
        }

        sz = (char*)pRes;

        GlobalUnlock(hClip);

        CloseClipboard();

        return TRUE;
    }
#endif
};


#endif

转载于:https://www.cnblogs.com/tomview/p/6137179.html

language: en_US auto_save: true display_label_popup: true store_data: false keep_prev: false keep_prev_scale: false keep_prev_brightness: false keep_prev_contrast: false auto_use_last_label: false auto_highlight_shape: true auto_switch_to_edit_mode: true show_groups: false show_texts: true show_labels: true show_scores: true show_degrees: false show_shapes: true show_linking: true logger_level: info system_clipboard: false switch_to_checked: false flags: null label_flags: null labels: null file_search: null sort_labels: true validate_label: null default_shape_color: [0, 255, 0] shape_color: auto # null, 'auto', 'manual' shift_auto_shape_color: 0 label_colors: null shape: # drawing line_color: [0, 255, 0, 128] fill_color: [220, 220, 220, 150] vertex_fill_color: [0, 255, 0, 255] # selecting / hovering select_line_color: [255, 255, 255, 255] select_fill_color: [0, 255, 0, 155] hvertex_fill_color: [255, 255, 255, 255] point_size: 10 line_width: 4 # main flag_dock: show: true closable: true movable: true floatable: false label_dock: show: true closable: true movable: true floatable: false shape_dock: show: true closable: true movable: true floatable: false file_dock: show: true closable: true movable: true floatable: false # label_dialog show_label_text_field: true label_completion: startswith move_mode: auto # 'auto', 'center' fit_to_content: column: true row: false # canvas epsilon: 10.0 canvas: # None: do nothing # close: close polygon double_click: close # change mode # The max number of edits we can undo num_backups: 10 crosshair: show: true width: 2.0 color: "#00FF00" opacity: 0.5 shortcuts: close: Ctrl+X open: Ctrl+I open_video: Ctrl+O open_dir: Ctrl+U open_chatbot: Ctrl+B quit: null save: Ctrl+S save_as: Ctrl+Shift+S save_to: null delete_file: Ctrl+Delete delete_image_file: Ctrl+Shift+Delete open_next: D open_prev: A open_next_unchecked: Ctrl+Shift+D open_prev_unchecked: Ctrl+Shift+A zoom_in: [Ctrl++, Ctrl+=] zoom_out: Ctrl+- zoom_to_original: Ctrl+0 fit_window: Ctrl+F fit_width: Ctrl+Shift+F create_polygon: Q create_rectangle: W create_rotation: Ctrl+R create_circle: R create_line: L create_point: null create_linestrip: null edit_polygon: E delete_polygon: Delete duplicate_polygon: Ctrl+D copy_polygon: Ctrl+C paste_polygon: Ctrl+V undo: Ctrl+Z undo_last_point: Ctrl+Z add_point_to_edge: Ctrl+Shift+P edit_label: Ctrl+E edit_group_id: Alt+G toggle_keep_prev_mode: Ctrl+P remove_selected_point: [Ctrl+Q, Backspace] group_selected_shapes: G ungroup_selected_shapes: U hide_selected_polygons: S show_hidden_polygons: Ctrl+W show_overview: Ctrl+G show_texts: Ctrl+T show_labels: Ctrl+L show_linking: Ctrl+K union_selected_shapes: Ctrl+Shift+M toggle_auto_use_last_label: Ctrl+Y toggle_visibility_shapes: Ctrl+H auto_label: Ctrl+A auto_run: Ctrl+M loop_thru_labels: Ctrl+Shift+N # Auto labeling custom_models: [] 都是什么意思
06-10
内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值