冥界3大法王 发表于 2024-11-6 11:32

如图所示:如何编程实现既能GUI模式,还能支持命令行模式?


佩服,佩服,实在是大大的佩服。这个软件达到了很多的突破。
第一是授权模式的多样化,能GUI中,也能命令行中;既能离线,又能本地,还支持多人。
第二是调用了一款delphi打印堆栈信息的控件造成调试和修改上的一些干扰。
第三授权文件似乎有真有假,难道老外也懂孙子兵法和36计?
这是接下来我要模仿的榜样啊。

smallppgirl 发表于 2024-11-6 13:36

带参数运行吧,main函数根据args来决定是cmd还是gui

evea 发表于 2024-11-6 14:11

https://github.com/OpenNuvoton/ISPTool这个既能GUI模式,还能支持命令行模式

无知灰灰 发表于 2024-11-6 14:23

没啥难的吧,自己判断命令行参数来处理就行了。。。

flybird2007 发表于 2024-11-6 14:43

前几天写了一个,用命令行参数个数来判断

fqbqrr6 发表于 2024-11-8 09:08

加一行`system`不就完了?

NetheRock 发表于 2024-11-12 01:00

应该是读args实现的,不过这种感觉不太常见,一般都是分开的

sisiisthinking 发表于 2024-11-12 18:29

`args` 吗?

我有另一个想法,判断自己父进程是不是 `explorer.exe` 应该可以。

因为双击打开的应用都是资源管理器在启动

相比 `args` 的好处是,这样命令行调用的时候不传参数也能在 CUI 模式下运行。

Kuukyaku 发表于 2024-11-13 13:58

理论上一个exe是“GUI程序”还是“CUI程序”(即命令行程序)是由这个exe文件头的某个参数确定的,GUI是0x2,CUI是0x3,一般把一个GUI程序的0x2改成0x3再双击就会跳出黑框框(反过来可能就会出错),但这不是绝对的。典型的CUI程序也可以通过调用GUI API来创建窗口(核心API基本上在user.dll里面,事实上GUI程序也绕不过这一步),典型的GUI程序也可以通过CreateConsole来创建、读写控制台(核心API在kernel32.dll里面),所以其实没有什么绝对的。
页: [1]
查看完整版本: 如图所示:如何编程实现既能GUI模式,还能支持命令行模式?