Что нового

[Ошибки] Ошибка при объявлении переменной

skorpion_0077

Новичок
Сообщения
16
Репутация
0
Доброго времени суток! Я с AutoIt'ом пока ещё на "вы", поэтому решил попросить помощи тут.
Вот ошибка:
xQnykRx.png


А вот и сама строка:
Код:
Local $objwmiservice = ObjGet("winmgmts://./root/cimv2")


В чём проблема? Заранее спасибо.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в коде одна строка?
 
Автор
S

skorpion_0077

Новичок
Сообщения
16
Репутация
0
joiner
Код:
While 1
	If _processuser(@AutoItPID) == @UserName Then ExitLoop
	Sleep(1000)
WEnd

Func _processuser($ipid)
	Local Const $wbemflagreturnimmediately = 16
	Local Const $wbemflagforwardonly = 32
	Local $username = ""
	Local $objwmiservice = ObjGet("winmgmts://./root/cimv2")
	Local $colpid = $objwmiservice.execquery("Select * from Win32_Process Where ProcessID ='" & $ipid & "'", "WQL", $wbemflagreturnimmediately + $wbemflagforwardonly)
	For $objpid In $colpid
		If $objpid.processid = $ipid Then
			$objpid.getowner($username)
			ExitLoop
		EndIf
	Next
	Return $username
EndFunc

;Дальше некий код, который с предыдущем не имеет связей.
 
A

Alofa

Гость
skorpion_0077 у вас именно в таком виде тоже не работает?
Какая ОС у вас и Autoit?
 
Автор
S

skorpion_0077

Новичок
Сообщения
16
Репутация
0
Alofa

Последняя самая, скачанная с офф сайта. Версия SciTe 3.6.2
 
A

Alofa

Гость
Скажите, а в каких случаях
Код:
$username <> @UserName ; применительно к вышеуказанному скрипту

(Это мне для повышения общей образованности)

ИМХО, функция "_WinAPI_GetProcessUser()" вам вполне заменит вашу "_processuser($ipid)".
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#include <WinAPIProc.au3>
While 1
	If _processuser(@AutoItPID) == @UserName Then ExitLoop
	Sleep(1000)
WEnd

Func _processuser($ipid)
	Local $InfUs
	$InfUs = _WinAPI_GetProcessUser($ipid)
	If Not @error Then Return $InfUs[0]
EndFunc   ;==>_processuser
 
Верх