这样是在服务端启动notepad.exe进程在客户端执行要用javascript<script>
function button_click()
{
var obj = new ActiveXObject("WScript.shell");
obj.Run("notepad.exe");
}
function button_click()
{
var obj = new ActiveXObject("WScript.shell");
obj.Run("notepad.exe");
}
function button_click()
{
var obj = new ActiveXObject("WScript.shell");
obj.Run("notepad.exe");
}
也就是说在WinForm中编写的类,直接可以用到网页中。
如果是这样你可以按如下步骤操作:
1、建立一个Window Form的自定义控件,其文件名为:CallNote.dll,名称空间为:MyNameSpace,类名为:MyClassName,在控件中拖入一个Button,Click事件的程序如你所写即可。
2、建立一个名为Test.htm的页面,将CallNote.dll拷贝到Test.htm的相同目录下,在Test.htm的<body></body>部分写入如下一段话:
<object id="simpleControl1"classid="http:CallNote.dll#MyNameSpace.MyClassName"
height="300" width="300" VIEWASTEXT>
</object>
谢谢,但我想你理解错了,我使用C#做asp.net。
唯一的办法就是如我所述,你再仔细读一遍吧,为了你好理解,你可以把第2步中的Test.htm改成test.aspx,其它的不变就是了。
关键的一点就要理解:ASP.net在客户端就不能控制你用户的任何动作了!与html文件没有区别。所谓的ASP.net中的Button的Click()事件中的所有程序都是针对服务器操作的!!!!不是针对客户端操作的!!!!
如果你所写的程序,是要打开服务器上的notepad.exe,这有可能么??打开服务器上的notepad.exe,对客户端是没有任何反应的。只会造成这样的结果:有多少用户点击过这个页面上的这个按钮,服务器端就会打开多少过记事本,然后你就费点时间到服务器上一个一个的把记事本都关掉。
你上面写的那一段,总是说网页有错误。关闭浏览器后,提示***内存不能read,确定后关闭。
var obj = new ActiveXObject("WScript.Shell");
obj.Run("notepad.exe");
-----------------------你把脚本存成.js文件, 双击运行运行试试? 如果不能运行, 那就是操作系统把此功能屏蔽了
我找到了一段代码,和你给的类似,可以运行,代码如下:
<script>
function exec (command) {
window.oldOnError = window.onerror;
window._command = command;
window.onerror = function (err) {
if (err.indexOf('utomation') != -1) {
alert('命令' + window._command + ' 已经被用户禁止!');
return true;
}
else return false;
};
var wsh = new ActiveXObject('WScript.Shell');
if (wsh)
wsh.Run(command);
window.onerror = window.oldOnError;
}
</script><input type="button" name="Submit" value="执行" onClick="exec('notepad')">我现在遇到的问题是,我想调用其他的应用程序而不是notepad,路径我应该怎么写?我做了一个测试,我把程序abc(该程序原来安装在C:\Program Files\下)拷贝到c:\winnt\下或c:\winnt\system32下,将notepad 换成abc即可运行!
我想这个是不是和系统变量的Path 有点关系?于是,我把C:\Program Files加入Path变量,程序仍然在C:\Program Files下,运行,脚本错误!请指点迷津,谢谢
如果可以的话,浏览器还有什么安全性可言?把你那个调用的程序改成:format c:/u的话结果会如何呢?谁还敢访问WEB???