【发布时间】:2012-04-16 01:02:02
【问题描述】:
我正在编写一个简单的基于 WMI 的监控应用程序,它通过 TCP 网络套接字将监控数据发送到 Android 应用程序。我用 Titanium Mobile (JavaScript) 编写 Android 应用程序没有问题,以便它创建一个套接字并接受数据。但是,我正在寻找获取 WMI 数据并通过 TCP 套接字发送但使用 非常 基本 Windows GUI 的最佳(最简单和最快)方法。使用 GUI 的唯一原因是用户知道软件正在运行,他们可能会在此处输入 IP 以通过 wifi 连接到 android。这是我目前的情况:
- PHP 和 JavaScript 是我最擅长的语言(作为 Web 开发人员)。我可以使用 PHP 编写 WMI/COM 脚本,并使用 Bamcompile 编译为 Windows 命令行 EXE。它只支持 PHP4,我不确定哪个 GUI 工具包(如果有的话)可以使用它,因为它太旧了,但我仍然更喜欢它作为我的基本 Windows 东西。
- 我一直在使用 Perl (Strawberry Perl) 并意识到它的潜力。但是看到我的主要编程 PC 在代理上,我无法安装 Tk,所以我再次没有 GUI 的东西。我已经尝试过“ppm install Tk”和“cpan Tk”并输入了我所有的代理详细信息,它甚至下载了大量数据/模块,但我遇到了我不知道如何解决的错误,因为我不是还是个 Perl 人。
- 我已经为 PHP 尝试过 WinBinder,双击 Windows .phpw 文件似乎可以工作,但我必须以某种方式将整个东西打包起来,而且后台的命令提示符窗口看起来很乱。
- 我可以使用 AutoIT 3 - 它可以处理 GUI、套接字、所有类似的东西,并编译为 EXE,但我更喜欢 PHP 或 Perl 来获得学习经验,而且我更习惯它们的语法。
- Python 看起来很棒,但与 PHP 或 Perl 有点不同,所以我暂时不打算花时间学习它。虽然它似乎有一个非常有趣的结构,但可能会切换到它。
我想我面临的主要问题是我可以为 PHP 编写这个应用程序,然后 Bamcompile 它,但我需要获取用户的输入并让他们知道某些东西正在运行。我还假设使用 Wapache 之类的东西来显示没有工具栏的 Web 浏览器是行不通的,因为 PHP 必须在连续循环中运行,这会使任何“浏览器”崩溃?这行得通吗?
set_time_limit( 0 ); // 0 means never timeout
ignore_user_abort(true); // continue running when browser closes
所以有什么想法吗? Jscript 和 JSC ?
请记住,我不想学习任何 Microsoft .Net 内容或复杂的 C 语言或 Java。
我确定我可以用我目前的 PHP / JavaScript 技能做这样的事情吗?没有?
【问题讨论】:
-
不,恕我直言,PHP 不是最好的答案。
-
我知道这不是最好的答案。但这是一个可能的答案吗? :-D
-
我不这么认为。即使它是(做一些黑客),PHP 也不是为此而设计的。 PHP 不像 C++ 或其他命令行语言。 PHP 应该运行一次并将 HTML 发送到浏览器。最近添加了 AJAX(以 Javascript 为特色),但仍然 Javascript 执行请求,PHP 脚本运行一次,然后将输出发送到浏览器。在我看来,PHP 不是一个可能的选择。
-
您真的不想在 PHP 4 中编写套接字应用程序。也许可以尝试使用 node JS,它仍然是一个糟糕的选择,但肯定在套接字编程中胜过 PHP。虽然我不确定您如何将其编译为可执行文件。
-
您不能将 PHP 代码编译成可执行文件。如果您想在 Windows 上使用 GUI,则需要使用 C/C++、Java 或 .NET 语言。