Что нового

[Автоматизация] Запуск приложения при заходе на определённый сайт

oleg32

Новичок
Сообщения
1
Репутация
0
Добрый день! Прошу помощи.
Наткнулся на скрипт:
#include <IE.au3>
While 1
ProcessWait("iexplore.exe")
$oIE = _IEAttach ("www.yandex.ru", "URL") ; адрес сайта
If @Error = 0 Then
run("notepad.exe"); путь до программы
ExitLoop
EndIf
Sleep(1000)
WEnd
, который запускает приложение при заходе с интернет-эксплорера на яндекс,
как сделать такой же для firefox? Простая замена в скрипте iexplorer на firefox не работает.
и допустим чтобы запускался не просто блокнот, а текстовый файл?
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
oleg32 сказал(а):
чтобы запускался не просто блокнот, а текстовый файл?
Код:
$tFile="полный путь до файла"
ShellExecute($tFile);Запустит программу которая ассоциирована с файлом



Добавлено:
Сообщение автоматически объединено:

и код в теги [autоit][/autоit] заключите, а то вам предупреждение выставят


Добавлено:
Сообщение автоматически объединено:

На счет "рыжей лисицы" :smile: UDF FF.au3
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
oleg32

Код:
#include <Array.au3>

$sUrl = 'yandex.ru'
ProcessWait('firefox.exe')

While 1
Sleep(1000)
$aRet = _OpenGetURL('', -1, 1, 'FireFox') ; получаем адрес из FireFox
; _ArrayDisplay($aRet)
If StringInStr($aRet[1], $sUrl) Then ExitLoop
WEnd

Run('notepad.exe') ; запуск чего-нибудь


Func _OpenGetURL($sURL = "", $hWin = -1, $RetType = 0, $Server="IExplore", $iWait = 10000)
    Local $ret, $err, $uIdInst = DllStructCreate("int")
    Local $hServer[1], $hTopic[1], $hItem[1], $hConv[1], $hData[1], $sData[1]
    Local $sTopic = "WWW_OpenURL", $sItem = $sURL & ',,0x' & Hex($hWin)

    If $sURL = '' Then
        $sTopic = "WWW_GetWindowInfo"
        $sItem = "0x" & Hex($hWin)
    EndIf

    Local $hDll = DllOpen("user32.dll")
    If $hDll=-1 Then Return SetError(1, 0, "") ; Error to open Dll
    $ret = DllCall("user32.dll", "int", "DdeInitialize", "ptr", DllStructGetPtr($uIdInst), "ptr", 0, "int", 0, "int", 0)
    If $ret[0] Then Return SetError(2, $ret[0], "") ; Error Initializing DDE
    $hServer = DllCall($hDll, "int", "DdeCreateStringHandle", "int", DllStructGetData($uIdInst,1), "str", $Server, "int", 1004)

    If $hServer[0] Then
        $hTopic = DllCall($hDll, "int", "DdeCreateStringHandle", "int", DllStructGetData($uIdInst,1), "str", $sTopic, "int", 1004)
        If $hTopic[0] Then
            $hItem = DllCall($hDll, "int", "DdeCreateStringHandle", "int", DllStructGetData($uIdInst,1), "str", $sItem, "int", 1004)
            If $hItem[0] Then
                $hConv = DllCall($hDll, "int", "DdeConnect", "int", _
                    DllStructGetData($uIdInst,1), "int", $hServer[0], "int", $hTopic[0], "int", 0)
                If $hConv[0] Then
                    $hData = DllCall($hDll, "int", "DdeClientTransaction", "ptr", 0, "int", 0, _
                        "int", $hConv[0], "int", $hItem[0], "int", 1, "int", 0x20B0, "int", $iWait, "ptr", 0)
                    If $hData[0] Then $sData = DllCall($hDll, "str", "DdeAccessData", "int", $hData[0], "ptr", 0)
                EndIf
            EndIf
        EndIf
    EndIf

    $iErr = DllCall($hDll, "int", "DdeGetLastError", "int", DllStructGetData($uIdInst, 1))
    If $hData[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hData[0])
    If $hConv[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hConv[0])
    If $hItem[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hItem[0])
    If $hTopic[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hTopic[0])
    If $hServer[0] Then DllCall($hDll, "int", "DdeFreeDataHandle", "int", $hServer[0])
    If $iErr[0] Then Return SetError(3, $iErr[0], "") ; Othe DDE Errors
    DllCall($hDll, "int", "DdeUninitialize", "int", DllStructGetData($uIdInst, 1))
    DllClose($hDll)

    If StringRight($sData[0], 3) = ',""' Then $sData[0] = StringTrimRight($sData[0], 3)
    If $sURL = '' Then $sURL = StringRegExpReplace($sData[0], '^"([^"]*?)".*','"\1"')

    If $RetType = 1 Then
        Local $iRetTitle = StringReplace(StringTrimLeft($sData[0], StringLen($sURL)+1), '\"', '"')
        Local $RetURL[3] = [StringReplace($sData[0], '\"', '"'), $sURL, $iRetTitle]
        Return $RetURL
    EndIf
    Return $sURL
EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
oleg32

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Верх