1

C に基づいてコンパイルされた exe ファイルを実行するサーバー ページが必要です。

exeファイルは、filew.cによって生成されたfilew.exeです。

ファイル.c>

#include <stdio.h>

int main ()
{
  FILE * fp;
  fp = fopen("test.txt" , "w");
  char* testStr = "this is test string";
  fwrite(testStr , 1 , sizeof(testStr) , fp);
  fclose(fp);
  return 0;
}

これを達成するためにいくつかの方法を試しました。

最初にshellObjectで実行しようとしました

Dim shellObj
Set shellObj = Server.CreateObject("WScript.Shell")
shellObj.run "E:\test\filew.exe"
set shellObj = nothing

うまくいかなかったので、これを試しました

Dim shellObj 
shellObj = Server.CreateObject("Shell.Application")
shellObj.ShellExecute "E:\test\filew.exe"
Set shellObj = nothing

それでもだめ…ということでexeファイルを実行するバッチファイルを作ってみました

test.bat>

dir > e:\test\dir1.txt
E:\test\filew.exe
dir > e:\test\dir2.txt

// 1 行目と 3 行目は、バッチ ファイルが正常に実行されるかどうかをテストするためのものです。

このバッチファイルを

Dim shellObj
Set shellObj = Server.CreateObject("WScript.Shell")
shellObj.run "E:\test\test.bat"
set shellObj = nothing

結果は... dir1.txt と dir2.txt のみが作成され、test.txt は作成されませんでした!!

4

2 に答える 2

0

従来の ASP Web ページから EXE を実行することはできません。このような操作はセキュリティ例外を引き起こし、許可されません。コマンドを EXE に渡すには、昇格されたアクセス許可 (単なるサイト訪問者以上のもの) を想定する DLL インターフェイスを作成する必要があります。または、C コードを DLL に入れることもできます。次に、次のようにDLLを呼び出すことができます...

Set MyDLL = Server.CreateObject("MyDLL.*")
于 2013-05-05T00:12:05.000 に答える