需要在安装过程中,或者说,需要在复制文件结束后,自动执行一个 reg.bat 文件,注册控件,该怎么办。
6 个解决方案
#1
用这个:
[DllImport("shell32.dll")]
public extern static int ShellExecute(IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd
);
[DllImport("shell32.dll")]
public extern static int ShellExecute(IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd
);
#2
这是在程序里面执行的,
我这个reg.bat,只需要运行一次,我希望在安装的时候执行,该如何实现
我这个reg.bat,只需要运行一次,我希望在安装的时候执行,该如何实现
#3
在安装代码里执行一次调用!
#4
能说的具体点吗?我是直接用VS里的安装部署的,可以吗?
#5
实现自定义安装类:
[RunInstaller(true)]
public partial class MyInstaller : Installer
{
public MyInstaller()
{
InitializeComponent();
}
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
try
{
ShellExecute(IntPtr.Zero, "Open", fileName, "reg.bat", "", 1);
}
catch (InstallException ex)
{
this.Rollback(savedState);
MessageBox.Show(ex.Message);
}
catch (Exception iex)
{
this.Rollback(savedState);
MessageBox.Show(iex.Message);
}
}
[DllImport("shell32.dll")]
public extern static int ShellExecute(IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd
);
}
#6
#1
用这个:
[DllImport("shell32.dll")]
public extern static int ShellExecute(IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd
);
[DllImport("shell32.dll")]
public extern static int ShellExecute(IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd
);
#2
这是在程序里面执行的,
我这个reg.bat,只需要运行一次,我希望在安装的时候执行,该如何实现
我这个reg.bat,只需要运行一次,我希望在安装的时候执行,该如何实现
#3
在安装代码里执行一次调用!
#4
能说的具体点吗?我是直接用VS里的安装部署的,可以吗?
#5
实现自定义安装类:
[RunInstaller(true)]
public partial class MyInstaller : Installer
{
public MyInstaller()
{
InitializeComponent();
}
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
try
{
ShellExecute(IntPtr.Zero, "Open", fileName, "reg.bat", "", 1);
}
catch (InstallException ex)
{
this.Rollback(savedState);
MessageBox.Show(ex.Message);
}
catch (Exception iex)
{
this.Rollback(savedState);
MessageBox.Show(iex.Message);
}
}
[DllImport("shell32.dll")]
public extern static int ShellExecute(IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd
);
}