使用c++:
(下面是传递参数的结构)
typedef struct _SHELLEXECUTEINFO {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCTSTR lpVerb;
LPCTSTR lpFile;
LPCTSTR lpParameters;
LPCTSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;
LPVOID lpIDList;
LPCTSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
union {
HANDLE hIcon;
HANDLE hMonitor;
} DUMMYUNIONNAME;
HANDLE hProcess;
} SHELLEXECUTEINFO, * LPSHELLEXECUTEINFO;
(打开实例)
#include < windows.h >
#include < shellapi.h >
#include < stdio.h >
int main( int argc, char * argv[])
{
SHELLEXECUTEINFO shell = { sizeof(shell) };
shell.fMask = SEE_MASK_FLAG_DDEWAIT;
shell.lpVerb = " open " ;
shell.lpFile = " IEXPLORE.EXE " ;
shell.lpParameters = " http://www.baidu.com " ;
shell.nShow = SW_SHOWNORMAL;
BOOL ret = ShellExecuteEx( & shell);
return 0 ;
}
使用c#:
(参数ProcessStartInfo ,参看msdn)
(使用实例 :
只有在STA线程上ShellExecute 才能确保工作无误。在Process的实现中,并没有考虑到这个问题,所以使用Process类运行ShellExecute可能会出错。如果你不能保证调用Process.Start的线程的ApartmentState,可以使用如下的代码来避免这个问题:)
using System;
using System.Threading;
public class Foo
{
public static void OpenUrl()
{
System.Diagnostics.Process.Start(@"http://www.baidu.com");
}
public static void Main()
{
ThreadStart openUrlDelegate = new ThreadStart(Foo.OpenUrl);
Thread myThread = new Thread(openUrlDelegate);
myThread.SetApartmentState(ApartmentState.STA);
myThread.Start();
myThread.Join();
}
}
使用windows脚本:
javascript:
// Create Internet Explorer Object
//InternetExplorer.Application 运行IE浏览器
ie = new ActiveXObject("InternetExplorer.Application");
//var ie=wscript.createobject("internetexplorer.application","event_");
// Define how the window should look
ie.left=-5;
ie.top=-25;
ie.height=860;//高度
ie.width=1035;//宽度
ie.menubar=0;//取消菜单栏
ie.addressbar=0;//取消地址栏
ie.toolbar=0;//取消工具栏
ie.statusbar=0;//取消状态栏
ie.resizable=0;//不允许用户改变窗口大小
ie.visible=1;//窗口可见
ie.navigate("http://www.baidu.com")
//打开窗口
VBScript:
Dim objIE
Set objIE = WScript.CreateObject ("InternetExplorer.Application")
objIE.AddressBar = true
objIE.Visible = true
objIE.Navigate("www.baidu.com")
参考:
http://blogs.msdn.com/oldnewthing/archive/2004/11/26/270710.aspx
http://blog.joycode.com/gangp/archive/2004/08/14/30668.aspx
附录:(来自msdn)
c#:
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
/**//// <summary>
/// Shell for the sample.
/// </summary>
class MyProcess
{
/**//// <summary>
/// Opens the Internet Explorer application.
/// </summary>
void OpenApplication(string myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);
}
/**//// <summary>
/// Opens urls and .html documents using Internet Explorer.
/// </summary>
void OpenWithArguments()
{
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
/**//// <summary>
/// Uses the ProcessStartInfo class to start new processes, both in a minimized
/// mode.
/// </summary>
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);
}
static void Main()
{
// Get the path that stores favorite links.
string myFavoritesPath =
Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
MyProcess myProcess = new MyProcess();
myProcess.OpenApplication(myFavoritesPath);
myProcess.OpenWithArguments();
myProcess.OpenWithStartInfo();
}
}
}
CLI/C++:
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
/**//// <summary>
/// Opens the Internet Explorer application.
/// </summary>void OpenApplication( String^ myFavoritesPath )
{
// Start Internet Explorer. Defaults to the home page.
Process::Start( "IExplore.exe" );
// Display the contents of the favorites folder in the browser.
Process::Start( myFavoritesPath );
}
/**//// <summary>
/// Opens urls and .html documents using Internet Explorer.
/// </summary>void OpenWithArguments()
{
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process::Start( "IExplore.exe", "www.northwindtraders.com" );
// Start a Web page using a browser associated with .html and .asp files.
Process::Start( "IExplore.exe", "C:\\myPath\\myFile.htm" );
Process::Start( "IExplore.exe", "C:\\myPath\\myFile.asp" );
}
/**//// <summary>
/// Uses the ProcessStartInfo class to start new processes, both in a minimized
/// mode.
/// </summary>void OpenWithStartInfo()
{
ProcessStartInfo^ startInfo = gcnew ProcessStartInfo( "IExplore.exe" );
startInfo->WindowStyle = ProcessWindowStyle::Minimized;
Process::Start( startInfo );
startInfo->Arguments = "www.northwindtraders.com";
Process::Start( startInfo );
}
int main()
{
// Get the path that stores favorite links.
String^ myFavoritesPath = Environment::GetFolderPath( Environment::SpecialFolder::Favorites );
OpenApplication( myFavoritesPath );
OpenWithArguments();
OpenWithStartInfo();
}