PDA

View Full Version : بازکردن تب جدید در اینترنت اکسپلورر



sldvhlds
دوشنبه 10 تیر 1398, 17:25 عصر
سلام دوستان من با این کد System.Diagnostics.Process.Start("iexplore.exe", "http://barnamenevis.org");
سایت دلخواهم رو با IE یا بافایر فاکس باز میکنم هربار که برنامه رو اجرا کنم توی فایر فاکس یک تب جدید میسازه و سایت رو باز میکنه ولی توی IE میاد هربار یک پنجره جدید میسازه که اصلا خوب نیست کسی میتونه ممنون میشم راهنمائی کنید ضمن خارجکی هم سرچ کردم ولی جواب درستی پیدا نکردم
How can I open a new URL in a new Tab of running Internet Explorer instance (not in new window.) from C# program

دلتنگ اسمان
سه شنبه 11 تیر 1398, 17:14 عصر
سلام دوستان من با این کد System.Diagnostics.Process.Start("iexplore.exe", "http://barnamenevis.org");
سایت دلخواهم رو با IE یا بافایر فاکس باز میکنم هربار که برنامه رو اجرا کنم توی فایر فاکس یک تب جدید میسازه و سایت رو باز میکنه ولی توی IE میاد هربار یک پنجره جدید میسازه که اصلا خوب نیست کسی میتونه ممنون میشم راهنمائی کنید ضمن خارجکی هم سرچ کردم ولی جواب درستی پیدا نکردم
How can I open a new URL in a new Tab of running Internet Explorer instance (not in new window.) from C#‎ program

سلام.
ببین این کد جواب میده ؟

ShellWindows iExplorerInstances = new ShellWindows();
if (iExplorerInstances.Count > 0)
{
IEnumerator enumerator = iExplorerInstances.GetEnumerator();
enumerator.MoveNext();
InternetExplorer iExplorer = (InternetExplorer)enumerator.Current;
iExplorer.Navigate(url, 0x800); //0x800 means new tab
}
else
{
//No iexplore running, use your processinfo method
}

Shadow_net
سه شنبه 11 تیر 1398, 18:46 عصر
کد بالا توی مرورگر پیش فرض باز میکنه!

danialafshari
سه شنبه 11 تیر 1398, 18:50 عصر
using SHDocVw;
bool found = false; ShellWindows iExplorerInstances = new ShellWindows();
foreach (InternetExplorer iExplorer in iExplorerInstances)
{
if (iExplorer.Name == "Internet Explorer")
{
iExplorer.Navigate("http://barnamenevis.org", 0x800);
found = true;
break;
}
}
if (!found)
{
System.Diagnostics.Process.Start("iexplore.exe", "http://barnamenevis.org");
}
https://stackoverflow.com/questions/3713206/launch-a-url-in-a-tab-in-an-existing-ie-window-from-c-sharp/3713470

sldvhlds
چهارشنبه 12 تیر 1398, 05:09 صبح
کد دوست عزیز danialafshari کارکرد بدون مشکل ممنونم:تشویق:

sldvhlds
یک شنبه 16 تیر 1398, 22:11 عصر
سلام اگه بخواهیم بعد از اجرای کد اگه پنجره IE فعال نبودو minimize بود به صورت خودکار تبدیل به پنجره فعال شه باید چه تغییراتی ایجاد کنیم ممنون

sldvhlds
دوشنبه 17 تیر 1398, 19:11 عصر
if (!found)
{
System.Diagnostics.Process.Start("iexplore.exe", "http://barnamenevis.org");
}

کد بالا اگه به جای رشته حاوی اسم سایت یک مقدار غیر واقعی بگذاریم میاد اول یک تب الکی باز میکنه و بعد از اون هرچی تب باز کنیم پنجره مرورگر رو به صورت فعال در میاره وظاهرا ایراد برطرف میشه کسی میدونه برای رفع عیبش باید چکار کرد

Mahmoud.Afrad
دوشنبه 17 تیر 1398, 20:07 عصر
سلام اگه بخواهیم بعد از اجرای کد اگه پنجره IE فعال نبودو minimize بود به صورت خودکار تبدیل به پنجره فعال شه باید چه تغییراتی ایجاد کنیم ممنون

از متد ShowWindow باید استفاده کنید.
http://www.pinvoke.net/default.aspx/user32/ShowWindow.html
متد را در کلاس معرفی کنید
[DllImport("User32")]
private static extern int ShowWindow(int hwnd, int nCmdShow);
نحوه استفاده
var m = Process.GetProcessesByName("iexplore").ToList();
m.ForEach(
p=>
{
int hWnd = p.MainWindowHandle.ToInt32();
ShowWindow(hWnd, 1);
});

sldvhlds
دوشنبه 17 تیر 1398, 20:21 عصر
dll رجیستر نمیشه نمیشه به پروژه اضافه کرد:افسرده:

sldvhlds
دوشنبه 17 تیر 1398, 20:22 عصر
coredll is for smart devices, not desktop Windows

Mahmoud.Afrad
سه شنبه 18 تیر 1398, 03:58 صبح
اصلاح کردم.

sldvhlds
سه شنبه 18 تیر 1398, 18:12 عصر
اصلاح کردم.
به خوبی وبدون مشکل کار کرد ممنون

sldvhlds
پنج شنبه 20 تیر 1398, 16:37 عصر
ShowWindow(hWnd, 3);
سلام وقتی کد رو به این صورت اصلاح میکنم تا به صورت تمام صفحه پنجره مرورگر باز شه سیستم هنگ میکنه و توی Task Maneger هم چند تا پروسه مربوط به اینترنت اکسپلورر بوجود میاد کسی میدونه چرا

sldvhlds
سه شنبه 25 تیر 1398, 19:37 عصر
سلام کد را به این صورت اصلاح کردم وجواب داد ShowWindow(hWnd, 9);
ولی مشکلی که هست بعد ارساخت ستاپ برای پروژه ونصب در سیستم مشتری به جای اینکه توی تب جدید باز کنه توی پنجره جدید باز میکنه فایل SHDocVw.dll هم همراه برنامه نصب میشه ضمنا سیستمی که برنامه رو نوشتم ویندوز10 وسیستمی مشتری ویندوز 7 به نظرتون ایراد از فایل dll هست یا از چیز دیگه ممنون میشم دوستان راهنمائی بفرمائید