One Hat Cyber Team
Your IP :
172.16.0.254
Server IP :
58.26.163.33
Server :
Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Server Software :
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
PHP Version :
7.3.25
Buat File
|
Buat Folder
Eksekusi
Dir :
C:
/
xampp7
/
perl
/
vendor
/
lib
/
Win32
/
View File Name :
Clipboard.pm
package Win32::Clipboard; ####################################################################### # # Win32::Clipboard - Interaction with the Windows clipboard # # Version: 0.58 # Author: Aldo Calpini <dada@perl.it> # # Modified by: Hideyo Imazu <himazu@gmail.com> # ####################################################################### require Exporter; require DynaLoader; @ISA = qw( Exporter DynaLoader ); @EXPORT = qw( CF_TEXT CF_BITMAP CF_METAFILEPICT CF_SYLK CF_DIF CF_TIFF CF_OEMTEXT CF_DIB CF_PALETTE CF_PENDATA CF_RIFF CF_WAVE CF_UNICODETEXT CF_ENHMETAFILE CF_HDROP CF_LOCALE ); sub AUTOLOAD { my($constname); ($constname = $AUTOLOAD) =~ s/.*:://; #reset $! to zero to reset any current errors. local $! = 0; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; } else { my ($pack, $file, $line) = caller; die "Win32::Clipboard::$constname is not defined, used at $file line $line."; } } eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD; } $VERSION = "0.58"; sub new { my($class, $value) = @_; my $self = "I'm the Clipboard!"; Set($value) if defined($value); return bless(\$self); } sub Version { return $VERSION; } sub Get { if( IsBitmap() ) { return GetBitmap(); } elsif( IsFiles() ) { return GetFiles(); } else { return GetText(); } } sub TIESCALAR { my $class = shift; my $value = shift; Set($value) if defined $value; my $self = "I'm the Clipboard!"; return bless \$self, $class; } sub FETCH { Get() } sub STORE { shift; Set(@_) } sub DESTROY { my($self) = @_; undef $self; StopClipboardViewer(); } END { StopClipboardViewer(); } bootstrap Win32::Clipboard; # a little hack to use the module itself as a class. sub main::Win32::Clipboard { my($value) = @_; my $self={}; my $result = Win32::Clipboard::Set($value) if defined($value); return bless($self, "Win32::Clipboard"); } 1; __END__ =head1 NAME Win32::Clipboard - Interaction with the Windows clipboard =head1 SYNOPSIS use Win32::Clipboard; $CLIP = Win32::Clipboard(); print "Clipboard contains: ", $CLIP->Get(), "\n"; $CLIP->Set("some text to copy into the clipboard"); $CLIP->Empty(); $CLIP->WaitForChange(); print "Clipboard has changed!\n"; =head1 DESCRIPTION This module lets you interact with the Windows clipboard: you can get its content, set it, empty it, or let your script sleep until it changes. This version supports 3 formats for clipboard data: =over 4 =item * text (C<CF_TEXT>) The clipboard contains some text; this is the B<only> format you can use to set clipboard data; you get it as a single string. Example: $text = Win32::Clipboard::GetText(); print $text; =item * bitmap (C<CF_DIB>) The clipboard contains an image, either a bitmap or a picture copied in the clipboard from a graphic application. The data you get is a binary buffer ready to be written to a bitmap (BMP format) file. Example: $image = Win32::Clipboard::GetBitmap(); open BITMAP, ">some.bmp"; binmode BITMAP; print BITMAP $image; close BITMAP; =item * list of files (C<CF_HDROP>) The clipboard contains files copied or cutted from an Explorer-like application; you get a list of filenames. Example: @files = Win32::Clipboard::GetFiles(); print join("\n", @files); =back =head2 REFERENCE All the functions can be used either with their full name (eg. B<Win32::Clipboard::Get>) or as methods of a C<Win32::Clipboard> object. For the syntax, refer to L</SYNOPSIS> above. Note also that you can create a clipboard object and set its content at the same time with: $CLIP = Win32::Clipboard("blah blah blah"); or with the more common form: $CLIP = new Win32::Clipboard("blah blah blah"); If you prefer, you can even tie the Clipboard to a variable like this: tie $CLIP, 'Win32::Clipboard'; print "Clipboard content: $CLIP\n"; $CLIP = "some text to copy to the clipboard..."; In this case, you can still access other methods using the tied() function: tied($CLIP)->Empty; print "got the picture" if tied($CLIP)->IsBitmap; =over 4 =item Empty() Empty the clipboard. =item EnumFormats() Returns an array of identifiers describing the format for the data currently in the clipboard. Formats can be standard ones (described in the L</CONSTANTS> section) or application-defined custom ones. See also IsFormatAvailable(). =item Get() Returns the clipboard content; note that the result depends on the nature of clipboard data; to ensure that you get only the desired format, you should use GetText(), GetBitmap() or GetFiles() instead. Get() is in fact implemented as: if( IsBitmap() ) { return GetBitmap(); } elsif( IsFiles() ) { return GetFiles(); } else { return GetText(); } See also IsBitmap(), IsFiles(), IsText(), EnumFormats() and IsFormatAvailable() to check the clipboard format before getting data. =item GetAs(FORMAT) Returns the clipboard content in the desired FORMAT (can be one of the constants defined in the L</CONSTANTS> section or a custom format). Note that the only meaningful identifiers are CF_TEXT, CF_UNICODETEXT, CF_DIB and CF_HDROP; any other format is treated as a string. If CF_UNICODETEXT is used, then binary Unicode data is returned. A perl unicode string can be generated as follows: $text = $clip->GetAs(CF_UNICODETEXT); $text = Encode::decode("UTF16-LE", $text); =item GetBitmap() Returns the clipboard content as an image, or C<undef> on errors. =item GetFiles() Returns the clipboard content as a list of filenames, or C<undef> on errors. =item GetFormatName(FORMAT) Returns the name of the specified custom clipboard format, or C<undef> on errors; note that you cannot get the name of the standard formats (described in the L</CONSTANTS> section). =item GetText() Returns the clipboard content as a string, or C<undef> on errors. =item IsBitmap() Returns a boolean value indicating if the clipboard contains an image. See also GetBitmap(). =item IsFiles() Returns a boolean value indicating if the clipboard contains a list of files. See also GetFiles(). =item IsFormatAvailable(FORMAT) Checks if the clipboard data matches the specified FORMAT (one of the constants described in the L</CONSTANTS> section); returns zero if the data does not match, a nonzero value if it matches. =item IsText() Returns a boolean value indicating if the clipboard contains text. See also GetText(). =item Set(VALUE) Set the clipboard content to the specified string. =item WaitForChange([TIMEOUT]) This function halts the script until the clipboard content changes. If you specify a C<TIMEOUT> value (in milliseconds), the function will return when this timeout expires, even if the clipboard hasn't changed. If no value is given, it will wait indefinitely. Returns 1 if the clipboard has changed, C<undef> on errors. =back =head2 CONSTANTS These constants are the standard clipboard formats recognized by Win32::Clipboard: CF_TEXT 1 CF_DIB 8 CF_HDROP 15 The following formats are B<not recognized> by Win32::Clipboard; they are, however, exported constants and can eventually be used with the EnumFormats(), IsFormatAvailable() and GetAs() functions: CF_BITMAP 2 CF_METAFILEPICT 3 CF_SYLK 4 CF_DIF 5 CF_TIFF 6 CF_OEMTEXT 7 CF_PALETTE 9 CF_PENDATA 10 CF_RIFF 11 CF_WAVE 12 CF_UNICODETEXT 13 CF_ENHMETAFILE 14 CF_LOCALE 16 =head1 AUTHOR Version 0.52 was released by Hideyo Imazu <F<himazu@gmail.com>>. Aldo Calpini <F<dada@perl.it>> was the former maintainer. Original XS porting by Gurusamy Sarathy <F<gsar@cpan.org>>. =cut