amel27,
Цитата:
обновление должен запрашивать не сам IE, а код загружаемой страницы в зависимости от требований ролика
|
Ого, это мне не постичь, я понятия не имею где код брать, и как его приминить тем более

.
Цитата:
этот макрос не задействован ни в одной UDF
|
Он приминяется в DllCallBack

(аж два раза

).
Насколько я знаю, это новый макрос, я его лично приминил пару раз (к примеру в проэкте
KeyBoard and Mouse Cleaner - для которго кстати мне и нужны функции блокирования клавиш

) - В ранних версиях аутоита использовался
$DTM_SETFORMAT = 0x1005, в последних версиях нужно проверять юникодность, если скрипт в юникоде, тогда значение должно быть $DTM_SETFORMAT = 0x1032 (решение от самого Jon'а

), иначе некорректно отображается формат времени (для
GUICtrlCreateDate()) - почему аутоит сам не проверяет, я так и не понял

.
Diamond,
Цитата:
А в чём преимущество встроенной функции перед _GUICtrlListView_Create()
|
Сказать не могу, т.к не использовал никогда второй

- но знаю что встроенная функция вполне идеальна для построения практический любого списка (как в плане стильности, так и в плане функциональности).
Цитата:
Оказалось что WM_SIZE срабатывает даже при команде развернуть-восстановить окно
|
Потому что меняется размер GUI

Я бы использовал тут
WM_SIZING, оно срабатывает
в момент смены размеров.
Кстати если интересно, могу подкинуть функцию для автоматической смены размера колонок в ListView (сам пис
ал), в момент смены размера GUI будут смещаться колонки в идентичный размер для каждой (опционально - либо по ширине списка, либо до последнего разделителя).
Цитата:
Передача строки другому приложению
|
На оф. форуме этот вопрос
решили подобным путём, я же для себя использую такой метод (переделанные функции с того топика):
Скрипт...
Код:

#include <GuiConstants.au3>
RegisterScriptMsg("SendMessage Test", $CmdLineRaw)
$Gui = GuiCreate("SendMessage Test")
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case -3
Exit
EndSwitch
WEnd
Func Main_Msg_Function($vsMsg)
MsgBox(0, "", "Recieved message:" & @LF & @LF & $vsMsg)
Exit
EndFunc
;=====================================
Func RegisterScriptMsg($sTitle, $vMsg)
Local $OccurName = StringReplace(@ScriptFullPath, "\", "")
Local $ERROR_ALREADY_EXISTS = 183
Local $ihWnd = WinGetHandle($sTitle)
Local $hDll = DllCall("kernel32.dll", "int", "CreateMutex", "int", 0, "long", 1, "str", $OccurName)
Local $iLastError = DllCall("kernel32.dll", "int", "GetLastError")
If $iLastError[0] = $ERROR_ALREADY_EXISTS Then
_AU3COM_SendData($vMsg, $ihWnd)
Exit
Else
Local Const $WM_COPYDATA = 0x4A
GUIRegisterMsg($WM_COPYDATA, "_GUIRegisterMsgProc")
EndIf
EndFunc
Func _GUIRegisterMsgProc($hWnd, $MsgID, $WParam, $LParam)
Local Const $WM_COPYDATA = 0x4A
If $MsgID = $WM_COPYDATA Then
Local $vsMsg = _AU3COM_RecvData($LParam)
Local $MSGRECVD = DllStructGetData($vsMsg, 1)
;Here is go whatever we need to do with the recieved string ($MSGRECVD)
Call("Main_Msg_Function", $MSGRECVD)
EndIf
EndFunc
Func _AU3COM_SendData($InfoToSend, $RecvWinHandle)
Local Const $WM_COPYDATA = 0x4A
Local $StructDef_COPYDATA = "dword var1;dword var2;ptr var3"
Local $CDString = DllStructCreate("char var1[256];char var2[256]") ;the array to hold the string we are sending
DllStructSetData($CDString, 1, $InfoToSend)
Local $pCDString = DllStructGetPtr($CDString) ;the pointer to the string
Local $vs_cds = DllStructCreate($StructDef_COPYDATA);create the message struct
DllStructSetData($vs_cds, "var1", 0) ;0 here indicates to the receiving program that we are sending a string
DllStructSetData($vs_cds, "var2", String(StringLen($InfoToSend) + 1));tell the receiver the length of the string
DllStructSetData($vs_cds, "var3", $pCDString) ;the pointer to the string
Local $pStruct = DllStructGetPtr($vs_cds)
DllCall("user32.dll", "long", "SendMessage", "hwnd", $RecvWinHandle, "int", $WM_COPYDATA, "int", 0, "int", $pStruct)
$vs_cds = 0 ;free the struct
$CDString = 0 ;free the struct
Return 1
EndFunc
Func _AU3COM_RecvData($COM_LParam)
; $COM_LParam = Poiter to a COPYDATA Struct
Local $STRUCTDEF_AU3MESSAGE = "char var1[256];int"
Local $StructDef_COPYDATA = "dword var1;dword var2;ptr var3"
Local $vs_cds = DllStructCreate($StructDef_COPYDATA, $COM_LParam)
; Member No. 3 of COPYDATA Struct (PVOID lpData;) = Pointer to Costum Struct
Local $vs_msg = DllStructCreate($STRUCTDEF_AU3MESSAGE, DllStructGetData($vs_cds, 3))
Return $vs_msg
EndFunc
Этот скрипт нужно запустить (не из SciTE), и потом запустить его ещё раз

- получим ком. строку с которой запущен скрипт... очень полезно если нужно не запускать повторно копию скрипта, и при этом передать данные (такие как путь к "сбросанному" файлу в файл программы

).