نقل قول: دریافت اطلاعات هارد دیسک
با سلام
با استفاده از این فانکشن outpot رو از cmd دریافت کنید
Public Function ShellRun(sCmd As String) As String
'Run a shell command, returning the output as a string
Dim oShell As Object
Set oShell = CreateObject("WScript.Shell")
'run command
Dim oExec As Object
Dim oOutput As Object
Set oExec = oShell.Exec(sCmd)
Set oOutput = oExec.StdOut
'handle the results as they are written to and read from the StdOut object
Dim s As String
Dim sLine As String
While Not oOutput.AtEndOfStream
sLine = oOutput.ReadLine
If sLine <> "" Then s = s & sLine & vbCrLf
Wend
ShellRun = s
End Function
با این دستور هم میتونید اطلاعات هارد رو بگیرید
با استفاده از cmd ویندوز
wmic diskdrive get serialnumber
خوب در لود فرم این دستورات رو وارد کنید
Dim res As String
res = ShellRun("wmic diskdrive get serialnumber")
MsgBox res
یا حق
نقل قول: دریافت اطلاعات هارد دیسک
لیست اطلاعاتی رو که میتونید از wmic دریافت کنید
مثل cpu ، hdd , ....
اطلاعات wmic
در cmd تایپ کنید ?/ wmic
The following global switches are available:
/NAMESPACE Path for the namespace the alias operate against.
/ROLE Path for the role containing the alias definitions.
/NODE Servers the alias will operate against.
/IMPLEVEL Client impersonation level.
/AUTHLEVEL Client authentication level.
/LOCALE Language id the client should use.
/PRIVILEGES Enable or disable all privileges.
/TRACE Outputs debugging information to stderr.
/RECORD Logs all input commands and output.
/INTERACTIVE Sets or resets the interactive mode.
/FAILFAST Sets or resets the FailFast mode.
/USER User to be used during the session.
/PASSWORD Password to be used for session login.
/OUTPUT Specifies the mode for output redirection.
/APPEND Specifies the mode for output redirection.
/AGGREGATE Sets or resets aggregate mode.
/AUTHORITY Specifies the <authority type> for the connection.
/?[:<BRIEF|FULL>] Usage information.
For more information on a specific global switch, type: switch-name /?
The following alias/es are available in the current role:
ALIAS - Access to the aliases available on the local system
BASEBOARD - Base board (also known as a motherboard or system board) management.
BIOS - Basic input/output services (BIOS) management.
BOOTCONFIG - Boot configuration management.
CDROM - CD-ROM management.
COMPUTERSYSTEM - Computer system management.
CPU - CPU management.
CSPRODUCT - Computer system product information from SMBIOS.
DATAFILE - DataFile Management.
DCOMAPP - DCOM Application management.
DESKTOP - User's Desktop management.
DESKTOPMONITOR - Desktop Monitor management.
DEVICEMEMORYADDRESS - Device memory addresses management.
DISKDRIVE - Physical disk drive management.
DISKQUOTA - Disk space usage for NTFS volumes.
DMACHANNEL - Direct memory access (DMA) channel management.
ENVIRONMENT - System environment settings management.
FSDIR - Filesystem directory entry management.
GROUP - Group account management.
IDECONTROLLER - IDE Controller management.
IRQ - Interrupt request line (IRQ) management.
JOB - Provides access to the jobs scheduled using the schedule service.
LOADORDER - Management of system services that define execution dependencies.
LOGICALDISK - Local storage device management.
LOGON - LOGON Sessions.
MEMCACHE - Cache memory management.
MEMORYCHIP - Memory chip information.
MEMPHYSICAL - Computer system's physical memory management.
NETCLIENT - Network Client management.
NETLOGIN - Network login information (of a particular user) management.
NETPROTOCOL - Protocols (and their network characteristics) management.
NETUSE - Active network connection management.
NIC - Network Interface Controller (NIC) management.
NICCONFIG - Network adapter management.
NTDOMAIN - NT Domain management.
NTEVENT - Entries in the NT Event Log.
NTEVENTLOG - NT eventlog file management.
ONBOARDDEVICE - Management of common adapter devices built into the motherboard (system board).
OS - Installed Operating System/s management.
PAGEFILE - Virtual memory file swapping management.
PAGEFILESET - Page file settings management.
PARTITION - Management of partitioned areas of a physical disk.
PORT - I/O port management.
PORTCONNECTOR - Physical connection ports management.
PRINTER - Printer device management.
PRINTERCONFIG - Printer device configuration management.
PRINTJOB - Print job management.
PROCESS - Process management.
PRODUCT - Installation package task management.
QFE - Quick Fix Engineering.
QUOTASETTING - Setting information for disk quotas on a volume.
RDACCOUNT - Remote Desktop connection permission management.
RDNIC - Remote Desktop connection management on a specific network adapter.
RDPERMISSIONS - Permissions to a specific Remote Desktop connection.
RDTOGGLE - Turning Remote Desktop listener on or off remotely.
RECOVEROS - Information that will be gathered from memory when the operating system fails.
REGISTRY - Computer system registry management.
SCSICONTROLLER - SCSI Controller management.
SERVER - Server information management.
SERVICE - Service application management.
SHADOWCOPY - Shadow copy management.
SHADOWSTORAGE - Shadow copy storage area management.
SHARE - Shared resource management.
SOFTWAREELEMENT - Management of the elements of a software product installed on a system.
SOFTWAREFEATURE - Management of software product subsets of SoftwareElement.
SOUNDDEV - Sound Device management.
STARTUP - Management of commands that run automatically when users log onto the computer system.
SYSACCOUNT - System account management.
SYSDRIVER - Management of the system driver for a base service.
SYSTEMENCLOSURE - Physical system enclosure management.
SYSTEMSLOT - Management of physical connection points including ports, slots and peripherals, and proprietary connections points.
TAPEDRIVE - Tape drive management.
TEMPERATURE - Data management of a temperature sensor (electronic thermometer).
TIMEZONE - Time zone data management.
UPS - Uninterruptible power supply (UPS) management.
USERACCOUNT - User account management.
VOLTAGE - Voltage sensor (electronic voltmeter) data management.
VOLUME - Local storage volume management.
VOLUMEQUOTASETTING - Associates the disk quota setting with a specific disk volume.
VOLUMEUSERQUOTA - Per user storage volume quota management.
WMISET - WMI service operational parameters management.
For more information on a specific alias, type: alias /?
CLASS - Escapes to full WMI schema.
PATH - Escapes to full WMI object paths.
CONTEXT - Displays the state of all the global switches.
QUIT/EXIT - Exits the program.
For more information on CLASS/PATH/CONTEXT, type: (CLASS | PATH | CONTEXT) /?
نقل قول: دریافت اطلاعات هارد دیسک
به طور مثال اگر دستور ؟/ wmic cpu GET در cmd وارد کنید بهتون نشون میده که چه اطلاعاتی رو میتونید دریافت کنید
مانند سریال یا شرکت سازنده و ...
لیست این اطلاعات
Property Type Operation
======== ==== =========
AddressWidth N/A N/A
Architecture N/A N/A
Availability N/A N/A
Caption N/A N/A
ConfigManagerErrorCode N/A N/A
ConfigManagerUserConfig N/A N/A
CpuStatus N/A N/A
CreationClassName N/A N/A
CurrentClockSpeed N/A N/A
CurrentVoltage N/A N/A
DataWidth N/A N/A
Description N/A N/A
DeviceID N/A N/A
ErrorCleared N/A N/A
ErrorDescription N/A N/A
ExtClock N/A N/A
Family N/A N/A
InstallDate N/A N/A
L2CacheSize N/A N/A
L2CacheSpeed N/A N/A
LastErrorCode N/A N/A
Level N/A N/A
LoadPercentage N/A N/A
Manufacturer N/A N/A
MaxClockSpeed N/A N/A
Name N/A N/A
OtherFamilyDescription N/A N/A
PNPDeviceID N/A N/A
PowerManagementCapabilities N/A N/A
PowerManagementSupported N/A N/A
ProcessorId N/A N/A
ProcessorType N/A N/A
Revision N/A N/A
Role N/A N/A
SocketDesignation N/A N/A
Status N/A N/A
StatusInfo N/A N/A
Stepping N/A N/A
SystemCreationClassName N/A N/A
SystemName N/A N/A
UniqueId N/A N/A
UpgradeMethod N/A N/A
Version N/A N/A
VoltageCaps N/A N/A
نقل قول: دریافت اطلاعات هارد دیسک
مشکلی که من با متد exec دارم اینه که نمیدونم چجوری میشه بصورت hidden اجراش کرد.
در ضمن، اگر به تمام خروجی بصورت یک string نیاز باشه (نه بصورت خط به خط) کد رو میشه ساده تر کرد:
Dim s As String
s = oOutput.Readall
1 ضمیمه
نقل قول: دریافت اطلاعات هارد دیسک
نقل قول:
نوشته شده توسط
mazoolagh
مشکلی که من با متد exec دارم اینه که نمیدونم چجوری میشه بصورت hidden اجراش کرد.
با سلام
درمورد hidden اجرا شدن
از این فانکشن استفاده کنید
Public Function ShellRun(sCmd As String) As String
CreateObject("WScript.Shell").Run "cmd /c " & sCmd & " | clip", 0, True
ShellRun = CreateObject("htmlfile").ParentWindow.ClipboardDat a.GetData("text")
End Function
این نمونه استفاده از فانکشن که در لود فرم قرار داره
MsgBox ShellRun("wmic diskdrive get serialnumber")
نمونه ضمیمه شد
در ضمن بابت این مضمون هم تشکر که تکمیل فرمودید
نقل قول:
در ضمن، اگر به تمام خروجی بصورت یک string نیاز باشه (نه بصورت خط به خط) کد رو میشه ساده تر کرد:
Dim s As String
s = oOutput.Readall
یا حق
نقل قول: دریافت اطلاعات هارد دیسک
خوشحالم که تاپیک کاربردی شد!
در مورد مخفی شدن هم اگر یه توضیحی بدین ممنون میشم
که کاربردش چیه؟
نقل قول: دریافت اطلاعات هارد دیسک
نقل قول:
نوشته شده توسط
AbbasSediqi
Public Function ShellRun(sCmd As String) As String
CreateObject("WScript.Shell").Run "cmd /c " & sCmd & " | clip", 0, True
ShellRun = CreateObject("htmlfile").ParentWindow.ClipboardDat a.GetData("text")
End Function
روش یا در واقع کلک جالبی بود - ممنون از پاسخگویی دقیق و عالی مثل همیشه
من تابحال خروجی رو به فایل ریدایرکت میکردم و بعد فایل رو میخوندم ، به فکرم نرسیده بود بجای فایل به کلیپ برد بفرستم و از کلیپ برد بخونم (البته بلد هم نبودم!)
نقل قول: دریافت اطلاعات هارد دیسک
نقل قول:
نوشته شده توسط
Mehr@ban
خوشحالم که تاپیک کاربردی شد!
در مورد مخفی شدن هم اگر یه توضیحی بدین ممنون میشم
که کاربردش چیه؟
متد exec پنجره command رو بصورت نرمال باز میکنه و کنترلی روی اون نداریم که بسته به مدت زمان اجرای برنامه میتونه در حد چشمک زدن تا ثانیه ها و دقیقه ها طول بکشه که خوشایند نیست.
روش دوم که آقای صدیقی معرفی کردن این مشکل رو نداره
نقل قول: دریافت اطلاعات هارد دیسک
با سلام و تبریک ولادت مولا علی علیه السلام و سال جدید
برادر بزرگم جناب mazoolagh اشاره ای به نمایش اطلاعات دریافتی در یک خط داشتن که در ارسال 5# بهش اشاره کردن که به نوعی کد جناب صدیقی رو کامل میکرد.
نقل قول:
نوشته شده توسط
mazoolagh
مشکلی که من با متد exec دارم اینه که نمیدونم چجوری میشه بصورت hidden اجراش کرد.
در ضمن، اگر به تمام خروجی بصورت یک string نیاز باشه (نه بصورت خط به خط) کد رو میشه ساده تر کرد:
Dim s As String
s = oOutput.Readall
ولی در ادامه آقای صدیقی کدی رو ارائه کردن که موجب مخفی شدن پنجره cmd میشد
که در این کد نمیشد از کد بالا که برای نمایش یک خطی داده دریافتی استفاده کرد.
میشه کد زیر رو هم به نوعی اصلاح کنید تا بشه داده دریافتی رو در یک خط دریافت کرد در حالی که پنجره cmd مخفی هست؟
نقل قول: دریافت اطلاعات هارد دیسک
سلام و سال نو شما هم مبارک
بدون هیچ مشکل میتونین از تابع دوم (که hidden اجرا میشه) استفاده کنین، چون در هر دو روش خروجی یکسان دریافت میکنین مستقل از اینکه خروجی دستور (که با scmd پاس میشه) یک یا چند خط باشه.
در واقع اینکه در روش نخست خروجی دستور رو یکجا یا خط به خط بخونین مطلقا تاثیری در خروجی تابع نداره و شما در هر صورت کل نتیجه رو بصورت یک استرینگ دریافت میکنین.
نقل قول: دریافت اطلاعات هارد دیسک
تشکر
ولی با این حال میشه من رو راهنمایی کنید؟
رشته ای که من دریافت کردم به این صورت هست:
SerialNumber
KWERJH96ISDFZ-1
دقیقا با همین تعداد فضای خالی و لاین خالی
حالا اگر من بخوام فقط رشته سریال که همون عبارت KWERJH9W_ISDFZ-1 رو داشته باشم تا بتونم تغییرات مورد نظرم رو انجام بدم، چه روشی رو پیشنهاد میکنید؟
نقل قول: دریافت اطلاعات هارد دیسک
در واقع مشکل از این توابع نیست؛ خروجی دستور هست که کاراکتر carriage return اضافی داره (کد اسکی 13)
توابع رو بصورت زیر اصلاح کنین:
Public Function ShellRun(sCmd As String) As String
CreateObject("WScript.Shell").Run "cmd /c " & sCmd & " | clip", 0, True
ShellRun = Replace(CreateObject("htmlfile").ParentWindow.Clip boardData.GetData("text"), vbCr, "")
End Function
Public Function ShellRun2(sCmd As String) As String
Dim oShell As Object
Set oShell = CreateObject("WScript.Shell")
Dim oExec As Object
Dim oOutput As Object
Set oExec = oShell.Exec(sCmd)
Set oOutput = oExec.StdOut
ShellRun2 = Replace(oOutput.readall, vbCr, "")
End Function
نقل قول: دریافت اطلاعات هارد دیسک
خارج از موضوع:
برای تفسیر راحتتر نتایج بهتر هست که از سوییچ value استفاده کنین،
shellrun("wmic cpu get /value")
AddressWidth=64
Architecture=9
AssetTag=Fill By OEM
Availability=3
Caption=Intel64 Family 6 Model 60 Stepping 3
...
...
...
نقل قول: دریافت اطلاعات هارد دیسک
نقل قول:
نوشته شده توسط
mazoolagh
در واقع مشکل از این توابع نیست؛ خروجی دستور هست که کاراکتر carriage return اضافی داره (کد اسکی 13)
توابع رو بصورت زیر اصلاح کنین:
Public Function ShellRun(sCmd As String) As String
CreateObject("WScript.Shell").Run "cmd /c " & sCmd & " | clip", 0, True
ShellRun = Replace(CreateObject("htmlfile").ParentWindow.Clip boardData.GetData("text"), vbCr, "")
End Function
Public Function ShellRun2(sCmd As String) As String
Dim oShell As Object
Set oShell = CreateObject("WScript.Shell")
Dim oExec As Object
Dim oOutput As Object
Set oExec = oShell.Exec(sCmd)
Set oOutput = oExec.StdOut
ShellRun2 = Replace(oOutput.readall, vbCr, "")
End Function
سلام دوستان
من کماکان خروجی رو بصورت
SerialNumber
KWERJH96ISDFZ-1
دریافت میکنم ؛ در صورتیکه فقط میخوام عبارت KWERJH96ISDFZ-1 برگردانده شود ؛ لطفأ راهنمایی بفرمائید.
نقل قول: دریافت اطلاعات هارد دیسک
نقل قول:
نوشته شده توسط
SB1398
سلام دوستان
من کماکان خروجی رو بصورت
SerialNumber
KWERJH96ISDFZ-1
دریافت میکنم ؛ در صورتیکه فقط میخوام عبارت KWERJH96ISDFZ-1 برگردانده شود ؛ لطفأ راهنمایی بفرمائید.
سلام و روز خوش
مدت زیادی از بحث گذشته و حضور ذهن ندارم
...
TIME...
نقل قول: دریافت اطلاعات هارد دیسک
خب،
یک راه این هست که با تابع replace عبارت serialnumber رو از خروجی بردارین.
ولی یک راه بهتر هم هست که این دست اطلاعات سیستمی رو مستقیما از wmi بگیریم.
برای این روش باید یک نمونه بسازم.
...
TIME...
نقل قول: دریافت اطلاعات هارد دیسک
نقل قول: دریافت اطلاعات هارد دیسک
نقل قول:
نوشته شده توسط
mazoolagh
عالی
سپاس از شما