精华内容
下载资源
问答
  • 该资源里面含有屏幕截图打印,控件直接打印和图片分页打印的源码,用的是C#,VS2005,源。其中控件直接打印可以避免屏幕打印的屏幕转换问题,图片分页打印则是把图片截成两部分,再分别打印出来
  • I have a need to prevent screenshots made by Print Screen button. And by third party software.I decided to use fullscreen so they can't use their third party software to make a screenshot.But I still ...

    I have a need to prevent screenshots made by Print Screen button. And by third party software.

    I decided to use fullscreen so they can't use their third party software to make a screenshot.

    But I still have no clue how to prevent screenshot.

    PS. This app is related to fighting piracy. I don't want my massive ebooks to be shared for free. I thought of videos etc instead but writing is more how I do it.

    This way their only method to copy it will be making photos with a HD camera.

    Does anyone know if it's possible? I haven't found anything about this.

    解决方案

    You can not prevent it, but you can try, to a certain extent, overwrite it.

    The idea is detect that a print screen was pressed, hide what you want to hide, and invoke another print screen, overwriting the previous one.

    This is not robust, and of course has limitations and can be by-passed, but can give you basic control.

    This swing basic demonstration was tested on my windows machine:

    import java.awt.AWTException;

    import java.awt.BorderLayout;

    import java.awt.CardLayout;

    import java.awt.Color;

    import java.awt.Robot;

    import java.awt.event.KeyAdapter;

    import java.awt.event.KeyEvent;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    import javax.swing.SwingUtilities;

    public class NoPrintScreen extends JFrame{

    public final String RED_PAGE = "red page";

    public final String WHITE_PAGE = "white page";

    private CardLayout cLayout;

    private JPanel mainPane;

    boolean isRedPaneVisible = false;

    public NoPrintScreen(){

    setTitle("No Print Screen");

    setSize(400,250);

    setDefaultCloseOperation(EXIT_ON_CLOSE);

    addKeyListener(new MyKeyListener());

    setFocusable(true);

    mainPane = new JPanel();

    cLayout = new CardLayout();

    mainPane.setLayout(cLayout);

    JPanel whitePane = new JPanel();

    whitePane.setBackground(Color.WHITE);

    whitePane.add(new JLabel("Hit Prtint Screen and check resuts"));

    JPanel redPane = new JPanel();

    redPane.setBackground(Color.RED);

    redPane.add(new JLabel("Print Screen is discouraged"));

    mainPane.add(WHITE_PAGE, whitePane);

    mainPane.add(RED_PAGE, redPane);

    add(mainPane,BorderLayout.CENTER);

    switchPanes();

    setVisible(true);

    }

    void switchPanes() {

    if (isRedPaneVisible) {showRedPane();}

    else { showWhitePane();}

    }

    void showWhitePane() {

    cLayout.show(mainPane, WHITE_PAGE);

    isRedPaneVisible = true;

    }

    void showRedPane() {

    cLayout.show(mainPane, RED_PAGE);

    isRedPaneVisible = false;

    }

    public static void main(String[] args) {

    new NoPrintScreen();

    }

    class MyKeyListener extends KeyAdapter {

    @Override

    public void keyReleased(KeyEvent e) {

    if(KeyEvent.VK_PRINTSCREEN== e.getKeyCode()) {

    switchPanes();

    SwingUtilities.invokeLater(new Runnable() {

    @Override

    public void run() {

    try {

    final Robot robot = new Robot(); //invoke new print screen

    robot.keyPress(KeyEvent.VK_PRINTSCREEN);

    } catch (AWTException ex) { ex.printStackTrace(); }

    }

    });

    }

    }

    }

    }

    The purpose of this quick-code is to demonstrate the idea.

    展开全文
  • 如何获取Windows窗体的屏幕截图然后进行打印
  • 如何获取Windows窗体的屏幕截图然后进行打印
  • WPF项目中使用的屏幕截图、控件截图打印与导出Excel 包含一个超过封装类库源代码和一个实例项目源代码 非常实用,建议长期保存
  • linux屏幕截图之滚动截屏

    千次阅读 2019-08-02 13:43:50
    linux下屏幕截图介绍 在http://blog.guoshuang.com/?p=4232总结了十种屏幕截图方法,非常不错。原文附在后面,这里先补充一点关于“滚动截屏”: 似乎这是一个很实用的需求,尤其是在截取一些精美网页的时候,截取...

    linux下屏幕截图介绍 在http://blog.guoshuang.com/?p=4232总结了十种屏幕截图方法,非常不错。原文附在后面,这里先补充一点关于“滚动截屏”:
    似乎这是一个很实用的需求,尤其是在截取一些精美网页的时候,截取网页在firefox中有个ScreenGrab插件,对于网页截图这款插件足够。其它 场合下的滚动截屏,google一下在fedora论坛上有一个解释http: //forums.fedoraforum.org/showthread.php?t=236648:
    "一般提供格式化文本或者打印功能的应用程序同时都提供了把文档转化成pdf或者svg文件的功能。shutter是linux下专门的屏幕截图工具,如果确实需要,可以向shutter开发团队反映这个问题。"


    附:来自http://blog.guoshuang.com/?p=4232的"linux屏幕截图方法总结":

    做为现实中的美工,截屏乃每日所需,近期总结了一些资料,如下:

    1.Gimp,linux 下最强大的图形处理软件,带截屏功能

    2.KDE 下的 ksnapshot

    3.gnome-screenshot 以及

    gnome-panel-screenshot 。区别在于后者可以抓取提示信息,比如此图 中的“西安咸阳”

    sleep 5;gnome-panel-screenshot

    趁5妙时间未到,赶紧摆好pose吧… -window 参数截取当前激活窗口

    BTW:ubuntu 附件 中的“抓图”正是 gnome-screenshot

    4.ImageMagick(需要安装) 的 import

    import -window root xxx.jpg

    chvt 7 ; sleep 5 ; XAUTHORITY=/var/gdm/:0.Xauth DISPLAY=:0.0 import -window root /tmp/gdm-shot.png

    在 tty1 中,截取 tty7 中x window登录界面

    ubuntu中应该是

    …XAUTHORITY=/var/lib/ gdm/…

    用 ps aux | grep gdm 可以查到 gdm 具体位置。

    5.xwd,x window自带,无须安装。下面命令可以截取 x win 图像

    sleep 3; xwd -display :0.0 -out root.xwd -root

    但我在 tty 1中执行,想拿到 tty 7 的 x window 登录,得到的是花屏图像(执行,然后马上 ctrl+alt+7 切换回 tty7)。

    BTW:.xwd 文件可以用 gimp 打开。

    6.scrot

    scrot -d 5 /tmp/1.jpeg

    5秒钟后把屏幕抓图保存在/tmp/1.jpeg中

    scrot -s

    用鼠标选定范围,在范围内抓图

    7.抓video的工具:xvidcap

    8.fbgrab

    9.Captrua

    10.byzanz,记录你的桌面或者一个窗口,也可以包括鼠标在内的活动图象,并且保存为gif格式

    参考资料:

    import -window root ~/tmp/screenshot.jpeg && display -resize 50% ~/tmp/screenshot.jpeg

    截取全屏并用 display 打开(50%显示)

    import ~/tmp/screenshot.jpeg && display -resize 50% ~/tmp/screenshot.jpeg

    截取当前窗口并用 display 打开(50%显示)

    展开全文
  • C#屏幕截图

    2014-07-01 21:10:19
    C#,屏幕打印,自动保存,屏幕截图 程序实现C#屏幕自动截图,间隔一定时间自动截图,自动保存在F盘scree文件夹下。
  • pyqt屏幕截图截屏

    千次阅读 2019-01-15 18:48:40
    # from Qt import __binding__ # # print(__binding__) from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * ''' # Qt 中无法导入 QScreen 类 try: from PySide2.QtGui import ...
    # from Qt import __binding__
    #
    # print(__binding__)
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *
    
    '''
    # Qt 中无法导入 QScreen 类
    try:
        from PySide2.QtGui import QScreen
    except:
        from PyQt5.QtGui import QScreen
    '''
    import sys
    
    
    class WScreenShot(QWidget):
        # win = ''
        #
        # @classmethod
        # def run(cls):
        #     cls.win = cls()
        #     cls.win.show()
    
        def __init__(self, parent=None):
            super(WScreenShot, self).__init__(parent)
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
            self.setStyleSheet('''background-color:black; ''')
            self.setWindowOpacity(0.6)
            # desktop = QApplication.desktop()
            # rect = desktop.availableGeometry()
            desktopRect = QDesktopWidget().screenGeometry()
            self.setGeometry(desktopRect)
            self.setCursor(Qt.CrossCursor)
            self.blackMask = QBitmap(desktopRect.size())
            self.blackMask.fill(Qt.black)
            self.mask = self.blackMask.copy()
            self.isDrawing = False
            self.startPoint = QPoint()
            self.endPoint = QPoint()
    
        def paintEvent(self, event):
            if self.isDrawing:
                self.mask = self.blackMask.copy()
                pp = QPainter(self.mask)
                pen = QPen()
                pen.setStyle(Qt.NoPen)
                pp.setPen(pen)
                brush = QBrush(Qt.white)
                pp.setBrush(brush)
                pp.drawRect(QRect(self.startPoint, self.endPoint))
                self.setMask(QBitmap(self.mask))
    
        def mousePressEvent(self, event):
            if event.button() == Qt.LeftButton:
                self.startPoint = event.pos()
                self.endPoint = self.startPoint
                self.isDrawing = True
    
        def mouseMoveEvent(self, event):
            if self.isDrawing:
                self.endPoint = event.pos()
                self.update()
    
        def mouseReleaseEvent(self, event):
            if event.button() == Qt.LeftButton:
                self.endPoint = event.pos()
                # PySide2
                # screenshot = QPixmap.grabWindow(QApplication.desktop().winId())
                # PyQt5
                # screenshot = QApplication.primaryScreen().grabWindow(0)
                # 通用
                screenshot = QApplication.primaryScreen().grabWindow(QApplication.desktop().winId())
                rect = QRect(self.startPoint, self.endPoint)
                outputRegion = screenshot.copy(rect)
                outputRegion.save('d:/sho54t.jpg', format='JPG', quality=100)
                self.close()
    
    
    if __name__ == '__main__':
        # app = QApplication.instance() or QApplication(sys.argv)
        # WScreenShot.run()
        # app.exec_()
    
        app = QApplication(sys.argv)
        win = WScreenShot()
        win.show()
        app.exec_()
    
        # app = QApplication(sys.argv)
        # win = DesktopChosenBox(700, 500, 30)
        # win.show()
        # app.exec_()

    转载自:http://blog.sina.com.cn/s/blog_71a803cb0102y53n.html

    展开全文
  • ios 屏幕截屏

    2015-11-05 21:33:23
    ios屏幕截屏复制代码就可使用 1 首先:导入框架 QuartzCore.frameWork 2 在程序中导入#import定义一个全局变量static int ScreenshotIndex=0; @property (nonatomic, strong)NSString *ScreenshotsPickPath;3 具体...

    ios屏幕截屏复制代码就可使用
    1 首先:导入框架 QuartzCore.frameWork
    2 在程序中导入

    #import<QuartzCore/QuartzCore.h>

    定义一个全局变量

    static int ScreenshotIndex=0;
    @property (nonatomic, strong)NSString *ScreenshotsPickPath;

    3 具体代码

    -(void)ScreenShot{
           //这里因为我需要全屏接图所以直接改了
        //    UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0);     //设置截屏大小
             UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height), YES, 0);     //设置截屏大小 这里设置的是跟屏幕大小
             [[self.view layer] renderInContext:UIGraphicsGetCurrentContext()];
             UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
             UIGraphicsEndImageContext();
             CGImageRef imageRef = viewImage.CGImage;
         //    CGRect rect = CGRectMake(166, 211, 426, 320);//这里可以设置想要截图的区域
             CGRect rect = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);//这里可以设置想要截图的区域
             CGImageRef imageRefRect =CGImageCreateWithImageInRect(imageRef, rect);
             UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRefRect];
             UIImageWriteToSavedPhotosAlbum(sendImage, nil, nil, nil);//保存图片到照片库
             NSData *imageViewData = UIImagePNGRepresentation(sendImage);
    
             NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
             NSString *documentsDirectory = [paths objectAtIndex:0];
             NSString *pictureName= [NSString stringWithFormat:@"screenShow_%d.png",ScreenshotIndex];
             NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:pictureName];
             NSLog(@"截屏路径打印: %@", savedImagePath);
             //这里我将路径设置为一个全局String,这里做的不好,我自己是为了用而已,希望大家别这么写
             [self SetPickPath:savedImagePath];
    
             [imageViewData writeToFile:savedImagePath atomically:YES];//保存照片到沙盒目录
             CGImageRelease(imageRefRect);
             ScreenshotIndex++;
         }
     //设置路径
     - (void)SetPickPath:(NSString *)PickImage {
             _ScreenshotsPickPath = PickImage;
         }
     //获取路径<这里我就直接用于邮件推送的代码中去了,能达到效果,但肯定有更好的写法>
     - (NSString *)GetPickPath {
             return _ScreenshotsPickPath;
         }
    
    展开全文
  • Python实现屏幕截图的两种方式使用windows API使用PIL中的ImageGrab模块下面对两者的特点和用法进行详细解释。一、Python调用windows API实现屏幕截图好处是灵活速度快缺点是:写法繁琐不跨平台...
  • 自动截图 仅通知图标的应用程序会自动将打印屏幕和 alt-printscreen 屏幕截图保存到我的图片目录中。
  • html2canvas屏幕截图.zip

    2020-01-08 16:19:14
    使用html2canvas屏幕截图,也可以进行打印
  • #屏幕快照程序 截取自定义区域的屏幕截图。 最好在绑定到热键时使用。 灵感来自 gyazo
  • 截屏:将截取所有显示器的界面(黄色边框是为了验证截图是否精准,无偏移) 2、中间左边是个网页,右边为截图展示区 动图如下: 截图会受到系统显示设置的影响,如多个显示器,每个显示器的大小不一,每个...
  • Windows屏幕截图在键盘上查找“打印屏幕”按钮,该按钮可以标记为PrtScn或类似的变体。-要捕获整个屏幕(所有显示在屏幕上,包括所有打开的窗口),请按PrtScn按钮。此屏幕快照将放置在剪贴板上。或者,要仅捕获活动...
  • 计算机屏幕截图快捷方式是获取屏幕截图的四种方法. 如何在笔记本电脑上截图?我建议您采用以下四种方法来截取屏幕截图:第一种类型: Ctrl + PrScrn使用此组合键拍摄屏幕快照,您得到的是整个屏幕的图片第二种类型: ...
  • iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏) 2017.03.16 12:18* 字数 52 阅读 563评论 4喜欢 2 1. 截取屏幕尺寸大小的图片并保存至相册 保存至相册只需将方法saveImage中的代码替换即可 ...
  • 屏幕截图如何截取高像素图片A simple screenshot is great for capturing what’s immediately visible on your monitor, but what if you need to capture an entire webpage? Here are three simple ways you can ...
  • mfc框架截取程序屏幕,并打印。使用说明,封装了一个类CCapture,点击实例程序 查看>>test即可实现截屏,点击打印预览就可以看见截屏效果。
  • 最近,我请我的同事帮助捕获一些用于项目文档的屏幕截图。 但是他告诉我,没有屏幕捕获软件就无法捕获屏幕快照。 他只能捕获整个桌面屏幕,而不能捕获活动的Windows屏幕截图。 没有任何屏幕捕获工具的帮助,有可能...
  • 可以在桌面或应用程序窗口中进行屏幕截图(又...在Windows上截屏在键盘上查找“打印屏幕”键,该键可能标记为PrtScn或某些类似的变体。--要捕获整个屏幕(屏幕上显示的所有内容,包括所有打开的窗口),请按PrtScn按钮...
  • 红蜻蜓抓图精灵(RdfSnap)是一款完全免费的专业级屏幕捕捉软件,能够让您得心应手地捕捉到需要的屏幕截图。捕捉图像方式灵活,主要可以捕捉整个屏幕、活动窗口、选定区域、固定区域、选定控件、选定菜单等,图像输出...
  • linux下屏幕截图介绍

    2020-04-15 12:21:56
    linux下屏幕截图介绍 在http://blog.guoshuang.com/?p=4232总结了十种屏幕截图方法,非常不错。原文附在后面,这里先补充一点关于“滚动截屏”: 似乎这是一个很实用的需求,尤其是在截取一些精美网页的时候,截取...
  • 功能:使用内置的简单图形编辑器捕获整个桌面,指定区域或活动窗口以编辑屏幕截图;...打印屏幕截图;从本地磁盘打开现有图像从剪贴板插入图像全局热键使用系统托盘中的图标轻松控制通过代理服务器跨平台工作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,964
精华内容 5,985
关键字:

屏幕截屏打印