Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <Psapi.h>
- #include "avisynth.h"
- #include <iostream>
- #include <string>
- #include <algorithm>
- using namespace std;
- bool hasEnding(std::string const &fullString, std::string const &ending) {
- if (fullString.length() >= ending.length()) {
- return (0 == fullString.compare(fullString.length() - ending.length(), ending.length(), ending));
- }
- else {
- return false;
- }
- }
- AVSValue __cdecl IsAvsPmod(AVSValue args, void* user_data, IScriptEnvironment* env)
- {
- string exe = args[0].AsString("");
- int insensitive = args[1].AsBool(1);
- if (exe.empty())
- env->ThrowError("IsAvsPmod: exe is empty!");
- char buf[MAX_PATH];
- if (GetProcessImageFileName(GetCurrentProcess(), buf, MAX_PATH)) {
- std::string name(buf);
- if (!insensitive) {
- transform(name.begin(), name.end(), name.begin(), ::tolower);
- transform(exe.begin(), exe.end(), exe.begin(), ::tolower);
- }
- return hasEnding(name, exe);
- }
- return false;
- }
- const AVS_Linkage *AVS_linkage = 0;
- extern "C" __declspec(dllexport) const char* __stdcall
- AvisynthPluginInit3(IScriptEnvironment* env, const AVS_Linkage* const vectors)
- {
- AVS_linkage = vectors;
- env->AddFunction("IsAvsPmod", "[exe]s[insensitive]b", IsAvsPmod, 0);
- return "IsAvsPmod?";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement