如果我没有理解错你的意途,你的系统构架应该是这样的:
在server上有一个脚本生成文件,并放入一个文件夹,也许你是用的VB写的winform在server定时跑,然后如果server上的脚本发现这个文件存在,则就需要在client端显示一个对话框,让用户判断如何操作,替换还是保持并打开.
因为你后面是用winform的,而前台是用asp.net ,所以你并没有用到socket编程..如果client也是用winform的话,问题就简单得多.直接用socket就可以很快的实现.如果你的前面是web,我想可以使用以下方法:
1.在server上的database生成一个表,包含二个字段filename,flag
filename:表示你生成的文件名
flag:默认值为0,当为1时,则替换,为2时,则打开原有文件,为3时,则忽略
2.当server上的脚本发现文件存在的时候,将文件名写入filename字段,比如你的文件名为 1.txt, 在filename 里面写入1.txt,此时flag=0
3.在asp.net web上面放置一个ajax的timer控件,每秒钟去读取这个表,如果能找到flag=0的数据,则弹出一个新页面,这个页面包括三个button和一个label,button的Text 属性分别为 ”替换文件","打开原有文件",”取消”.
Label显示这个文件名,可以用querystring引用.
4.当用户处理完成后,并闭弹出的页面,并将database里面的flag字段进行相应的更改.比如需要替换,则当点击”替换文件”按钮后,把filename对应的flag改为1,server上的脚本去读取这个flag , 然后进行操作.
不要用javascript实现所谓的msgbox,因为在不同的浏览器中间会出现很多bug
我明白你一点点意思了,跟我当初学应该想法是差不多
你想在服务器实现弹出按钮?想向Windows应用程序那样,在本机弹出按钮?试问该事件由谁来操作?服务器一个黑大个躺在机房,甚至显示终端都没有,怎么执行这种操作?web终归是与页面到交互的
如果不是的话,那么
CONFIRM的原理是一样的,点"是"产生postback,返回 true
点"否"返回false,不产生postback,相当于你的取消,也就页面无反应
你想要的是客户端编程,还是服务端?WEB是面向无连接的,客户端响应事件到服务端来回的postback,实现按钮弹出,肯定是客户端的事件,也就是客户端编程,无论.NET怎么牛叉,原理终究是一样,也只能是在客户端产生脚本代码响应客户端事件,不可能到服务器上去执行客户端事件,由客户端事件去postback触发服务器的postback。
你想加一个 "否" 用来不替换,而读取,是可以的。MsgBox就能,但是是客户端的,服务器端的按钮弹出,是没有必要的,这种思想也是完全错误不可取的,但是却也不是不可以
---服务器如下实现弹出
添加System.Windows.Forms引用,然后再代码加入using System.Windows.Forms;
//-------------------------------------------------
DialogResult dr= MessageBox.Show("是替换,否不替换读取,取消什么都不做", "你确定要执行如下操作吗?", MessageBoxButtons.YesNoCancel);
if (dr==DialogResult.Yes)
{ Response.Write("是点击"); }
else if (dr == DialogResult.No)
{ Response.Write("否点击"); }
else if (dr==DialogResult.Cancel)
{ Response.Write("取消点击"); }
//---------------------------------------------
VB的代码为就不会写了,自己去改吧