https://github.com/pryrt/win32-mechanize-notepadplusplus
Automate the Windows application Notepad++ thru Perl modules and Win32::GuiTest
https://github.com/pryrt/win32-mechanize-notepadplusplus
Last synced: 9 months ago
JSON representation
Automate the Windows application Notepad++ thru Perl modules and Win32::GuiTest
- Host: GitHub
- URL: https://github.com/pryrt/win32-mechanize-notepadplusplus
- Owner: pryrt
- License: other
- Created: 2019-07-29T16:41:39.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2023-05-31T12:53:12.000Z (about 3 years ago)
- Last Synced: 2025-10-03T23:34:33.007Z (9 months ago)
- Language: Perl
- Size: 2.25 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES
- License: LICENSE
Awesome Lists containing this project
README
# NAME
Win32::Mechanize::NotepadPlusPlus - Automate the Windows application Notepad++
# SYNOPSIS
use Win32::Mechanize::NotepadPlusPlus ':main';
my $npp = notepad(); # main application
# DESCRIPTION
Automate the Windows application [Notepad++](https://notepad-plus-plus.org/). This is inspired by the
Notepad++ plugin PythonScript, but I decided to automate the application from the outside, rather than
from inside a Notepad++ plugin. But this module uses similar naming conventions and interface to the
PythonScript plugin.
## REQUIREMENTS
You need to have Notepad++ on your system.
This module will work if Notepad++ is in a standard install location, like `%ProgramFiles%\Notepad++\`
or `%ProgramFiles(x86)%\Notepad++\`, or if it is in your path: when it can find the executable,
it will either use the currently-running instance, or will launch a new instance if none are
currently running. If it cannot find your executable, the will only work if Notepad++ is
already running.
The module was developed with Notepad++ v7.7 or newer in mind, though some features should still
work on older versions of Notepad++. As Notepad++ adds new features, the minimum version for
that method will be indicated in the help.
# LIMITATIONS
This is the first public release of the module. In general, it works. As with all first releases,
there is room for improvement; I welcome feedback.
The first known limitation is that none of the hooks for Scintilla or Notepad++ callbacks have been
enabled. That may come sometime in the future.
All the testing and development was done with a US-English installation of Notepad++, and all the
file encodings have been ANSI or UTF-8.
I [know](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues/2) that I need to include
better tests for encoding, and any help you can provide with that is appreciated.
Notepad++ is a Windows application, so that's the intended platform for this module. However,
I know Notepad++ can be made to run in Wine and similar environments in Linux, so it may be
possible to make this module drive Notepad++ in such an environment. Feedback on this process
is welcome.
# INSTALLATION
To install this module, use your favorite CPAN client.
For a manual install, type the following:
perl Makefile.PL
make
make test
make install
(On Windows machines, you may need to use "dmake" or "gmake" instead of "make", depending on your setup.)
## It didn't install
In general, if the test suite fails and it doesn't install, you will probably need to file a
[bug report](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues).
Known possible causes include
- Bit mismatch
Notepad++ and Perl must have the same bits -- 64bit or 32bit. Make sure they do.
If they don't, it will fail in test file `t\02_bits.t`.
- `-1 NOT >= 0` error
See [issue #28](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues/28):
if you get the message
`SendMessage_getRawString(): -1 NOT >= 0 at C:\usr\local\share\GitHubSvn\Win32-Mechanize-NotepadPlusPlus\lib/Win32/Mechanize/NotepadPlusPlus/Notepad.pm line 755.`
or similar in multiple of the test files, it might be because you have one or
more really large files currently open in Notepad++, or you have too many
files open. Either of these can cause a race condition where the test suite
expects Notepad++ to respond with all files loaded, but Notepad++ isn't quite
ready yet. In that case, **File > Save Session**, then
**File > Close All**. Exit and restart Notepad++. The test suite will
probably pass now (if not, please comment on issue#28). Once passing and
installed, you can **File > Load Session** to restore your previously
active file session.
# AUTHOR
Peter C. Jones ``
Please report any bugs or feature requests
thru the repository's interface at [https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues),
or by emailing ``
or thru the web interface at [http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Win32-Mechanize-NotepadPlusPlus](http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Win32-Mechanize-NotepadPlusPlus).
# COPYRIGHT
Copyright (C) 2019,2020,2021 Peter C. Jones
# LICENSE
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See [http://dev.perl.org/licenses/](http://dev.perl.org/licenses/) for more information.
