C# WsShell.rundon';t接受变量(如T1)作为参数或参数

C# WsShell.rundon';t接受变量(如T1)作为参数或参数,c#,C#,下面是两个c#过程Test1和Test2一个正常,一个不正常,如果有人知道原因,请帮助 // Not Working X protected void Test1(object sender, EventArgs e) { string T1; T1 = "winword.exe c:/sql_pt_c/mydocx.docx"; string javaScript = "<script lan

下面是两个c#过程
Test1
Test2
一个正常,一个不正常,如果有人知道原因,请帮助

// 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);
    }
//X不工作
受保护的void Test1(对象发送方、事件参数e)
{
字符串T1;
T1=“winword.exe c:/sql\u pt\u c/mydocx.docx”;
字符串javaScript=
“\n”+
“WshShell=新的ActiveXObject('WScript.Shell');\n”+
WshShell.Run(T1,1,true);\n+
"";
RegisterStartupScript(“,javaScript);
}
//工作的/
受保护的void Test1(对象发送方、事件参数e)
{
字符串javaScript=
“\n”+
“WshShell=新的ActiveXObject('WScript.Shell');\n”+
WshShell.Run('winword.exe c:/sql\u pt\u c/mydocx.docx',1,true);\n+
"";
RegisterStartupScript(“,javaScript);
}

我认为您需要连接
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>";
string T1=“winword.exe c:/sql\u pt\u c/mydocx.docx”;
字符串javaScript=
“\n”+
“WshShell=新的ActiveXObject('WScript.Shell');\n”+
WshShell.Run(“+T1+”,1,true);\n+
"";

现在,您包含了文本字符串“T1”,而不是变量的值

T1
是在服务器上运行的代码隐藏(我假设这是ASP.NET)中的一个变量,而您注册为启动脚本的代码将在用户计算机的浏览器中运行。它们在两个不同的时间和两种不同的环境中运行。既然选项2可以工作,为什么不直接使用它呢?我想你也需要一些
,否则它就会变成
WshShell.Run(winword.exe c:/sql…
,它不能正确地解析为javascript。@Damien\u不相信我的人!谢谢。Hi-codingbiz,右,必须更改为T1=“'winword.exe c:/sql\u pt_c/mydocx.docx'”Hi-codingbiz,输入太快,忘记向您表示感谢。非常感谢。你知道你只是为某人节省了很多时间和精力吗。干得好我知道这可能是你的疏忽,只是一个简单的错误,所以没问题。现在您的问题已经解决,您可以删除此问题或将此答案标记为解决问题的正确答案。如果是后者,则在要单击的答案旁边有一个勾号。如果你有多达15个声誉,你也可以向上投票——以下是在StackOverflow上表达感谢的方式:D