全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3660
推到 Plurk!
推到 Facebook!

如何列出所有安裝在Windows內的軟體名稱?

 
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-04-29 21:18:57 IP:61.219.xxx.xxx 未訂閱
如何列出所有安裝在Windows內的軟體名稱? compile in delphi 5.0 有Source & 執行檔     ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
附加檔案:00018167_ListSW.zip
keny
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-14 14:59:28 IP:211.74.xxx.xxx 訂閱
可愛的站長,

根據你提供的程式碼, 抓取電腦內已安裝的軟體列表, 相當好用!

小弟嘗試修改, 使輸出為文字檔, (.TXT)

參考站內的範例來做, 似乎並想像中容易?

亦發現列表的資料中, 變數型態並不一致, 所以無法串成一個字串, 再輸出成文字檔.

可否請站長展示一下, 以同例改為輸出成文字檔的漂亮做法!

感激!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-14 21:43:43 IP:203.204.xxx.xxx 訂閱
輸出 txt 檔案的版本
<textarea class="delphi" rows="10" cols="60" name="code"> unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Registry; {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var aList: TStrings; i: Integer; sVersion: string; const sUninstall = 'Software\Microsoft\Windows\CurrentVersion\UnInstall'; begin aList := TStringList.Create; Memo1.Clear; with TRegistry.Create do begin RootKey := HKEY_LOCAL_MACHINE; if OpenKey(sUninstall, False) then begin GetKeyNames(aList); CloseKey; for i := 0 to aList.Count - 1 do begin if OpenKey(sUninstall '\' aList[i], False) then begin if ValueExists('DisplayVersion') then sVersion := 'Version ' ReadString('DisplayVersion') else sVersion := ''; Memo1.Lines.Add(aList[i] ' ' sVersion); CloseKey end; end; end; Free end; aList.Free; Memo1.Lines.SaveToFile('ListSW.txt'); end; end. </textarea>
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
keny
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-15 12:04:42 IP:211.74.xxx.xxx 訂閱
感謝這位大哥的協助,

在增加了 memo1的元件及程式碼後,
以F8來執行,
程式停在 aList.Free;
Error訊息是 Declaration Expected but identifier 'aList' found

檢查了半天, 實在看不出, 多加個meno做為輸出, 為何會影響到 aList ?

謝謝!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-02-15 12:26:40 IP:210.241.xxx.xxx 訂閱
小弟在 Delphi 7 Enterprise 上測試一切正常, 沒有錯誤, 也沒有警告訊息耶

請您重新開一個新的 Project, 放上 Memo , Label, Button , Double Click (快按兩下) Button 元件
然後將 小弟程式碼 整個拷貝, 覆蓋掉原來的, 然後執行看看
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
keny
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-02-15 14:10:17 IP:211.74.xxx.xxx 訂閱
重新建立,已經OK.
感謝大哥協助,
小弟受益良多!
keny
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-02-16 08:36:30 IP:211.74.xxx.xxx 訂閱
親愛的站長,

不知是否在該程式引用register下, 是否有可以show出各軟體序號的方法?

謝謝!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-02-16 08:49:05 IP:210.241.xxx.xxx 訂閱
很多軟體的序號不在 Registry 中, 就算在, 各軟體有各自地方
很多軟體的序號在 Registry 中是經過編碼的, 不同公司 or 同公司不同軟體的編碼方式可能不同
很多軟體是線上啟動, 序號被啟動使用過的, 別人拿到也沒用
您的期待工程浩大, 效益卻極微小
建議您放棄去買正版吧
===================引 用 文 章===================
親愛的站長,

不知是否在該程式引用register下, 是否有可以show出各軟體序號的方法?

謝謝!
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
keny
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-02-16 10:08:44 IP:211.74.xxx.xxx 訂閱

===================引 用 文 章===================
很多軟體的序號不在 Registry 中, 就算在, 各軟體有各自地方
很多軟體的序號在 Registry 中是經過編碼的, 不同公司 or 同公司不同軟體的編碼方式可能不同
很多軟體是線上啟動, 序號被啟動使用過的, 別人拿到也沒用
您的期待工程浩大, 效益卻極微小
建議您放棄去買正版吧
===================引 用 文 章===================
樓上的大哥,
我也在想, 各軟體有不同的儲存方式,
不過坊間有一些軟體可以查軟硬體規格中, (軟體名稱: EVEREST or AIDA32...)
可以查出已知的授權,(有S/N)
不知在各軟體序號各自儲存的情況下,
它們是如何將序號導出的?

我要查軟體序號,主要是要監管其他人是否有使用盜版序號或非單位授權使用的軟體序號,
並不是要去取用別人的序號,
呵~ 你誤會我的用意了!
正版軟體序號, 本身就在使用,不需使用別人的! (微笑)
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-02-16 10:54:09 IP:210.69.xxx.xxx 訂閱
去抓了 Everest Ultimate Edition 2006 3.50.761 Trial 測試一下
它抓的是有將 序號 放在 Registry 的, 而且放的機碼位置不同軟體也不同
你也可以自己去研究看你要偵測的軟體是否也將序號放 Registry ? 放在什麼位置 ?
它不可能搜尋所有安裝軟體的序號
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
keny
一般會員


發表:1
回覆:11
積分:2
註冊:2006-08-31

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-02-16 11:29:32 IP:211.74.xxx.xxx 訂閱
我以本機測試過,
上述軟體真能抓到那些授權的序號,
但在Register裡, 卻只能找到一兩筆,
真不知那些軟體如何辦到的?

不知以Delphi是否能辦到,
或者可以引用哪個 Win32 API可以抓到那些授權序號?

正在傷腦筋ing~
系統時間:2024-11-22 17:33:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!