ayd1984 Ответов: 3

Я хочу, чтобы рядом был открыт в fileupload с geckobrowser с#


Здравствуйте друзья, хорошие форумы,

Я использую geckoBrowser в своем настольном проекте c#. Я давал путь к файлу с помощью SendKeys, но у меня были некоторые проблемы.
Веб-сайт, открытый в GeckoBrowser, открывает fileupload для загрузки файлов. Но я не хочу загружать файлы и хочу закрыть эту форму.

Она не появляется в прозе.
Он не появляется в открытых формах, и поэтому я не мог найти способ отключить его.
Как я могу избавиться от этого?

Что я уже пробовал:

Hello friends, good forums,

I'm using geckoBrowser in my c # desktop project. I was giving the file path using SendKeys, but I had some problems.
A website opened in GeckoBrowser opens fileupload to upload files. But I do not want to upload files and I want to close this form.

It does not appear in prosesses.
It does not appear in forms that are open and therefore I could not find a way to turn it off.
How can I get rid of this?

3 Ответов

Рейтинг:
14

ayd1984

public static void Execute()
{
// Enumerate windows to find dialogs
EnumThreadWndProc callback = new EnumThreadWndProc(checkWindow);
EnumThreadWindows(GetCurrentThreadId(), callback, IntPtr.Zero);
GC.KeepAlive(callback);
}

private static bool checkWindow(IntPtr hWnd, IntPtr lp)
{
// Checks if <hWnd> is a Windows dialog
StringBuilder sb = new StringBuilder(260);
GetClassName(hWnd, sb, sb.Capacity);
if (sb.ToString() == "#32770")
{
// Close it by sending WM_CLOSE to the window
SendMessage(hWnd, 0x0010, IntPtr.Zero, IntPtr.Zero);
}
return true;
}
private delegate bool EnumThreadWndProc(IntPtr hWnd, IntPtr lp);
[DllImport("user32.dll")]
private static extern bool EnumThreadWindows(int tid, EnumThreadWndProc callback, IntPtr lp);
[DllImport("kernel32.dll")]
private static extern int GetCurrentThreadId();
[DllImport("user32.dll")]
private static extern int GetClassName(IntPtr hWnd, StringBuilder buffer, int buflen);
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);


Рейтинг:
1

ayd1984

Веб-сайт, который я открыл в GeckoBrowser, автоматически открывает загрузку файлов. Вот почему я хочу его выключить. Я не хочу использовать SendKeys ("{ESC}"). Я ищу альтернативный код


Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" нажмите кнопку под решением и оставьте комментарий.

Не опубликуйте свой комментарий как новое "решение".

ayd1984

о, извините, спасибо вам :)

Рейтинг:
0

F-ES Sitecore

Если вы спрашиваете, как закрыть то, что вы не хотели открывать, то ответ заключается в том, чтобы не открывать его :) Если вы спрашиваете, как автоматизировать загрузку файлов, то вы не можете этого сделать по соображениям безопасности, браузер, вероятно, показывает это окно намеренно, чтобы остановить вас делать то, что вы делаете.