View Full Version : گرفتن سریال USB با javascript
alihoseini
چهارشنبه 13 تیر 1386, 08:34 صبح
سلام
من میخواستم شماره سریال USB رو با javascript بخونم و توسط اطلاعات فرم html ارسال کنم ولی نمیدونم چطور باید اینکارو انجام بدم .
اگه کسی تو این زمینه کار کرده منو راهنمایی کنه.
emdadgar2
شنبه 27 مرداد 1386, 22:16 عصر
دوست عزیز، دسترسی به پورت های سریال، کام و یو اس بی از طریق اسکریپت صفحات وب به دلایل امنیتی غیر فعال است مگر اینکه در یک شبکه داخلی باشید و یک اکتیوایکس طراحی و نصب کرده باشید که این کار را برای شما انجام دهد که خود نیاز به امضای دیجیتال، طراحی ویژه و کلی دنگ و فنگ دیگر دارد
alihoseini
شنبه 13 مهر 1387, 14:17 عصر
منظور منم نحوه طراحي همين اکتیوایکس بود .
چطوري ميشه اين كار رو انجام داد كه تو صفحه وب قابل دسترسي باشه ؟
milade
شنبه 13 مهر 1387, 16:52 عصر
با c#.net or vb.net or c# or vb 6 or c++
موفق باشی
Ali100
یک شنبه 14 مهر 1387, 01:29 صبح
شماره سریال و نمی تونم . ولی اسم و مدل USB رو می تونم با استفاده از ActiveX در Javascript و VBs
بگیرم ... ضمنا حتما می دونی Browser هایی که بر پایه Netscape کار می کنن مثل FireFox و ... کلا از
AxtiveX پشتیبانی نمی کنن . فقط IE و Browser های که از هسته IE استفاده می کنن ActiveX رو پشتیبانی می کنن ....
البته با روشهای غیر مستقیم این کد ها در Netscape Base قابل اجرا هستن ...
نمی دونم به کارت می یاد یا نه ؟
alihoseini
یک شنبه 14 مهر 1387, 15:18 عصر
ممنون از راهنمايي همه
اگه ميشه يه كد c يا هر زبان ديگه يا ActiveX كه اين كارو ميكنه با نحوه ارتباط اون با صفحه وب رو توضيح بدين
اگر امكان داشته باشه يه صفحه وب ايجاد كنين كه اين كارو انجام بده
alihoseini
سه شنبه 23 مهر 1387, 11:09 صبح
اين شركت تقريبا اين كار رو انجام داده
http://www.novinafzar.com/Support/downloads/index.asp
ميخوام بدونم چطوري ؟
يعني كد c يا هر زبان ديگه يا ActiveX كه اين كارو ميكنه با نحوه ارتباط اون با صفحه وب
Ali100
سه شنبه 23 مهر 1387, 11:35 صبح
سلام
اول از همه باید دوباره بگم که این کدها فقط رو Internet Explorer و Browser هایی که بر پایه IE هستن کار می کنه مثل AOL Browser و Green Browser و Maxthon browser و ... ولی چرا ؟
چون این کدها از ActiveX استفاده می کنه و بقیه Browser ها از ActiveX پشتیبانی نمی کنن
اگر بجای Javascript از VB Script استفاده کنیم چی ؟ باز فرقی نمی کنه چون کدهای VBS فقط
رو IE و Browser هایی که بر پایه IE هستن اجرا می شه . بقیه Browser ها از VBS پشتیبانی
نمی کنن .ضمنا این مطالب مربوط به IE و Windows هست رو سیستم عاملهای Unix/Linux
یا Max OS کاربردی نداره ...
================================================== ======
برای اجرا یک برنامه خیلی راحت با ماوس روی اون برنامه Click می کنیم و برنامه اجرا می شه
ولی برای اجرای برنامه ها رو Browser چی کار کنیم ؟ اینجاست که ActiveX می یاد کمکمون
با استفاده از ActiveX می تونیم برنامه های مختلفو رو Browser اجرا کنیم و یا از سرویس های
مختلف ویندوز مثل نوشتن و خوندن فایل و .... استفاده کنیم .
آیا با استفاده از ActiveX هر برنامه ای رو می تونیم اجرا کنیم ؟ بطور مستقیم نه اصلا .
برنامه هایی که کاربرد آنلاین دارن موقع نصب ActiveX Object های لازمو مثل فایلهای
Plugins و Registry Key ها و Component - COM ها رو تعریف و Install می کنن .
حالا برای استفاده کافیه با استفاده از ActiveX Controler این Object ها رو که قبلا نصب
شده صدا کنیم . راستش همه اینها اصطلاح هستن سرو تهشو که جمع کنین برای استفاده
از ActiveX در HTML یا Javascript فقط یک یا چند خط برنامه لازمه ...
مثلا وقتی Media Player رو Install می کنین یک سری Plugins برای استفاده Online
نصب می شه که بعدا می تونین با استفاده از ActiveX این Plugins ها رو برای پخش صدا و
تصویر صدا کنین
Windows هم وقتی نصب می شه سرویسهای زیادی رو Install می کنه که رو IE با استفاده از
ActiveX می تونین از این سرویسها استفاده کنین .
در اینجا هم ما Wbem رو با استفاده از ActiveX فعال می کنیم تا با استفاده از WMI مشخصات سخت افزار کامپیوترو بگریم ... جدا از IE شما می تونین WMI رو بشکل
Command Line رو خود ویندوز اجرا کنین برای این کار رو CMD دستور wmic رو اجرا کنین
Wbem و WMI هم اینجا هستن
%windir%\system32\wbemبا استفاده از WMI می تونین مشخصات قطعات کامپیوتر مثل اسم و شرکت سازنده و ...
رو بگیرین ... دیگه ؟ دیگه می تونین اسم کامپیوتر Username Windows ( همون اسمی که
اول ویندوز واسه Login شدن استفاده می کنین ) , مشخصات و محل نصب ویندوز IP Address
و حتی فایلهایی که روی کامپیوتر در حال اجرا هستنو بگیرین
اجرای این کدها رو کامپیوتر دیگران مشکلی نداره ؟ حتما داره برای همین اگر این کد اجرا بشه IE به کاربر پیام هشدار می ده ... کاربر با انتخاب YES یا NO می تونه اجازه بده یا نده
که این کدها رو کامپیوترش اجرا بشه .
================================================== ===
این کد برای گرفتن مشخصات CPU در Internet هست .
من از همین کد استفاده میکنم فقط یکی دو تغییر کوچیک دادم تا بجای CPU مشخصات
USB Controller مثل اسم قطعه و شرکت سازنده رو بگیره .
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script language="javascript">
function Button1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery('SELECT * FROM Win32_USBController');
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Caption + "</td>");
document.write("<td>" + p.CreationClassName+ "</td>");
document.write("<td>" + p.Manufacturer + "</td>");
document.write("<td>" + p.ProtocolSupported+ "</td>");
document.write("<td>" + p.Status + "</td>");
document.write("<td>" + p.SystemCreationClassName+ "</td>");
document.write("<td>" + p.SystemName+ "</td>");
document.write("<td>" + p.PNPDeviceID + "</td>");
document.write("</tr>");
}
document.write("</table>");
focus();
}
function dispHeading()
{
document.write("<thead>");
document.write("<td>Caption</td>");
document.write("<td>CreationClassName</td>");
document.write("<td>Manufacturer</td>");
document.write("<td>ProtocolSupported</td>");
document.write("<td>Status</td>");
document.write("<td>SystemCreationClassName</td>");
document.write("<td>SystemName</td>");
document.write("<td>PNPDeviceID</td>");
document.write("</thead>");
}
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button" name="Button1" onclick="Button1_onclick()">
</body>
</html>
================================================== ==
این مشخصات USB Controller رو میده ... اگر کافی نیست با چند تغییر کوچیک می تونین
مشخصات تمام قطعات کامپیوترو بگیرین مثلا الان بجای USB Controller مشخصات USB HUB
رو می گیریم
در این خط
var properties = service.ExecQuery('SELECT * FROM Win32_USBController');Win32_USBController رو به Win32_USBHub تغییر می دیم تقریبا همین:قهقهه:
حالا یک سئوال آیا Item ها همیشه ثابت هستن نه ولی بعضی از اونها اکثرا ثابت هستن مثل
Caption ولی بعضی Item ها نسبت به قطعه ای که می خوایم اطلاعاتشو بگیریم تغییر می کنن و یا کمو زیاد می شن
مثلا : USBHub به Manufacturer جواب نمیده پس من اینو با
ConfigManagerErrorCode عوض می کنم
اول این خط رو
document.write("<td>" + p.Manufacturer + "</td>");به این شکل تغییر می دم
document.write("<td>" + p.ConfigManagerErrorCode + "</td>");و بعد این خطو
document.write("<td>Manufacturer</td>");به این شکل تغییر میدم ( هر چند این خط فقط واسه درست نوشته شدن نوشته های جدوله Table )
document.write("<td>ConfigManagerErrorCode</td>");اگر باز کمه میتونین لیست کامل قطعاتی که رو کامپیوتر هست بگیرین و مشخصات کامل هر قطعه رو جداگانه
از زیر مجموعه بگیرین
آخرین حرف فرض کنیم از Win32_PortConnector اطلاعات قطعاتی که به کامپیوتر وصل هستنو می گیرم
یکی از جوابها این هست PortType که برابره با 16 که به USB مربوط می شه واسه گرفتن اطلاعات فقط از
همین قطعه به عنوان زیر مجموعه PortConnector از where استفاده می کنم . این فقط مثاله کلا واسه گرفتن
زیر مجموعه ها می تونین این کارو بکنین
var properties = service.ExecQuery('SELECT * FROM Win32_PortConnector where PortType="16"');رو CMD اگر wmic رو اجرا کنین دستورات و Item ها هست ضمنا در سایت Microsoft هم
می تونین جستجو کنین ....
دست آخر اگر TaskManager رو باز کنین فایلهای در حال اجرا رو نشون می ده من کد رو تغییر دادم تا فایلهای در حال اجرا روی IE نشون داده بشه با یک تغییر کوچیک می تونین آدرس
اجرای فایلها رو ویندوز رو هم ببینین .
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script language="javascript">
function Button1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_Process");
var e = new Enumerator (properties);
document.write("<center>");
document.write( "Processes List"+"<br />"+"<br /><hr />");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write(p.Name+"<br />");
}
document.write("<hr />"+"End Of List");
document.write("</center>");
}Button1_onclick();
</script>
</head>
<body>
</body>
</html>
تمام .
kiosksoft
سه شنبه 23 مهر 1387, 16:03 عصر
سلام به همه دوستان.
من یه ocx نوشتم که تموم این کارهارو تو وب انجام میده اگمشکلتون حل نشده بگید براتون بزارم.تو وب براحتی کار میکنه!!
jaza_sa
سه شنبه 23 مهر 1387, 21:15 عصر
سلام به همه دوستان.
من یه ocx نوشتم که تموم این کارهارو تو وب انجام میده اگمشکلتون حل نشده بگید براتون بزارم.تو وب براحتی کار میکنه!!
اگر امکان داره کد هاش رو بزارید
ممنون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.