I Cn Fly 2020-06-16 11:55 采纳率: 60%
浏览 201
已结题

如何在调用一个只允许双击打开的应用程序?

在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 这两种也不行

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-06-16 12:40
    关注

    试试看 shellexecute,并且指定下工作路径为当前目录,这个本质上就是双击打开
    再不行,把你的程序名修改为 explorer.exe 试试看,看看它是不是有判断父进程文件名的逻辑。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月18日

悬赏问题

  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退