Цитата Creat0R:
Код:
Код: Выделить всё
#include
_WinAPI_WriteProcessMemory()
_WinAPI_GetWindowThreadProcessId()
_WinAPI_OpenProcess()
_WinAPI_CloseHandle()Код: Выделить всё
#include
_WinAPI_WriteProcessMemory()
_WinAPI_GetWindowThreadProcessId()
_WinAPI_OpenProcess()
_WinAPI_CloseHandle()
, прикрепил новый UDF к посту. Кстати, есть ещё и версия без DllCalbackRegister, на основе WM_TIMER, но там есть свои ограничения (привязка к фиктивному GUI).
.
(в крайнем случае 7zip'ом).Код: Выделить всё
$InstallPath=@ProgramFilesDir & "\MediaStudio"
; Проверка установленной программы, собсно это и хочется закоментировать и пойти другим путём.
If FileExists(@ProgramFilesDir & "\Ulead Systems\Ulead MediaStudio Pro 8.0\veditor.exe") Then Exit
; Тута не скажу что ставиться, секрет ;-
ShellExecute("****.exe", "/verysilent", "$ScriptDir")
Blockinput(1)
Run("Ulead MediaStudio Pro 8.0.exe")
WinWaitActive("", "Welcome")
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
WinWaitActive("", "License Agreement")
ControlClick("", "", "[Class:Button; Instance:2]", "left", 1)
WinWaitActive("", "Choose Destination Location")
ControlClick("", "", "[Class:Button; Instance:3]", "left", 1)
Send($InstallPath)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
Sleep(800)
Send("{BS 32}")
Send($InstallPath & "\Preview")
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:3]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:6]", "left", 1)
Sleep(200)
ControlClick("", "", "[Class:Button; Instance:9]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:2]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
WinWaitActive("", "InstallShield Wizard Complete")
ControlClick("", "", "[Class:Button; Instance:4]", "left", 1)
Blockinput(0)Код: Выделить всё
Run("Ulead MediaStudio Pro 8.0.exe")
If
WinWaitActive("Uninstall", "") = 0 Then
....
else
ControlClick("", "", "[Class:Button; Instance:4]", "left", 1)
EndIf

Код: Выделить всё
Global $InstallPath=@ProgramFilesDir & "\MediaStudio"
Blockinput(1)
; Тута не скажу что ставиться, секрет ;-
ShellExecute("****.exe", "/verysilent", "$ScriptDir")
Run("Ulead MediaStudio Pro 8.0.exe")
While 1 = 1
$i = $i - 1
$install = WinWaitActive("", "Welcome", 1)
$deinstall = WinWaitActive("deinstall", "text", 1)
If $install = 1 Then install()
If $deinstall = 1 Then deinstall()
If $i = 1 Then MsgBox(16, "", "error")
WEnd
Func deinstall()
;Удаление проги
EndFunc
Func install()
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
WinWaitActive("", "License Agreement")
ControlClick("", "", "[Class:Button; Instance:2]", "left", 1)
WinWaitActive("", "Choose Destination Location")
ControlClick("", "", "[Class:Button; Instance:3]", "left", 1)
Send($InstallPath)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
Sleep(800)
Send("{BS 32}")
Send($InstallPath & "\Preview")
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:3]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:6]", "left", 1)
Sleep(200)
ControlClick("", "", "[Class:Button; Instance:9]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:2]", "left", 1)
Sleep(800)
ControlClick("", "", "[Class:Button; Instance:1]", "left", 1)
WinWaitActive("", "InstallShield Wizard Complete")
ControlClick("", "", "[Class:Button; Instance:4]", "left", 1)
EndFunc
Blockinput(0)