[Урок] Полезные функции
|
|
Sergo_bro2 |
Дата: Вторник, 15.04.2014, 20:32 | Сообщение # 1
|
Coder
Сообщений: 892
Статус: Offline
|
Всем доброго времени суток. Я решил писать всякие полезные ну или просто какие нибудь функции и выкладывать их сюда. 1 функция[Меняем Title любого окна]: Код Numpad0:: NewTitleWindow := "ICalc" ; новое название окна ActiveWindow := "Калькулятор" ; окно которое нужно переименовать WM_SETTEXT := 0xC ; код сообщения SendMessage, %WM_SETTEXT%, 0, &NewTitleWindow, , %ActiveWindow% Все коды сообщений тут =================================== 2 функция[Аварийный выход из программы]: Код FatalExit(msg, action=0) { hModule := DllCall("kernel32\FatalAppExit", "Int", action, "Str", msg) DllCall("FreeLibrary", "UInt", hModule) } Используем так: Код FatalExit("Аварийный выход из программы :(") Вывод сообщения можете написать любой. =================================== 3 функция(+ 1 доп.функция)[Очищаем ОЗУ]: Эту функцию выковырял из одного скрипта. Код ClearMemory() { for process in ComObjGet("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_Process") { handle := DllCall("Kernel32.dll\OpenProcess", "UInt", 0x001F0FFF, "Int", 0, "Int", process.ProcessID) DllCall("Kernel32.dll\SetProcessWorkingSetSize", "UInt", handle, "Int", -1, "Int", -1) DllCall("Psapi.dll\EmptyWorkingSet", "UInt", handle) DllCall("Kernel32.dll\CloseHandle", "Int", handle) } return } FreeMemory() { return DllCall("Psapi.dll\EmptyWorkingSet", "UInt", -1) } Использование: Код ClearMemory() FreeMemory() Эта функция подойдет для AntiAFK_R, очень хорошо снижает съедание оперативной памяти используемой ботами. ===================================== 4 функция[Изменяем внешний вид программы]: Вот примерчик, GUI становится таким "староватым": Код Gui, Add, Button, x35 y15 w60 h25 gTheme, Изменить Gui, Show, w131 h55, MyScript Gui, +LastFound ; Делаем его последним найденным окном WinGet, hGUI, ID ; узнаем ID окна return Theme: Theme := !Theme If Theme DllCall("uxtheme\SetWindowTheme","UInt",hGUI,"UInt",0,"Str","") else DllCall("uxtheme\SetWindowTheme","UInt",hGUI,"Str","","UInt",0) Return GuiClose: ExitApp 5 функция[Добавляем в поле ввода "невидимый текст"]: Вот пример: Код Gui, Add, Edit, x42 y30 w200 h20 +0x20 hwndhEdit Gui, Show, AutoSize, Enter Credentials SetEditCue(hEdit, "<>Enter Password<>") return GuiClose: ExitApp
SetEditCue(HWND, Text) { static Set := 0x1500 + 1 return DllCall("User32.dll\SendMessage", "Ptr", HWND, "UInt", Set, "Ptr", True, "WStr", Text) } 6 функция[Блокируем экран, не опасно :)]: Код LockWorkStation()
LockWorkStation() { DllCall("User32\LockWorkStation") } Постепенно буду еще выкладывать что нибудь.
CS:GO RANK: SUPREME*Клац* [b][+]Skype: sergeiplugatyr
Сообщение отредактировал Sergo_bro2 - Вторник, 13.05.2014, 09:44 |
|
|
|
CatWithAutism |
Дата: Вторник, 15.04.2014, 20:35 | Сообщение # 2
|
Я на дерево залез.
Сообщений: 139
Статус: Offline
|
Прочитал только суть, но молодец
сижу я как-то на стуле, потом вдруг встаю, но не могу, жопа вросла в стул, стул врос в пол, пол врос в люстру, люстра пипец тяжёлая... потом отпустило ©Ruskadance
|
|
|
|
Sergo_bro2 |
Дата: Вторник, 13.05.2014, 09:44 | Сообщение # 3
|
Coder
Сообщений: 892
Статус: Offline
|
Добавил еще 1 функцию. Добавлено (13.05.2014, 09:44) --------------------------------------------- Обновил.
CS:GO RANK: SUPREME*Клац* [b][+]Skype: sergeiplugatyr
|
|
|
|
Artem_Buero |
Дата: Вторник, 13.05.2014, 15:58 | Сообщение # 4
|
Сообщений: 4223
Статус: Offline
|
Sergo_bro2, SetCue отличная функция
МОЙ ВК - https://vk.com/gospodin_buero
|
|
|
|
Sergo_bro2 |
Дата: Вторник, 13.05.2014, 16:55 | Сообщение # 5
|
Coder
Сообщений: 892
Статус: Offline
|
Artem_Buero, Пользуйся
CS:GO RANK: SUPREME*Клац* [b][+]Skype: sergeiplugatyr
|
|
|
|
Jamely |
Дата: Среда, 14.05.2014, 11:18 | Сообщение # 6
|
Сообщений: 1603
Статус: Offline
|
Цитата Sergo_bro2 ( ![Ссылка на цитируемый текст](http://s59.ucoz.net/img/fr/ic/4/lastpost.gif) ) SetEditCue(HWND, Text) { static Set := 0x1500 + 1 return DllCall("User32.dll\SendMessage", "Ptr", HWND, "UInt", Set, "Ptr", True, "WStr", Text) } Вот это действительно полезно
|
|
|
|
[CM]EMINƎM |
Дата: Пятница, 16.05.2014, 13:29 | Сообщение # 7
|
Любитель
Сообщений: 46
Статус: Offline
|
Молодец! + поставил :)
• Дима дал разрешение на создание аккаунта. •
Мои разработки: -------------------------------------------------------------------------- Симулятор SAMP: http://cheat-master.ru/forum/150-313718-1#1853601 Chatlog: http://cheat-master.ru/forum/160-313521-1#1852605 --------------------------------------------------------------------------
• Играю в DOTA 2 • • Lerka <3 •
|
|
|
|
MrGPro |
Дата: Среда, 14.09.2016, 00:46 | Сообщение # 8
|
Боец
Сообщений: 202
Статус: Offline
|
Прозрачный текст в форме Edit
Вот >> Скин
Код Gui, +AlwaysOnTop Gui, Add, Edit, w125 hwndhLogin Gui, Add, Edit, y+5 wp hwndhPass Gui, Show EM_SETCUEBANNER(hLogin, "Login") EM_SETCUEBANNER(hPass, "Password", 0) return
; showfocus 1 - показывать подсказку когда в фокусе, 0 - непоказывать подсказку когда в фокусе EM_SETCUEBANNER(HWND, Text, showfocus=1) { Static EM_SETCUEBANNER := 0x1501 IF !(HWND + 0) { GuiControlGet, CHWND, HWND, %HWND% HWND := CHWND } VarSetCapacity(WText, (StrLen(Text) * 2) + 1) DllCall("MultiByteToWideChar", UInt, 0, UInt, 0, UInt, &Text, Int, -1, UInt, &WText, Int, StrLen(Text) + 1) DllCall("SendMessageW", "UInt", HWND, "UInt", EM_SETCUEBANNER, "UInt", showfocus, "UInt", &WText) RETURN }
Добавлено (14.09.2016, 00:46) ---------------------------------------------
Загрузка всех параметров *ini файла в переменные.
Загрузка параметров *.ini в скрипт globalsFromIni("Pricelist.ini")
Перемененные загружаться в таком формате;
Код Script_Сonf1=1 Script_Сonf2=1 Set_Triger=1 Set_Bot=1
Использование и чтение %Script_Сonf1%
Пример файла: *.ini
Код [Script] Conf1=2 Conf2=3 [Set] Triger=1 Bot=2
Сама функция:
Код globalsFromIni(_SourcePath, _VarPrefixDelim = "_") { ; Public Domain 2008 Tuncay Global Local FileContent, CurrentPrefix, CurrentVarName, CurrentVarContent, DelimPos FileRead, FileContent, %_SourcePath% If ErrorLevel = 0 { Loop, Parse, FileContent, `n, `r%A_Tab%%A_Space% { If A_LoopField Is Not Space { If (SubStr(A_LoopField, 1, 1) = "[") { StringTrimLeft, CurrentPrefix, A_LoopField, 1 StringTrimRight, CurrentPrefix, CurrentPrefix, 1 } Else { DelimPos := InStr(A_LoopField, "=") StringLeft, CurrentVarName, A_LoopField, % DelimPos - 1 StringTrimLeft, CurrentVarContent, A_LoopField, %DelimPos% CurrentVarName = %CurrentVarName% %CurrentPrefix%%_VarPrefixDelim%%CurrentVarName% = %CurrentVarContent% } } } } }
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
Сообщение отредактировал MrGPro - Среда, 14.09.2016, 00:47 |
|
|
|
zeka1999 |
Дата: Пятница, 16.09.2016, 20:02 | Сообщение # 9
|
Новичок
Сообщений: 8
Статус: Offline
|
Объясните как работает аварийный выход. И как его активировать..
|
|
|
|