アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perl/TkでGUIプログラミングをしております。
プログラム中のButtonを押した時に自分のパソコンに設定している
既定のブラウザでWEBサイトを開くにはどうすればいいでしょうか?
イメージは下記のような感じです。

use Tk;
use Encode;

$url = "http://okwave.jp/";

$main->Button(-text=>decode("cp932","URLを開く"),-font => ["MS ゴシック", 12],
-command => \&open_url)
->grid(-row=>0,-column=>0);

sub open_url{
# 既定のブラウザでURL($url)を開く処理
}

よろしくお願いします。

A 回答 (4件)

Win32::FileOpが標準モジュールか忘れましたが、それを使えばプロンプトも開きません。



use Win32::FileOp qw(ShellExecute);

$url = "http://okwave.jp/";
ShellExecute($url);
    • good
    • 0
この回答へのお礼

標準モジュールでは無かったので
ppm install Win32-FileOp
にてインストール後、上記ソースで目的を達成できました。
ありがとうございます。

お礼日時:2009/08/07 21:38

コマンドプトンプト、一瞬開きますね・・・。

すみません。
    • good
    • 0
この回答へのお礼

書き忘れていて申し訳ないのですが、私の環境では
コマンドプロンプトが表示される事なくWEBページを開けました。
OS:Windows XP Pro SP3
Perl:Active Perl v5.8.6 build 811

お礼日時:2009/08/07 21:41

#!/usr/bin/perl


use warnings;
use strict;

# 方法 2 jscript か vbscriptを使う。
# ただし、jscript か vbscript のスクリプトファイルを
# 別途用意する必要がある。

my $uri = shift || 'http://google.co.jp';
my $jscript = shift || 'foo.js';
my $cmd = 'cscript.exe';
my $option = '//nologo';

open( my $ph, '-|', $cmd, $option, $jscript, $uri ) or die "$cmd:$!";
close $ph or die "$cmd:$!";

foo.js の 中身
WScript.CreateObject("WScript.Shell").Run(WScript.Arguments.Item(0));
    • good
    • 0
この回答へのお礼

jscriptかvbscriptで出来るようなのを見つけていました。
perlでの使い方を教示頂きありがとうございます。
別途ファイルが必要という事だったので、
今回は見送らせて頂きます。
機会があれば使わせて頂きますね。

お礼日時:2009/08/07 21:37

#!/usr/bin/perl


use strict;
use warnings;

# Windows 限定
my $uri = shift || 'http://google.co.jp';
my $cmd = 'cmd.exe /c start ' . $uri;
system $cmd;
    • good
    • 0
この回答へのお礼

ありがとうございます。
上記方法で目的を達成できました。
一瞬コマンドプロンプトが表示されますが…
これを表示しないようにするのは少し手間かかるみたいですね。

お礼日時:2009/08/01 04:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!