IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   как хитро запустить IE ??? (https://www.imho.ws/showthread.php?t=75250)

i1cho 07.12.2004 19:06

Как хитро запустить IE ??? (и ещё хитрей запустить из IE)
 
Есть файл отчета (в виде html-файла), и его хотелось бы открывать в окошке (Експлорера или чего нибудь другого) не отягощенном кнопками, панелями и т.п. ,а если еще в заданом месте рабочего стола и с заданным размером тогда б воще наступил бы полный комунизьм :cool:

Ghost 07.12.2004 19:11

используй java-функцию window.open() - в ней можно указывать размеры окна, наличие тулбара и проч.

Например:
Код:

window.open(
        "moja_stranichka.html",
        "moe_okoshechko",
        "toolbar=no, scrollbars=yes, resizable=no, width=240, height=300, top=50, left=50");


bloodman 08.12.2004 00:05

Если умеешь кодить на делфи, то в ней есть компонент TWebBrowser так вот его кидаешь на форму и пишешь несколько обработчиков. Вообщем если вариант подходит, то могу поподробнее рассказать.

alexey_ma 08.12.2004 10:29

На с++ это делаеться так (код из моего сом-сервера):
делаем импорт
#import <shdocvw.dll> named_guids
#import <mshtml.tlb> named_guids
Код:

STDMETHODIMP CMyComXXXXX::ShowBrowserInPosition(BSTR bstrURL, long lX, long lY, long lWidth, long lHeight)
{
        SHDocVw::IWebBrowser2Ptr spWebBrowser(__uuidof(InternetExplorer));
        if(spWebBrowser!=NULL)
        {
                spWebBrowser->put_AddressBar(VARIANT_FALSE);
                spWebBrowser->put_StatusBar(VARIANT_FALSE);
                spWebBrowser->put_MenuBar(VARIANT_FALSE);
                spWebBrowser->put_ToolBar(VARIANT_FALSE);
                spWebBrowser->put_Silent(VARIANT_TRUE);
                CComVariant vFlags(VT_EMPTY);
        CComVariant vTargetFrameName (VT_EMPTY);
        CComVariant vPostData(VT_EMPTY);
        CComVariant vHeaders(VT_EMPTY);               
               
                HWND hWnd = (HWND)spWebBrowser->HWND;
                if(hWnd && IsWindow(hWnd))
                {
                        //        ::MoveWindow(hWnd,lX,lY,lWidth,lHeight,TRUE);

                        ::SetWindowPos(hWnd,HWND_TOP,lX,lY,lWidth,lHeight,SWP_SHOWWINDOW);
                        //if you neeed always topmost window try :
                        //::SetWindowPos(hWnd,HWND_TOPMOST,lX,lY,lWidth,lHeight,SWP_SHOWWINDOW);
               
                }
                spWebBrowser->put_Visible(VARIANT_TRUE);
                spWebBrowser->Navigate(bstrURL,&vFlags,&vTargetFrameName,&vPostData,&vHeaders);
       

        }

        return S_OK;}


i1cho 08.12.2004 17:16

уважаемый и вездесущий Ghost
 
по поводу java-функции вопрос возник :молись: можно код программы оформить в виде отдельного файлика (видел такие файлы с расширением .js),запуская который из батника или командной строки имел результатом отрытый експлорер и заданными параметрами
---------------------
уважаемый OLL ценю ваши советы по поводу Delphi и C++ ,но в наличии имеется только текстовый редактор :biggrin: .

Ghost 08.12.2004 17:50

Создай js-файл вот примерно с таким содержимым:
Код:

ie = new ActiveXObject("InternetExplorer.Application");

// Задаём опции окна IE
ie.left      = 50;
ie.top        = 50;
ie.height    = 510;
ie.width      = 470;
ie.menubar    = 0;
ie.toolbar    = 0;

// Задаем пустую страницу
ie.navigate("about:blank");

// Показывем IE
ie.visible=1;

Вместо about:blank, есессно, подставляешь нужную страницу. И запускаешь его. Запуск из батника:
Код:

wscript my_script.js
или
Код:

cscript my_script.js
З.Ы. Вездесущий - это с ослабленным мочевым пузырем? :biggrin:

i1cho 08.12.2004 18:51

Ghost
 
Все получилось :beer: спасибо большое за помощь.
по ходу работы возникают другие вопросы ... не сочтите за офтоп-вроде в тему.
Вставил в отчет линк на пакетный файл(который при клике открывает тотал командер с нужными директориями) и все бы круто да IE все время спрашивает что делать с файлом, толи открывать, толи сохранять.Там есть галочка "Всегда выдавать запрос при открытии файлов данного типа. " ,но она не активна , посмотрев хелп обнаружил следуюшее
---------------
...Флажок Всегда выдавать запрос при открытии таких файлов для некоторых типов файлов недоступен, например для файлов, запускающих программы или команды с расширениями .exe или .com. Это означает, что выдачу запроса перед открытием таких файлов отключить невозможно...
---------------
Интуиция подсказывает что можно это в реестре прибить, дайте навододочку плз.
Есть еще 2- маленьких вопросика... :help:
- чото не не работает линк типа
<A HREF="H:\dir\file.cmd param">Link_туда</A> (param-парметр хочется передать файлу),хотя<A HREF="H:\dir\file.cmd">Link_сюда</A>работает нормально
- и если можно,подскажите де можно почитать про про остальные параметры класса ie.

kot_ 09.12.2004 10:38

Цитата:

Сообщение от i1doc
Вставил в отчет линк на пакетный файл(который при клике открывает тотал командер с нужными директориями) и все бы круто да IE все время спрашивает что делать с файлом, толи открывать, толи сохранять.Там есть галочка "Всегда выдавать запрос при открытии файлов данного типа. " ,но она не активна , посмотрев хелп обнаружил следуюшее
---------------
...Флажок Всегда выдавать запрос при открытии таких файлов для некоторых типов файлов недоступен, например для файлов, запускающих программы или команды с расширениями .exe или .com. Это означает, что выдачу запроса перед открытием таких файлов отключить невозможно...
---------------

Установи параметры безопасности как для локальной сети - по русски наверное будет - меню Настройка, закладка Безопасность. В реестре все находится в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings.
Цитата:

Сообщение от i1doc
Есть еще 2- маленьких вопросика... :help:
- чото не не работает линк типа
<A HREF="H:\dir\file.cmd param">Link_туда</A> (param-парметр хочется передать файлу),хотя<A HREF="H:\dir\file.cmd">Link_сюда</A>работает нормально

Ссылка не командная строка - потому и не работает. Во первых в ссылках недопустимы пробелы - во вторых, параметры передаются
<A HREF="H:\dir\file.cmd?param=param"> - но это для CGI-скрипта. Есть вероятность, что и на командном скрипте отработает - возьми проверь.

Premium 10.12.2004 00:34

Цитата:

i1doc:
Флажок Всегда выдавать запрос при открытии таких файлов
Цитата:

param-парметр хочется передать файлу
Можно сделать файл с расширением .hta , тогда и батник будет запускаться без вопросов Открыть-сохранить и параметры можно передать через скрипт. А в iframe показывать твой html с отчетом. *.hta делать приблизительно таким макаром:
Код:

<html>
<head>
<script><!--
window.resizeTo(500,700)
window.moveTo(10,10)
// --></script>
<title>заголовок</title>
<meta http-equiv="Content-Type" content="text/html"; charset="windows-1251">
<HTA:APPLICATION id="string1"
        border="thick"
        borderStyle="normal"
        scroll="no"
        caption="yes"
        maximizeButton="no"
        minimizeButton="no"
        showInTaskBar="no"
        singleInstance="no"
        sysMenu="yes"
        windowState="normal"
>
<script language="VBScript">
Sub runbatnik()
 Set WshShell=CreateObject("WScript.Shell")
 WshShell.CurrentDirectory="D:\script"
 param="-la -lala -lalala"
 WshShell.Run "D:\script\run.cmd "+param, 1, false
End Sub
</script>
</head>
<body bgcolor=#eeeeee>
<a href="#" onclick=runbatnik()>линк на запуск cmd</a>
<IFRAME src="otchet.html" width=450 height=600></IFRAME>
</body>
</html>



Часовой пояс GMT +4, время: 01:29.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.