2017-06-07 111 views
1

1)我想基於硬件信息(USB \ VID_12C1)在Installshield中註冊Dll。使用InstallShield安裝驅動程序(USB設備)

- >我想知道連接到PC的USB設備的設備ID。 然後我想將USB設備信息讀取到單獨的文件中。

- >從installshield中,我將USB供應商ID傳遞到文本文件 並獲取USB信息。

- >是否可以在Installshield中執行此操作。

以下是我試圖獲取設備ID的方式:

szProgram = WINDIR^"temp"^"New"^"devcon.exe"; 

szCmdLine = " hwids *"; 

nvResult = LaunchAppAndWait(szProgram, szCmdLine, LAAW_OPTION_WAIT); 

if (nvResult = 0) then 

    MessageBox ("ERROR: application created sucfuly", INFORMATION); 

else 

    MessageBox ("ERROR: application", INFORMATION); 

endif; 

- >安裝時安裝程序試圖通過LaunchAppandwait API要執行「devcon.exe hwids *」 。它會列出連接到我的電腦的設備數量 。我想將設備列表保存爲文本文件。 問題: - >無法將結果存儲在文本文件中。

請提供一些想法將設備列表存儲到文件中,並提取 所需的設備列表。

+0

我建議在InstallShield中創建項目,將驅動程序添加到其中,查看有哪些工作以及您遇到了哪些問題,然後回到特定問題。 –

+0

我試圖創建並測試它。 – sathish

+0

偉大的,你有什麼具體問題,不能解決? –

回答

1

據我瞭解正確,你想知道如果某些設備可用的系統。爲此,我建議看看DevCon Find命令,而不是獲取完整的設備列表。例如:

devcon find *USB\VID_046D* 

如果你堅持要得到設備的完整列表,並希望得到它到文件,你可以看看這個答案:Capturing stdOutput and stdError from LaunchApplication。基本上最簡單的方法是將輸出重新輸入到文件中。例如:

szProgram = WINDIR^"temp"^"New"^"devcon.exe"; 
szCmdLine = " hwids * > c:\temp\New\hardware.txt"; 

而爲了解析文件內容,您需要獲取文件內容。您可以使用GetLineListReadFromFile函數。以下是示例:OpenFile Example

+0

我想要做的是我想通過傳遞硬件ID爲「PCI \ VEN_8086&DEV_3B56&SUBSYS_304A103C&」來從文本文件中讀取「修訂版本(REV_05)」。它顯示硬件Id列表,如名稱:高清晰度音頻控制器 硬件ID的: PCI \ VEN_8086&DEV_3B56&SUBSYS_304A103C&REV_05你可以建議任何api閱讀我試圖通過ListID,Strfind,StrfindEx訪問。 – sathish

+0

@sathish該評論是用於短消息,絕對不適用於代碼片段。您可以選擇:通過添加更多描述來詢問更多問題或編輯原始問題,而不是編輯現有內容。通常,人工智能創建一個或多個(不同)問題,或者在編輯原始問題時已經回答,並在最後添加「編輯:」並放置更多評論。請考慮第一個選項並提出具體問題,有人會提供幫助。 –

+0

@sathish你有沒有收到你的內容?你有解析困難嗎?你最好在另一個問題中描述它。請指定標籤「InstallScript」。比賽不應該很難,只是準確地描述哪些不適合你。 –

相關問題