如何用C+编写启动程序+;或Windows Vista的C# 如何在C++或C语言中编写程序,在Windows Vista上启动应用程序?
例如,启动Dreamweaver CS 4(“C:\Program Files\Adobe\Adobe Dreamweaver CS4\Dreamweaver.exe),并使用C中的BringWindowToTop函数将其置于顶部#如何用C+编写启动程序+;或Windows Vista的C# 如何在C++或C语言中编写程序,在Windows Vista上启动应用程序?,c#,c++,windows-vista,C#,C++,Windows Vista,例如,启动Dreamweaver CS 4(“C:\Program Files\Adobe\Adobe Dreamweaver CS4\Dreamweaver.exe),并使用C中的BringWindowToTop函数将其置于顶部# Process.Start(“c:\whatever\somefile.exe”,); 在C/C++中应该这样做有很多方法 system("c:\whatever\somefile.exe"); ShellExecute(NULL,_T(""), _T("C:\
Process.Start(“c:\whatever\somefile.exe”,);
在C/C++中应该这样做有很多方法
system("c:\whatever\somefile.exe");
ShellExecute(NULL,_T(""), _T("C:\\windows\\notepad.exe"), _T(""), NULL, SW_SHOWMAXIMIZED);
应该根据需要启动程序。使用函数。或者参见。您将遇到的主要问题是找出哪个新窗口属于刚刚创建的进程。一个简单的解决方案是
EnumWindows()前后,然后提升新创建的顶层窗口。因为你的发射器可能有焦点,它可以将焦点放在新窗口上。 不C++或C,但是,使用,你可以启动程序,或者自动点击你的制作,或者把它放到DW4窗口上面,例如(未测试):
一旦脚本满足您的需要,就会有一个工具将其转换为exe()。
希望这能有所帮助:)我认为下面应该是最简单的方法
system("c:\whatever\somefile.exe");
ShellExecute(NULL,_T(""), _T("C:\\windows\\notepad.exe"), _T(""), NULL, SW_SHOWMAXIMIZED);
您可以使用runas命令代替notepad.exe。
有关runas命令的更多详细信息,请参阅。要启动程序,请使用:进程。启动
要查找exe文件的路径,可以查看注册表
我建议您在注册表中手动搜索计算机中exe的实际路径,并通过这种方式尝试查看路径保存的位置
要将窗口置于前面,可以使用setforegroundindow(int-hWnd)
以及FindWindow(string-lpClassName,string-lpWindowName)
,如下所述:
希望有帮助。简单的快捷方式有什么问题?可能重复-也许我不明白这个问题,但如果该程序只启动另一个程序,为什么不使用一行shell脚本呢?问题是Dreamweaver没有像Outlook和Visual Studio那样将自己置于其他一切之上,而是将自己置于首位ks在任务栏上,我必须点击那里才能回到Dreamweaver。好的,但是如何让它在上面?@Chris_45“好的,但是如何让它在上面?“girl进程通常在顶部。好吧,有进展了,但是这个脚本确实占据了窗口,如果我按下Visual Studio DW的快捷键,它仍然在前面,我希望当我按下这些键时,应用程序将自己放在前面?我不太明白你是使用autoit为VS设置了一个快捷键,还是使用autoit来启动DW和其他东西来启动VS?是的,autoit用于DW和其他东西用于VS,问题是我必须模仿DW,然后才能看到其他东西,当我最大化它时,它会停留在“英尺”位置,并有点“占据”屏幕?试着用WinActivate(“Dreamweaver”)
替换WinSetOnTop(“Dreamweaver”)
;但我认为您真正需要的是一些热键管理软件,如autohotkey[1]或类似的软件,将所有热键+操作放在一个地方,用于DW启动和聚焦。[1] 在Windows上,这是一种间接操作,它可能与常规进程启动的行为在一些细节上不匹配,例如环境、将窗口置于顶部等。Windows上的系统调用将首先找到cmd.exe并将命令发送给该命令。使用ShellExecute的工作方式更像是资源管理器。
ShellExecute(NULL,_T(""), _T("C:\\windows\\notepad.exe"), _T(""), NULL, SW_SHOWMAXIMIZED);