2013-01-06 80 views
0

下面兩個c#程序Test1 & Test2一個正在工作,一個不工作,如果有人知道爲什麼,請幫忙。WsShell.Run不接受變量(例如T1)作爲參數或參數

// Not Working X  
    protected void Test1(object sender, EventArgs e) 
    { 
     string T1; 
     T1 = "winword.exe c:/sql_pt_c/mydocx.docx"; 
     string javaScript = 
      "<script language=JavaScript>\n" + 
      "WshShell = new ActiveXObject('WScript.Shell');\n" + 
      "WshShell.Run(T1, 1, true);\n" + 
      "</script>"; 
     RegisterStartupScript("", javaScript); 
    } 


// Working v/ 
    protected void Test1(object sender, EventArgs e) 
    { 
     string javaScript = 
      "<script language=JavaScript>\n" + 
      "WshShell = new ActiveXObject('WScript.Shell');\n" + 
      "WshShell.Run('winword.exe c:/sql_pt_c/mydocx.docx', 1, true);\n" + 
      "</script>"; 
     RegisterStartupScript("", javaScript); 
    } 
+0

'T1'是一個變量的值在服務器上運行的代碼(我假設這是ASP.NET),而註冊爲啓動腳本的代碼將在用戶計算機的瀏覽器中運行。他們在兩個不同的時間和兩個不同的環境中運行。而且由於選項2有效,爲什麼不使用它呢? –

回答

0

我認爲你需要連接T1

string T1 = "winword.exe c:/sql_pt_c/mydocx.docx"; 
string javaScript = 
     "<script language=JavaScript>\n" + 
     "WshShell = new ActiveXObject('WScript.Shell');\n" + 
     "WshShell.Run('"+T1+"', 1, true);\n" + 
     "</script>"; 

現在,包括你的文本字符串「T1」,而不是在變量

+0

我想你還想在那裏有幾個'''',否則它會變成'WshShell.Run(winword.exe c:/sql ...)',它不會正確解析爲javascript。 –

+0

@Damien_The_Unbeliever我找到了你!謝謝。 – codingbiz

+0

嗨codingbiz,你的權利,必須改變爲T1 =「'winword.exe C:/sql_pt_c/mydocx.docx'」 – moky

相關問題