問題を公開しますが、まずすべての詳細を提供するために設定を表示する必要があります。アクションスクリプトNativeProcess、resolvePathおよびswfが機能しません
2つの仮想マシンと2つのウィンドウがあります。最初の1つは、開発環境(IDE)があり、2番目に特別なものは何もインストールされていないすべてのアクションスクリプトを開発する場所です。両方とも、Adobe AIRとAdobe Flash Playerがあります。
これは私の問題です。私はNativeProcessを使用してコマンドラインでdllをロードするCMD.exeを実行するスクリプトを(最初のもので)開発します。 そして私がビルドするとき&プロジェクトを実行するとすべてが正常です。チェックして、dllが読み込まれます。しかし、問題は、2番目のWindowsがローカルホストのWebサイトに接続して(サーバーとして再生する最初のウィンドウに)、my.dllをロードしないファイル "myProgram.swf"(ActionScriptプログラム)を実行するときです。
今、私はあなたにすべての私のコードを印刷:
これは、DLL「myProgram.swf」をロードするスクリプトです:
public class NativeProcessExample extends Sprite
{
public var process:NativeProcess;
public function NativeProcessExample()
{
if(NativeProcess.isSupported)
{
setupAndLaunch();
}
else
{
trace("NativeProcess not supported.");
}
}
public function setupAndLaunch():void
{
var fmt:TextFormat = new TextFormat();
var txt:TextField = new TextField();
fmt.size = 32;
txt.text = 'Hello, world!' + '\n' +
'Width = ' + stage.fullScreenWidth + '\n' +
'Height = ' + stage.fullScreenHeight;
txt.setTextFormat(fmt);
txt.autoSize = TextFieldAutoSize.LEFT;
addChild(txt);
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory.resolvePath("C:\\Windows\\System32\\regsvr32.exe");
nativeProcessStartupInfo.executable = file;
var args:Vector.<String> = new Vector.<String>();
args.push("C:\\Users\\myUser\\Downloads\\myDLL.dll");
nativeProcessStartupInfo.arguments = args;
var process:NativeProcess = new NativeProcess();
process.start(nativeProcessStartupInfo);
process.addEventListener(NativeProcessExitEvent.EXIT, exitHandler);
私はカット(私はすべての部分が含まれており、最後に削除)スクリプトその原因が長すぎますが、ここで最も興味深い部分です。
ここでは、2番目のWindowsが接続してdllを回復するための "index.php"を表示します。 :
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<style type=\"text/css\">
body, html
{
width:100%;
height:100%;
overflow:hidden;
}
#SWFSquare
{
height: 200px;
width: 200px;
background-color: blue;
}
</style>
<script type="text/javascript" src="swfobject.js"></script>
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
</head>
<body bgcolor="#ffdfaf">
<div id="SWFSquare">
</div>
<input type="button" value="Download" id="buttonDownload" style="margin-left: auto; margin-right: auto; display: block;">
<script type="text/javascript">
$(function() {
$("#buttonDownload").click(function() {
window.open("myDLL.dll");
myFunction();
});
function myFunction() {
setTimeout(function(){
var element = document.getElementById("SWFSquare");
swfobject.embedSWF("myProgram.swf", element, 300, 120, 10);
},10000);
}
});
</script>
</body>
</html>
だから私はあなたがすべての必要な情報を持っている願っています。詳細は私に尋ねてください。
思い出してください。私の開発環境(IDE)の下で1番目のWindowsでスクリプトを起動すると、すべてのDLLがロードされますが、index.phpに接続して2番目のWindowsでロードしようとすると、SWFが動作しますページに "HelloWorld"というメッセージが表示されますが、DLLがロードされていません...
私を助けてくれますか? 。あなたのよう
:私は:-(2週間のためにこれに取り組むすべての
質問は本当に不明です(私にとっては少なくとも)。あなたは何をしようとしているのですか ?そのAS3コードは、あなたのAIRアプリケーション(サーバー)または 'index.php'によってロードされたSWF用です。次に、AIRアプリケーションとSWFの関係は何ですか?もちろん、あなたはNativeProcessがAIRのためだけに利用可能であることを知っておくべきです...あなたの目標とあなたの問題をより詳しく説明できますか? – akmozo
OSのファイル(exeまたはdllなど)を読み込むためにブラウザにSWFが実行されることはありません。これはセキュリティの問題です。 IDEでは、AIRアプリケーション(インストールされているアプリケーションのように動作している)をテストしています。 –
まず、すばやい回答をいただきありがとうございました:-) – 0wn3d