如何在调用一个只允许双击打开的应用程序?
问题描述:
在C#中要调用一个程序,可是这个程序只允许双击执行,不允许其它方式调用(编写BAT可以打开,但是调用BAT不能打开) 一旦发现调用者,会报错输出调用程序的PID
string baseDir = "C:\\Users\\Administrator\\Desktop\\";
Process startProc = new Process();
startProc.StartInfo.FileName = System.IO.Path.Combine(baseDir, @"C:\Users\Administrator\Desktop\a.bat"); //就是你要打开的文件的详细路径
startProc.StartInfo.UseShellExecute = true;
startProc.StartInfo.WorkingDirectory = baseDir;
startProc.Start();
bat内容如下:
c:
cd C:\Users\Administrator\Desktop\
xxx.exe
试用此文的三种方法全部失败
https://www.xin3721.com/ArticlecSharp/c13180.html
第一种是利用shell32.dll,实现ShellExecute方法
第二种是利用kernel32.dll,实现WinExec方法,
第三种方法是利用Process类
看到楼下的回复试过: CreateProcess ShellExecute 这两种也不行
答
试试看 shellexecute,并且指定下工作路径为当前目录,这个本质上就是双击打开
再不行,把你的程序名修改为 explorer.exe 试试看,看看它是不是有判断父进程文件名的逻辑。
答
start "" "程序名.exe"