2011-09-10 7 views
0

私はswfファイルを再生するためにShockwaveFlashObjectを追加したCシャーププロジェクトを作成しました。 私が直面している問題は、自分のプロジェクト用のインストーラを作成するときにインストール時に自分のマシンで正しく動作しますが、自分のラップトップでswfが正しくロードされますが、_FSCommandには応答しません。私はFSCommandハンドルに入っていないので、tryとcatchブロックを使用することはできません。私はインストールに何かをバンドルする必要がありますか? 私が使用しているラップトップは新品であり、私はそれが私のインストーラに前提条件を追加できるように、すべてのものが正しく動作するために必要なことを知っているようにそれを望んでいました。 また、この情報が何らかの用途に使用されていても、私はプロジェクトのために高度なインストーラを使用してビルドしています。axShockwaveFlash_FSCommandが一部のマシンで応答しない

PS FSCommandが実行されるかどうかを知るために、以下のコードを追加しました。

MessageBox.Show("step 1/2/3"); 

ここにコード全体があります。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using MySql.Data.MySqlClient; 
using System.IO; 
using System.Runtime.InteropServices; 
using System.Diagnostics; 
using System.Globalization; 

namespace WindowsFormsApplication1 
{ 
    public partial class frmFlashIntro : Form 
    { 
     public Form FormfrmMainRef { get; set; } 

     public frmFlashIntro() 
     { 
      InitializeComponent(); 
      axShockwaveFlash1.Playing = true; 
      FormBorderStyle = FormBorderStyle.None; 
      WindowState = FormWindowState.Maximized; 
      string currentPath = Directory.GetCurrentDirectory(); 
      axShockwaveFlash1.Movie = "file://\\" + currentPath + "\\intro.swf"; 
     } 

     private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e) 
     { 
      MessageBox.Show("step 1"); 
      string btn = e.command.ToString(); 
      MessageBox.Show("step 2"); 
      if (btn == "play") 
      { 
       MessageBox.Show("step 3"); 
       try 
       { 
        MessageBox.Show("step 4"); 
        var form2 = new frmMain(); 
        MessageBox.Show("step 5"); 
        this.Hide(); 
        MessageBox.Show("step 6"); 
        form2.Show(); 
       } 
       catch (Exception ex) { MessageBox.Show(ex.ToString()); } 
      } 
      if (btn == "syllabus") 
      { 
       MySqlConnection con = new MySqlConnection(Properties.Settings.Default.conString); 
       con.Open(); 
       Syllabus_usageInformation syl = new Syllabus_usageInformation(this); 
       MySqlCommand cmd = new MySqlCommand("SELECT ImageFiles FROM misc WHERE id=1", con); 
       byte[] img = (byte[])cmd.ExecuteScalar(); 
       string strFn = Convert.ToString(DateTime.Now.ToFileTime()); 
       FileStream fs = new FileStream(strFn, FileMode.CreateNew, FileAccess.Write); 
       fs.Write(img, 0, img.Length); 
       fs.Flush(); 
       fs.Close(); 
       con.Close(); 
       syl.kpImageViewer1.OpenButton = false; 
       syl.kpImageViewer1.ImagePath = strFn; 
       syl.Show(); 
       this.Hide(); 
      } 
      if (btn == "usageInformation") 
      { } 
     } 

    } 
} 

答えて

0

ラップトップにはフラッシュプレーヤーのActiveXコントロールがインストールされていますか?それをインストールする必要があります。それ以外の場合は、.swfファイルを再生できるものはありません。

+0

私のswfは再生されますが、fscommandは何にも反応しません – Tanmay

+0

あなたの関数 'axShockwaveFlash1_FSCommand'は呼び出されていませんか? –

+0

そうだね。それは1つのPCで動作し、別のものではないからです。私は7をインストールし、他のいくつかの別のシステムにもインストールしようとしました。それは7台のマシンすべてで正常に動作しましたが、XPを使用するマシンでは動作しませんでした – Tanmay

関連する問題