停止直接执行主应用程序并从第二个应用程序执行它
Stop executing main application directly and execute it from the second application?
我想要的是使用我的小型LicenseExe应用程序启动我的主应用程序。
LicenseExe 将检查此系统是否已注册。
如果系统未注册,则应退出许可证可执行文件。如果系统已注册,则 LicenseExe 将调用 ShellExecute 或任何方法来执行主应用程序 exe。
这很容易,我可以做到这一点。
我想要的是,我的主应用程序永远无法通过直接双击其 exe 文件来执行。它仅由 LicenseExe 应用程序执行。可能吗?
这是一种使我的应用程序获得许可的技巧。所以,请指导我。如何停止直接执行我的主应用程序并使其依赖于我的小型 LicenseExe 应用程序。
主应用程序只能从 LicenseExe 应用程序启动,不能通过双击,甚至不能通过命令行启动。
我在Windows 7平台下使用C++Visual Studio 2010。
在主应用程序中,您可以检查已启动它的父进程。如果它不是LicenseExe,那么mainapp应该退出。
参考:Win32 进程如何获取其父进程的 pid?
除此之外,licenseExe 可以在启动主应用程序时将句柄或环境变量传递给它。主应用程序可以验证此类信息是否存在,并继续执行,否则退出。
您可以将主应用程序替换为动态链接库 (DLL)。
DLL 可以根据需要由LinceseExe
动态调用。
您可以在主应用程序中使用命令行参数。启动时,请检查一组参数,如果它们不存在 - 退出应用程序。然后,在 LicenseExe 中,您可以使用只有您知道的给定参数调用应用程序。
Windows系统上的示例:
//main.cpp
int main(int argc, char* argv[]){
if(argc==2 && argv[1]=="f20ASD129d0saCZasa"){
// your normal app-code goes here
}
else return 0;
}
和许可证可执行文件:
//LicenseExe.cpp
#include "systemRegisteredTest.h"
int main(){
if(systemIsLicensed())
system("yourMainApp.exe f20ASD129d0saCZasa");
else return 0;
}
在许可证中创建并锁定互斥锁.exe [当系统注册时] : CreateMutexEx
检查主应用程序中的互斥锁。如果互斥锁被锁定,主应用程序应继续执行。
否则它应该退出。
- 按下Arduino按钮后,如何在C#应用程序上执行操作
- 计算有多少人执行我的C++应用程序
- 从Qt应用程序执行MSI文件
- 我在哪里编写在退出 C++ 窗口窗体应用程序之前执行的代码部分
- 应用程序执行器 vs lpsz用户名 ADsOpenObject.
- 执行递归函数时 C++ 应用程序崩溃
- 程序'main.exe'运行失败:指定的可执行文件不是此操作系统平台的有效应用程序
- 有没有办法在C++应用程序的多次执行中保存值?
- 应用程序在 C++ QT 上执行 sql 后崩溃
- 在 Ubuntu 16.04 的 usr/local/bin 中安装的 c++ 应用程序在从主目录执行时无法正常运行
- 如何分离以C++执行的 Java 应用程序的 stdin/stout/stderr 流
- 有什么理由更喜欢从 IDE 中运行应用程序而不是运行独立的可执行文件?
- 该代码注入第三方Qt应用程序并执行一些方法来获取Qt应用程序信息
- 在 Ubuntu 上运行的节点服务器需要执行 C# 应用程序 - 如何执行
- 我的应用程序是从Visual Studio内部运行还是通过执行EXE文件运行
- 使用可执行应用程序创建和"Scheduling" pthreads
- 是否可以从外部进程注入和执行应用程序
- 如何在不冻结应用程序 1 的情况下从另一个应用程序 1 执行应用程序 2
- CreateProcessAsUser未从Non-Sys32目录执行应用程序
- 执行 c++ 应用程序时获取错误"child exited with value 255"