免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11287 | 回复: 10
打印 上一主题 下一主题

在windows下怎么隐藏运行时的命令行窗口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-15 16:34 |只看该作者 |倒序浏览
写了个检测是否登录的小程序,希望常驻内存运行,若没有登录则自动登录。
没有信息发送到stdout,不知道如何隐藏运行时的命令行窗口。(我使用的activeperl)
我想用perl2exe 打包,但是如果用 -gui 参数(Generate a no-console executable),则运行的时候会出现一个命令行窗口一闪没了,然后还会定时闪一下,而且程序运行会有点问题。

另外,我想实现关机时自动注销,使用 $SIG{INT} = \&logout;不知行不行。关机的时候会向各个进程发送终止信号的吧?但是任务管理器结束进程,好像不会发送。

论坛徽章:
0
2 [报告]
发表于 2011-10-16 05:23 |只看该作者
用PDK打包吧

论坛徽章:
0
3 [报告]
发表于 2011-10-16 11:51 |只看该作者
回复 2# iamlimeng


    不知你指的什么PDK。

我看到cpan上有pp (par packager) 可以打包,不过activeperl 的PPM没有找到这个包。

论坛徽章:
0
4 [报告]
发表于 2011-10-16 17:05 |只看该作者
试了一下pp,用-gui还是会出错。
activestate的PDK,打包Tk,运行都要在窗口后边一个黑的命令行窗口....
Perl摆脱不了Console么....

论坛徽章:
2
金牛座
日期:2013-09-06 09:16:182015年迎新春徽章
日期:2015-03-04 09:53:17
5 [报告]
发表于 2011-10-16 17:10 |只看该作者
PDK可以去掉CONSOLE的,有个选项的,楼主找一下

论坛徽章:
0
6 [报告]
发表于 2011-10-16 22:03 |只看该作者
PDK可以实现的,在程序中也可以加指令。我做过!

论坛徽章:
0
7 [报告]
发表于 2011-10-17 12:51 |只看该作者
回复 5# nixiaoweihunter


    找到了,谢谢了,第二个问题怎么没人说一下,关机的时候会不会给每个进程发送INT信号?

论坛徽章:
0
8 [报告]
发表于 2011-10-17 12:52 |只看该作者
回复 6# iamlimeng


    嗯,找到了。在程序中加指令是啥意思?

另外第二个问题,关机的时候会像进程发INT信号吗?测试任务管理器结束进程,应该是不会发送的。

论坛徽章:
0
9 [报告]
发表于 2011-10-17 12:54 |只看该作者
use Win32::GUI;
my ($DOS) = Win32::GUI::GetPerlWindow();
Win32::GUI::Hide($DOS);

用PDK打包的时候,在Option2中有:Hide console (GUI excuttable)选项,可以隐藏命令行窗口。

TK没研究过,应该有类似的指令。

LZ试一下。

论坛徽章:
0
10 [报告]
发表于 2011-10-17 16:17 |只看该作者
回复 9# iamlimeng


    嗯,谢谢~

现在使用PDK能正确隐藏窗口了。
但是又出现一个问题。就是在Win7下,PDK生成的.exe文件在运行时,执行的系统(`ipconfig`)命令没有返回值,.pl文件运行正常,而且,在PDK生成成功之后的Output标签页下的Testit运行,结果也是正常的。
单独运行.exe文件就不行,而在xp下正常。

求解~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP