安装office的时候,我们通常是双击setupexe安装程序即可进行安装office办公软件,但是d出一个提示消息一次只能运行一个程序实例。
在电脑的工具栏上点击右键,选择启动任务管理器。
选择进程,在进程列表中,找到SetUpexe进程。
在进程上点击右键,选择结束进程。将这个安装程序杀掉,然后在进行安装或者卸载的时候就可以正常进行。
再进行卸载的时候,系统就不会提示只能运行一次实例,即可正常卸载。
同样,再次双击setup应用程序即可正常安装这个程序。
C# WinForm判断程序是否已经运行,使程序只能运行一个实例有很多方法。
第一种,通过进程判断是否启动:
[csharp] view plain copy
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//获取当前进程的ID
int pId = ProcessGetCurrentProcess()Id;
bool isRun = false;
foreach (Process p in ProcessGetProcessesByName("CallMaster"))
{
//取得当前程序的进程,进行比较
if (CommonGetPath()ToLower() == pMainModuleFileName
一般来说的办法就是怎么想让第二次运行知道已经有程序在运行了,或者说怎么能通知第二个程序已经有文件在运行了
例如程序运行后如果程序运行目录没有文件atxt,就在程序运行目录新建一个文件atxt,关闭的时候删除,这样第二次运行发现已存在了这个文件,说明程序已经在运行,故第二次运行直接退出
例如第一个运行程序用系统函数在本地监听一个socket端口,第二次运行程序发现这个端口已经被占用或者能连接,就知道已经有程序在运行了(例如smplayer就这样搞的)
例如第一个运行的程序在注册表某个地方写入一个1,退出时写入0,第二次运行的程序发现注册表这个地方是1就退出,如果是0就可以继续运行了,也就是其实是第一次运行
反正无论什么办法,具体要看你觉得怎么样合适才行的呢。还可以去找系统的进程列表,还可以测试某些环境变量啊,反正方法是很多的是死的,人是活的。
[DllImport("user32dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32dll")]
private static extern bool IsIconic(IntPtr hWnd);
private const int SW_RESTORE = 9;
public void RaiseOtherProcess()
{
Process proc = ProcessGetCurrentProcess();
ProcessGetProcesses();
foreach (Process otherProc in
ProcessGetProcessesByName(ProcessGetCurrentProcess()ProcessName))
{
//ignore "this" process
if (procId != otherProcId)
{
// Found a "same named process"
// Assume it is the one we want brought to the foreground
// Use the Win32 API to bring it to the foreground
IntPtr hWnd = otherProcMainWindowHandle;
if (IsIconic(hWnd))
{
ShowWindowAsync(hWnd, 9);
}
SetForegroundWindow(hWnd);
break;
}
}
}
还是用mutex实现互斥。
当互斥发生时调用以上代码,实现:
2.如果程序已经存在,且最小化,则还原那个程序。
3.如果程序已经存在,且不是最小化(最大化或正常状态),则显示(注意:不是还原!)那个程序。
其实你主要是不知道可以用这个方法:SetForegroundWindow(hWnd);
来显示程序。
关于问题 3dmax2012安装时提醒安装程序实例已经在运行一次仅能运行一个安装一个实例是怎么回事?解决方案如下
1、请检查下在安装3dmax2012的时候有没有打开其他的安装程序,或者打开了其他软件。
2、有时候会因为点击多次,出现打开两个或以上的相同安装程序,有时候安装程序会在后台运行,只在进程中可见。建议重启电脑在进行安装。
3、安装程序安装到一半,被停止。电脑中出现注册信息残留,在360软件管理或者添加删除程序中,看看有没有已有安装信息,如果有请卸载删除,重新安装。
产生该问题的原因有3点:
1、请检查下在安装3dmax2012的时候有没有打开其他的安装程序,或者打开了其他软件。
2、有时候会因为点击多次,出现打开两个或以上的相同安装程序,有时候安装程序会在后台运行,只在进程中可见。建议重启电脑在进行安装。
3、安装程序安装到一半,被停止。电脑中出现注册信息残留,在360软件管理或者添加删除程序中,看看有没有已有安装信息,如果有请卸载删除,重新安装。
个人观点,希望对你有帮助~^-^
以上就是关于安装offec2010电脑显示安装错误,说一次只能运行一个安装程序实例全部的内容,包括:安装offec2010电脑显示安装错误,说一次只能运行一个安装程序实例、C#WINFORM判断程序是否运行,且只能运行一个实例、C/C++中 如何只允许运行一个程序实例多列一些方法。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)