Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
TERMINAL
29-05-2008, 12:35
Creat0R, Возможно ли как то узнать серийный номер жёсткого диска, CD-ROMa, материнской платы....?
Возможно ли с помощью скрипта писать диски?
Возможно ли с помощью скрипта, зная название программы, к примеру 1С, узнать на какой сетевой адрес и через какой порт она подключена?
SvetlanaK
29-05-2008, 17:45
Можно ли с пом скрипта определить момент появления флэшки в компьютере?
в хелпе отыскала $var = DriveGetDrive( "REMOVABLE" ). но как сделать именно отслеживание? проверку в реальном времени, а не появилась ли флэш...и если появилась то выдать например сообщение типа "проверьте товарисч ее на вирусы, а не тоооооооо...." можно?
VovaVolk,
потом надо вводить имя и пароль »
Диалог отображается куда можно вводить данные?
DENoszone, пишу сайт...а скрипт парсит его с верху до низу »
Одну страничку?
TERMINAL, Возможно ли как то узнать серийный номер жёсткого диска, CD-ROMa, материнской платы....? »
Возможно, но это не ко мне, никогда не сталкивался.
Возможно ли с помощью скрипта писать диски? »
Полагаю что тоже возможно.
Возможно ли с помощью скрипта, зная название программы, к примеру 1С, узнать на какой сетевой адрес и через какой порт она подключена? »
Опять, это не ко мне :)
Я административными задачами не занимался, за исключением мелких, которые были любопытны мне.
SvetlanaK, как сделать именно отслеживание? »
Я как то приводил пример:
#include <GuiConstants.au3>
Global $aDrives = 0
GUICreate("USB Ejector & Monitor", 300, 210)
$List = GUICtrlCreateList("", 20, 20, 260, 140)
$EjectDrive_Button = GUICtrlCreateButton("Eject Drive", 20, 170, 70, 20)
$RefreshList_Button = GUICtrlCreateButton("Refresh List", 210, 170, 70, 20)
_Check_Drives()
AdlibEnable("_Check_Drives", 1000)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $EjectDrive_Button
$sDrive = GUICtrlRead($List)
_EjectDrive(StringLower($sDrive))
Case $RefreshList_Button
$aCheckDrives = DriveGetDrive("Removable")
_SetUSBDrivesList_Proc($List)
EndSwitch
WEnd
Func _Check_Drives()
$aCheckDrives = DriveGetDrive("Removable")
If Not _aDrivesIsIdent($aDrives, $aCheckDrives) Then
$aDrives = $aCheckDrives
_SetUSBDrivesList_Proc($List)
EndIf
EndFunc
Func _SetUSBDrivesList_Proc($iCtrlID=-1)
GUICtrlSetData($iCtrlID, "")
For $i = 1 To UBound($aDrives)-1
If Not _IsFloppyDrives($aDrives[$i]) And DriveStatus($aDrives[$i]) = "READY" Then _
GUICtrlSetData($iCtrlID, StringUpper($aDrives[$i]) & "\")
Next
EndFunc
Func _aDrivesIsIdent(ByRef $avArray1, ByRef $avArray2)
Local $iUbound1 = UBound($avArray1), $iUbound2 = UBound($avArray2)
If $iUbound1 <> $iUbound2 Then Return False
For $i = 1 To $iUbound1-1
If Not _IsFloppyDrives($avArray1[$i], $avArray2[$i]) And _
($avArray1[$i] <> $avArray2[$i] Or DriveStatus($avArray1[$i]) <> "READY" Or _
DriveStatus($avArray2[$i]) <> "READY") Then Return False
Next
Return True
EndFunc
Func _IsFloppyDrives($sDrive1, $sDrive2="")
Return StringRegExp($sDrive1, "(?i)[a-b]") Or ($sDrive2 <> "" And StringRegExp($sDrive2, "(?i)[a-b]"))
EndFunc
Func _EjectDrive($sdLetter, $sVerb="&Извлечь") ;Для английской Winndows $sVerb = "E&ject"
;Раскомментируйте эти строчки для Варианта № 1 :)
;~ Run("rundll32.exe shell32.dll,Control_RunDLL hotplug.dll", @SystemDir)
;~ Return
If $sdLetter = "" Then Return 0
Local Const $SSF_DRIVES = 17
Local $oShell, $oNameSpace, $oDrive
Local $oEvent = ObjEvent("AutoIt.Error", "Error_Handler")
Local $oShell = ObjCreate("Shell.Application")
If Not IsObj($oShell) Then Return SetError(1, 0, 0)
Local $oNamespace = $oShell.NameSpace($SSF_DRIVES)
Local $oDrive = $oNamespace.ParseName($sdLetter)
$oDrive.InvokeVerb($sVerb)
If @error Then Return 0
If DriveStatus($sdLetter) <> "READY" Then
Local $strName = DriveGetLabel($sdLetter) & " (" & StringUpper($sdLetter) & ")"
TrayTip("USB Drive " & $strName & " ejected", "You can now remove the device safely.", 5, 1)
EndIf
Endfunc
Func Error_Handler()
SetError(1)
EndFunc
Maza Faka
30-05-2008, 07:25
TERMINAL
Возможно ли как то узнать серийный номер жёсткого диска, CD-ROMa, материнской платы....?
Очень сложно, если не сказать невозможно. Эти данные можно получить из BIOS-а. Поищи в Googl-е.
Возможно ли с помощью скрипта писать диски?
Можно, для этого есть WinAPI функции.
SvetlanaK
30-05-2008, 11:00
Creat0R, большое спасибо!
Имеем код типа GuiCtrlCreateTab($x, $y, $w, $h
GuiCtrlCreateTabItem("Tab1")
....
GuiCtrlCreateTabItem("Tab2")
...
GuiCtrlCreateTabItem("Tab3")
..
GuiCtrlCreateTabItem("Tab4")
.
GuiCtrlCreateTabItem("")
В некоторых табах имеет ListView. Выбираем в каком нибудь алимент. Переключаемся в другой таб что-то делаем, возвращаемся а выбранный алимент сброшен.
Что значит надо самому запоминать его состояние и восстанавливать при переключении на данную вкладку? Мне кажется много кода будет!
Кто нибудь подскажет имена событий связанные с переключением вкладок. А еще лучше пример обработчика.
Или я опять все привратно трактую, в силу недопонимания?!
И кстатит на что влияет заключительная контсрукция GuiCtrlCreateTabItem("").
Я сначала без неё усе написал а потом у хелпе выглядел!
Creat0R, Возможно ли как то узнать серийный номер жёсткого диска, CD-ROMa, материнской платы....?
Возможно ли с помощью скрипта писать диски?
Возможно ли с помощью скрипта, зная название программы, к примеру 1С, узнать на какой сетевой адрес и через какой порт она подключена? »
1. Я думаю, да.
2. Я думаю, нет, запись дисков не является функцией Windows, она появилась лишь в Windows XP. Только если подключить какой-нибудь command-line прожигатель дисков.
3. Не знаю
NikLok,
Выбираем в каком нибудь алимент. Переключаемся в другой таб что-то делаем, возвращаемся а выбранный алимент сброшен. »
Про какой элемент речь? строка в ListView?
Кто нибудь подскажет имена событий связанные с переключением вкладок. А еще лучше пример обработчика. »
Что именно требуется? проверить переключение вкладки?
#include <GuiConstants.au3>
$GUI = GUICreate("Test Script", 300, 200)
$Main_Tab = GUICtrlCreateTab(20, 10, 260, 140)
$TabItem1 = GUICtrlCreateTabItem("Tab 1")
$TabItem2 = GUICtrlCreateTabItem("Tab 2")
GUISetState(@SW_SHOW, $GUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Main_Tab
Switch GUICtrlRead($Main_Tab)
Case 0
MsgBox(0, "", "Переключение на Tab 1")
Case 1
MsgBox(0, "", "Переключение на Tab 2")
EndSwitch
EndSwitch
WEnd
на что влияет заключительная контсрукция GuiCtrlCreateTabItem(""). »
На закрытие табов, чтобы создаваемые далее контроли не попадали под последний созданный таб.
Про какой элемент речь? строка в ListView? »
Именно, именно!
В принципе на все ответил. Только момент не совсем ясен:
Case 0 MsgBox(0, "", "Переключение на Tab 1") Case 1 MsgBox(0, "", "Переключение на Tab 2") »
Я так понимаю 0 и 1 это внутренние ( скрытые внутрях) идентификаторы табов в соотв с порядком их создания?
Наверное вместо них так же можно использовать $TabItem1 и $TabItem2 ?
А что с сохранением позций listview в табах?
NikLok, Я так понимаю 0 и 1 это внутренние ( скрытые внутрях) идентификаторы табов в соотв с порядком их создания? »
Да, 0 первый таб, 1 (в этом случае) последний.
Наверное вместо них так же можно использовать $TabItem1 и $TabItem2 ? »
Нет, это идентификаторы контроля, а нам нужно проверять свойства текущего Tab'а.
что с сохранением позций listview в табах? »
У меня работает:
#include <GuiConstants.au3>
$GUI = GUICreate("Test Script", 300, 200)
$Main_Tab = GUICtrlCreateTab(20, 10, 260, 140)
$TabItem1 = GUICtrlCreateTabItem("Tab 1")
$ListView = GUICtrlCreateListView("Column", 40, 40, 220, 100)
GUICtrlCreateListViewItem("Item", $ListView)
$TabItem2 = GUICtrlCreateTabItem("Tab 2")
GUISetState(@SW_SHOW, $GUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Приведи пример что конкретно имеется в виду.
Creat0R, Спасибо! Я пока поразбираюсь сам в своих выкрутасах. Наверное что-то напутал! Если что спрошу исчо.
DENoszone
31-05-2008, 08:17
срочно
есть ссылка
http://odnoklassniki.km.ru/my/mail/message.asp?iduser=1200000
ещё надо генерировать в цикле (след ссылка http://odnoklassniki.km.ru/my/mail/message.asp?iduser=1200001 +1 )
в поле сообщения ввести определеный текст.
зараанее спасибо..думю это просто?
Maza Faka
31-05-2008, 14:28
amel27
Посмотри, если будет время:
#include <WindowsConstants.au3>
#include <ToolTipConstants.au3>
Global Const $CW_USEDEFAULT = 0x80000000
Global Const $TOOLTIPS_CLASSA = "tooltips_class32"
Global $hToolTip
$hGUI = GUICreate("Test GUI", 300, 200)
$hToolTip = DllCall("user32.dll", "hwnd", "CreateWindowEx", "int", $WS_EX_TOPMOST, "str", $TOOLTIPS_CLASSA, _
"str", 0, "int", BitOR($WS_POPUP, $TTS_ALWAYSTIP), "int", $CW_USEDEFAULT, _
"int", $CW_USEDEFAULT, "int", $CW_USEDEFAULT, "int", $CW_USEDEFAULT, "hwnd", $hGUI, "hwnd", 0, _
"hwnd", 0, "ptr", 0)
$hToolTip = $hToolTip[0]
$TestButton = GUICtrlCreateButton("Test", 105, 50, 75, 25)
_ToolTipCreate(GUICtrlGetHandle($TestButton), "Its a Test button")
$OkButton = GUICtrlCreateButton("Ok", 105, 100, 75, 25)
_ToolTipCreate(GUICtrlGetHandle($OkButton), "Its a Ok button")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
ExitLoop
EndSwitch
WEnd
Func _ToolTipCreate($sUid, $sText)
Local $tRect = DllStructCreate("int Left;int Top;int Right;int Bottom")
DllCall("user32.dll", "int", "GetClientRect", "hwnd", $sUid, "ptr", DllStructGetPtr($tRect))
Local $tBuffer = DllStructCreate("char[256]")
DllStructSetData($tBuffer, 1, $sText)
Local $TOOLINFO = DllStructCreate("int cbSize;int uFlags;hwnd hWnd;int uId;int rect[4];hwnd hinst;" & _
"ptr lpszText;int lParam;ptr lpReserved")
DllStructSetData($TOOLINFO, "cbSize", DllStructGetSize($TOOLINFO))
DllStructSetData($TOOLINFO, "uFlags", BitOR($TTF_CENTERTIP, $TTF_SUBCLASS))
DllStructSetData($TOOLINFO, "hWnd", $hGUI)
DllStructSetData($TOOLINFO, "uId", $sUid)
DllStructSetData($TOOLINFO, "rect", DllStructGetData($tRect, "Left"), 1)
DllStructSetData($TOOLINFO, "rect", DllStructGetData($tRect, "Top"), 2)
DllStructSetData($TOOLINFO, "rect", DllStructGetData($tRect, "Right"), 3)
DllStructSetData($TOOLINFO, "rect", DllStructGetData($tRect, "Bottom"), 4)
DllStructSetData($TOOLINFO, "hinst", 0)
DllStructSetData($TOOLINFO, "lpszText", 0)
DllStructSetData($TOOLINFO, "lParam", 0)
DllStructSetData($TOOLINFO, "lpReserved", 0)
DllCall("user32.dll", "int", "SendMessage", "hwnd", $hToolTip, "int", $TTM_ADDTOOL, "int", 0, _
"ptr", DllStructGetPtr($TOOLINFO))
EndFunc
Func RGB2BGR($iColor)
Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)
EndFunc ;==>RGB2BGR()
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
Local $tNMHDR, $hWndFrom, $iCode
$tNMHDR = DllStructCreate("hwnd hWndFrom;int IdFrom;int Code", $lParam)
$hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
If $iCode = $TTN_GETDISPINFO Then ConsoleWrite($iCode & @LF)
Return "GUI_RUNDEFMSG"
EndFunc
Пытаюсь получить уведомление TTN_GETDISPINFO, но безуспешно :(
Инфа (http://www.rsdn.ru/article/qna/ui/dlgtips.xml)
DENoszone
01-06-2008, 12:39
а то что я написал можно вобоще сделать??
или нет?
Подскажите, пожалуйста, можно ли без применения других программ, а только с помощью autoit залить файл на фтп? В архиве ничего подходящего не нашел... (Если боян, прошу не пинать :) )
DENoszone, в поле сообщения ввести определеный текст. »
В какое поле?
djair, залить файл на фтп? »
Тут (http://www.autoitscript.com/forum/index.php?showtopic=12473) есть библиотека для работы с FTP.
DENoszone
04-06-2008, 08:25
ну там ..куда писать..вообщем мне надо спам о этому сайту...
я хочу там в конкурсе выграть=)
DENoszone, ну там ..куда писать »
Меня просит войти под моим логином, которого у меня конечно нет :).
DENoszone
04-06-2008, 20:05
ну ..там легко зарегистрирватся=)
DENoszone, там легко зарегистрирватся »
Возможно, но у меня если честно нет желания, одна из причин это не хотение быть соучастником спамо-распространения :).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC