sss
Продвинутый
- Сообщения
- 332
- Репутация
- 96
AutoIt: 3.3.6.1
Версия: 1.0
Категория: Разное
Описание: Данный скрипт позволяет красиво и быстро выключать/перезагружать ПК/загружать программы/файлы (при модификации). Принцип работы: на рабочий стол выводится ярлык скомпилированного скрипта, при запуске появляется небольшое полупрозрачное скругленное окно с галкой и крестом (данет). Да - совершается какое-то действие, нет - выход. Также прога закрывается если тыкнуть мышкой за ее пределами. Где бы вы не ставили ярлык, пункты будут видны. Делал для себя, решил выложить так как понравился результат
Код/Пример: Не запускайте без иконок - ПК выключится
Файл:
EXE+AU3+иконки,
отдельно иконки
Пример с запуском Office потерян - в ближайшее время напишу заново.
Снимок:
История версий:
Источник: http://autoit-script.ru/index.php?topic=5236
Автор(ы): Sky-WaLkeR
Версия: 1.0
Категория: Разное
Описание: Данный скрипт позволяет красиво и быстро выключать/перезагружать ПК/загружать программы/файлы (при модификации). Принцип работы: на рабочий стол выводится ярлык скомпилированного скрипта, при запуске появляется небольшое полупрозрачное скругленное окно с галкой и крестом (данет). Да - совершается какое-то действие, нет - выход. Также прога закрывается если тыкнуть мышкой за ее пределами. Где бы вы не ставили ярлык, пункты будут видны. Делал для себя, решил выложить так как понравился результат
Код/Пример: Не запускайте без иконок - ПК выключится
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPIEx.au3>
#include <StaticConstants.au3>
$pos = MouseGetPos()
$gui_width = 88
$gui_height = 48
If @DesktopWidth - $pos[0] < $gui_width Then
$x = @DesktopWidth - $gui_width - (@DesktopWidth - $pos[0])
Else
$x = $pos[0]
EndIf
If @DesktopHeight - $pos[1] - 30 < $gui_height Then
$y = @DesktopHeight - $gui_height - (@DesktopHeight - $pos[1])
Else
$y = $pos[1]
EndIf
$hForm = GUICreate('OfficeRunner', $gui_width, $gui_height, $x, $y, $WS_POPUP)
_GuiRoundCorners($hForm, 0, 0, 30, 30)
GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST')
GUISetBkColor(0x000000)
_WinAPI_SetLayeredWindowAttributes($hForm, 0x000000, 0, $LWA_COLORKEY)
$hMain = GUICreate('', $gui_width, $gui_height, $x, $y, $WS_POPUP, $WS_EX_LAYERED, $hForm)
GUISetBkColor(0x000000)
$ok = GUICtrlCreateIcon(@ScriptDir & "\ok.ico", -1, 8, 8, 32, 32, BitOR($SS_NOTIFY, $WS_GROUP))
$no = GUICtrlCreateIcon(@ScriptDir & "\no.ico", -1, 48, 8, 32, 32, BitOR($SS_NOTIFY, $WS_GROUP))
_WinAPI_SetLayeredWindowAttributes($hMain, 0x000000, 0, $LWA_COLORKEY)
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')
WinSetTrans($hForm, '', 0)
GUISetState(@SW_SHOW, $hForm)
For $i = 1 To 50 Step 5
WinSetTrans($hForm, '', $i)
Sleep(20)
Next
GUISetState(@SW_SHOW, $hMain)
AdlibRegister('my_ActiveParser', 100)
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $ok
Shutdown(1)
Exit
Case $no
Exit
EndSwitch
Sleep(50)
WEnd
Func WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
WinMove($hMain, '', BitAND($lParam, 0xFFFF), BitShift($lParam, 16))
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_MOVE
Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
Dim $pos, $ret, $ret2
$pos = WinGetPos($h_win)
$ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
If $ret[0] Then
$ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
If $ret2[0] Then
Return 1
Else
Return 0
EndIf
Else
Return 0
EndIf
EndFunc ;==>_GuiRoundCorners
Func WM_NCHITTEST($hWnd, $Msg, $wParam, $lParam)
Return $HTCAPTION
EndFunc ;==>WM_NCHITTEST
Func my_ActiveParser()
If WinActive($hMain, '') = 0 Then
If WinActive($hForm, '') = 0 Then Exit
EndIf
;or WinActive($hMain,'')=0
EndFunc ;==>my_ActiveParser
Файл:
EXE+AU3+иконки,
отдельно иконки
Пример с запуском Office потерян - в ближайшее время напишу заново.
Снимок:
История версий:
Первый и последний релиз
18.03.2013 - небольшое исправление, перезалит на новый хостинг
18.03.2013 - небольшое исправление, перезалит на новый хостинг
Автор(ы): Sky-WaLkeR