KipFun
19-08-2010, 09:53
Имеется МФУ M1522nf, родное ПО от HP мягко говоря задолбало(постоянные глюки ошибки, не видение сети, ошибки копирования файлов, думаю кто плотно общался с софтом для МФУ от HP поймет меня)
вот рыл на форумах и нарыл батник для установки сетевого сканера BAT файлом вот пример (правда он для M2727):
intall.bat
set sourcepath=%~dp0
pushd %~dp0
cscript.exe get_mfu.vbs %1 F
call C:\temp\set_mfu.bat
if "%HPBATmodel%"=="M2727" (
echo Scaner Driver for 2727
hppniscan01.exe -f "%sourcepath%hppasc07.inf" -m "vid_03f0&pid_4D17&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
if "%HPBATmodel%"=="3390" (
echo Scaner Driver for 3390
hppniscan01.exe -f "%sourcepath%hppasc01.inf" -m "VID_03F0&Pid_3517&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
call Hp_scan.cmd
rem hppniprint01.exe -p HPLaserJetM2727nfMFP -f "%sourcepath%hppcp607.inf" -m "HP LaserJet M2727 MFP Series PCL 6" -c "Network" -a "%1" -e %HPBATmac% -d "hewlett-packardhp_lad7ce"
popd
и get_mfu.vbs
ip1 = LCase(Wscript.arguments.Item(0))
If Wscript.Arguments.Count = 1 Then
qr="Select * From Win32_PingStatus where Address= '"+ip1+"'"
strComputer = "."
Set objWMIService = GetObject(_
"winmgmts:\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
(qr)
For Each objStatus in colPings
If IsNull(objStatus.StatusCode) _
or objStatus.StatusCode<>0 Then
WScript.Echo "No Ping "+ip1
wscript.quit(-1)
Else
Wscript.Echo ip1
End If
Next
end if
url="http://"+ip1+"/info_configuration.html?tab=Status&menu=DevConfig"
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlHTTP.Open "GET",url, false
xmlHTTP.Send
if (xmlhttp.Status<>200) then
wscript.echo "Error server connection"
else
e=Len(xmlhttp.ResponseText)
dim d(15)
i=1
str_tdcls="<td class="+chr(34)+"itemFont"+chr(34)+">"
do
i=i+1
loop until (Mid(xmlhttp.ResponseText,i,8)="h3 class" Or i=e-10)
c=-1
do
c=c+1
do
i=i+1
loop until (Mid(xmlhttp.ResponseText,i,21)=str_tdcls Or i=e-22)
i=i+21
a=i
do
i=i+1
loop until Mid(xmlhttp.ResponseText,i,1)="<"
d(c)=mid(xmlhttp.ResponseText,a,i-a)
loop until c=15
t=15
if right(d(0),4)="3390" then t=14
d(1)=d(2)
d(2)=UCASE(left(d(t),2)+mid(d(t),4,2)+mid(d(t),7,2)+mid(d(t),10,2)+mid(d(t),13,2)+right(d(t),2))
d(3)="Model:" +chr(9)+chr(9)+d(0)
d(4)="Serial:"+chr(9)+chr(9)+d(1)
d(5)="MAC:"+chr(9)+chr(9)+d(2)
for i=3 to 5
wscript.echo d(i)
next
If Wscript.Arguments.Count=2 then
if LCase(Wscript.arguments.Item(1))="f" Then
Set MyFSO = CreateObject("Scripting.FileSystemObject")
Set fbtL = MyFSO.CreateTextFile("C:\TEMP\set_mfu.bat", True)
fbtL.WriteLine("SET HPBATmodel="+mid(d(0),13,5))
fbtL.WriteLine("SET HPBATmac="+d(2))
fbtL.WriteLine("SET HPCOMstart="+chr(34)+comstart+"\HP"+chr(34))
fbtL.Close
end if
end if
end if
Пытался разобратся с адаптацией для M1522nf вот что вышло:
set sourcepath=%~dp0
pushd %~dp0
cscript.exe get_mfu.vbs %1 F
call C:\temp\set_mfu.bat
if "%HPBATmodel%"=="M1522n" (
echo Scaner Driver for 1522
hppniscan01.exe -f "%sourcepath%hppasc08.inf" -m "vid_03f0&pid_4C17&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
if "%HPBATmodel%"=="3390" (
echo Scaner Driver for 3390
hppniscan01.exe -f "%sourcepath%hppasc08.inf" -m "vid_03f0&pid_4C17&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
call Hp_scan.cmd
rem hppniprint01.exe -p HPLaserJetM1522nfMFP -f "%sourcepath%hppcp608.inf" -m "HP LaserJet M1522 MFP Series PCL 6" -c "Network" -a "%1" -e %HPBATmac% -d "hewlett-packardhp_La9AD2"
popd
но оно не работает,
и еще кстати нашел замечательный скрипт на AutoIT но опять не для 1522, взять можно тут
http://files.mail.ru/319SX3
Помогите разобраться с проблемой думаю решение которое получится пригодится многим.
вот рыл на форумах и нарыл батник для установки сетевого сканера BAT файлом вот пример (правда он для M2727):
intall.bat
set sourcepath=%~dp0
pushd %~dp0
cscript.exe get_mfu.vbs %1 F
call C:\temp\set_mfu.bat
if "%HPBATmodel%"=="M2727" (
echo Scaner Driver for 2727
hppniscan01.exe -f "%sourcepath%hppasc07.inf" -m "vid_03f0&pid_4D17&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
if "%HPBATmodel%"=="3390" (
echo Scaner Driver for 3390
hppniscan01.exe -f "%sourcepath%hppasc01.inf" -m "VID_03F0&Pid_3517&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
call Hp_scan.cmd
rem hppniprint01.exe -p HPLaserJetM2727nfMFP -f "%sourcepath%hppcp607.inf" -m "HP LaserJet M2727 MFP Series PCL 6" -c "Network" -a "%1" -e %HPBATmac% -d "hewlett-packardhp_lad7ce"
popd
и get_mfu.vbs
ip1 = LCase(Wscript.arguments.Item(0))
If Wscript.Arguments.Count = 1 Then
qr="Select * From Win32_PingStatus where Address= '"+ip1+"'"
strComputer = "."
Set objWMIService = GetObject(_
"winmgmts:\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
(qr)
For Each objStatus in colPings
If IsNull(objStatus.StatusCode) _
or objStatus.StatusCode<>0 Then
WScript.Echo "No Ping "+ip1
wscript.quit(-1)
Else
Wscript.Echo ip1
End If
Next
end if
url="http://"+ip1+"/info_configuration.html?tab=Status&menu=DevConfig"
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlHTTP.Open "GET",url, false
xmlHTTP.Send
if (xmlhttp.Status<>200) then
wscript.echo "Error server connection"
else
e=Len(xmlhttp.ResponseText)
dim d(15)
i=1
str_tdcls="<td class="+chr(34)+"itemFont"+chr(34)+">"
do
i=i+1
loop until (Mid(xmlhttp.ResponseText,i,8)="h3 class" Or i=e-10)
c=-1
do
c=c+1
do
i=i+1
loop until (Mid(xmlhttp.ResponseText,i,21)=str_tdcls Or i=e-22)
i=i+21
a=i
do
i=i+1
loop until Mid(xmlhttp.ResponseText,i,1)="<"
d(c)=mid(xmlhttp.ResponseText,a,i-a)
loop until c=15
t=15
if right(d(0),4)="3390" then t=14
d(1)=d(2)
d(2)=UCASE(left(d(t),2)+mid(d(t),4,2)+mid(d(t),7,2)+mid(d(t),10,2)+mid(d(t),13,2)+right(d(t),2))
d(3)="Model:" +chr(9)+chr(9)+d(0)
d(4)="Serial:"+chr(9)+chr(9)+d(1)
d(5)="MAC:"+chr(9)+chr(9)+d(2)
for i=3 to 5
wscript.echo d(i)
next
If Wscript.Arguments.Count=2 then
if LCase(Wscript.arguments.Item(1))="f" Then
Set MyFSO = CreateObject("Scripting.FileSystemObject")
Set fbtL = MyFSO.CreateTextFile("C:\TEMP\set_mfu.bat", True)
fbtL.WriteLine("SET HPBATmodel="+mid(d(0),13,5))
fbtL.WriteLine("SET HPBATmac="+d(2))
fbtL.WriteLine("SET HPCOMstart="+chr(34)+comstart+"\HP"+chr(34))
fbtL.Close
end if
end if
end if
Пытался разобратся с адаптацией для M1522nf вот что вышло:
set sourcepath=%~dp0
pushd %~dp0
cscript.exe get_mfu.vbs %1 F
call C:\temp\set_mfu.bat
if "%HPBATmodel%"=="M1522n" (
echo Scaner Driver for 1522
hppniscan01.exe -f "%sourcepath%hppasc08.inf" -m "vid_03f0&pid_4C17&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
if "%HPBATmodel%"=="3390" (
echo Scaner Driver for 3390
hppniscan01.exe -f "%sourcepath%hppasc08.inf" -m "vid_03f0&pid_4C17&IP_SCAN" -a "%1" -e %HPBATmac% -n 1
)
call Hp_scan.cmd
rem hppniprint01.exe -p HPLaserJetM1522nfMFP -f "%sourcepath%hppcp608.inf" -m "HP LaserJet M1522 MFP Series PCL 6" -c "Network" -a "%1" -e %HPBATmac% -d "hewlett-packardhp_La9AD2"
popd
но оно не работает,
и еще кстати нашел замечательный скрипт на AutoIT но опять не для 1522, взять можно тут
http://files.mail.ru/319SX3
Помогите разобраться с проблемой думаю решение которое получится пригодится многим.