المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : جلب كافة البرامج المثبتة على الكمبيوتر


أبو محسن
29-09-2014, 05:34 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
حياكم الله

لدي سؤال:

كيف يمكنني جلب كافة البرامج المثبة على الكمبيوتر !!

شاكر لكم التعاون :abc_022:

azizsoft
30-09-2014, 08:35 AM
بسم الله الرحمن الرحيم

البرنامج الرائع
Acronis True Image
والذي يغنيك نهائيا عن الفرمتة
تستطيع بواسطة البرنامج اخذ نسخ احتاطية من النظام وكافة البرامج المثبتة بالجهاز
وحرقها على قرص قابل للاقلاع

أبو محسن
30-09-2014, 09:09 AM
بسم الله الرحمن الرحيم

البرنامج الرائع
Acronis True Image
والذي يغنيك نهائيا عن الفرمتة
تستطيع بواسطة البرنامج اخذ نسخ احتاطية من النظام وكافة البرامج المثبتة بالجهاز
وحرقها على قرص قابل للاقلاع

مرحباً والله بأستاذنا الغالي عبد العزيز
رُبما أنك لم تفهم قصدي, وهدفي

أردت كود لجلب كافة البرامج المثبتة على الكمبيوتر ووضع أسمائها في Listbox .. هذا ما اردته
حتى يتم التعامل معها بحسب هدف المشروع

ثامر أبو بلقيس
30-09-2014, 01:23 PM
السلام عليكم ورحمة الله وبركاته
نيابة عن أستاذي عزيز :
تستطيع مناداتها من الريجستري
tbl = Registry.GetKeyNames(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Unin stall");
for i,prog in pairs (tbl) do
ListBox.AddItem("ListBox1", prog);
end
موفق:abc_138:

أبو محسن
30-09-2014, 01:53 PM
السلام عليكم ورحمة الله وبركاته
نيابة عن أستاذي عزيز :
تستطيع مناداتها من الريجستري
tbl = Registry.GetKeyNames(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Unin stall");
for i,prog in pairs (tbl) do
ListBox.AddItem("ListBox1", prog);
endموفق:abc_138:
جزاك الله خير

هذا الشيئ قد جربته من قبل.. لكنه يزيد في البرامج المثبتة بشكل غير معقول :abc_070:

شاهد الصورة التالية (http://im57.gulfup.com/9Vh0wn.png)

رُبما يكون الأمر التالي تبع موجة الأوامر (CMD), أقرب مصداقية من الريجستري
wmic product

لكنه أعطاني 93 برنامج !! بينما المثبت عندي 77 !!

ثامر أبو بلقيس
30-09-2014, 02:55 PM
السلام عليكم ورحمة الله وبركاته
أكتب في global functions
function GetItemForUninstallKey(strKeyName,strItemName)
local strFullKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Unin stall\\"..strKeyName;
local strName = Registry.GetValue(HKEY_LOCAL_MACHINE,strFullKey,st rItemName);
return strName;
end
function FillProgramsList()
ListBox.DeleteItem("ListBox1", -1);
ListBox.SetUpdate("ListBox1", false);
StatusDlg.Show();
StatusDlg.SetTitle("Initializing...");
StatusDlg.SetMessage("");
local tblKeys = Registry.GetKeyNames(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Unin stall");
StatusDlg.SetMeterRange(1,Table.Count(tblKeys));
local nCounter = 1;
for i,Name in pairs (tblKeys) do
StatusDlg.SetMessage(Name);
StatusDlg.SetMeterPos(nCounter);
local strDisplayName = GetItemForUninstallKey(Name,"DisplayName");
if(strDisplayName ~= "")then
ListBox.AddItem("ListBox1", strDisplayName, Name);
end

nCounter = nCounter + 1;
end
StatusDlg.Hide();
ListBox.SetUpdate("ListBox1", true);
end



لديك الان هذا الأمر أكتبه في on show أو في زر
FillProgramsList()

جرب هذا الشيء وموفق :abc_138:

أبو محسن
30-09-2014, 03:27 PM
السلام عليكم ورحمة الله وبركاته
أكتب في global functions
function GetItemForUninstallKey(strKeyName,strItemName)
local strFullKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Unin stall\\"..strKeyName;
local strName = Registry.GetValue(HKEY_LOCAL_MACHINE,strFullKey,st rItemName);
return strName;
end
function FillProgramsList()
ListBox.DeleteItem("ListBox1", -1);
ListBox.SetUpdate("ListBox1", false);
StatusDlg.Show();
StatusDlg.SetTitle("Initializing...");
StatusDlg.SetMessage("");
local tblKeys = Registry.GetKeyNames(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Unin stall");
StatusDlg.SetMeterRange(1,Table.Count(tblKeys));
local nCounter = 1;
for i,Name in pairs (tblKeys) do
StatusDlg.SetMessage(Name);
StatusDlg.SetMeterPos(nCounter);
local strDisplayName = GetItemForUninstallKey(Name,"DisplayName");
if(strDisplayName ~= "")then
ListBox.AddItem("ListBox1", strDisplayName, Name);
end

nCounter = nCounter + 1;
end
StatusDlg.Hide();
ListBox.SetUpdate("ListBox1", true);
end

لديك الان هذا الأمر أكتبه في on show أو في زر
FillProgramsList()جرب هذا الشيء وموفق :abc_138:
جميل جداً أستاذي ثامر :abc_051:

لكنه لم يؤدي هدفه بإتقان.. !!
فهو شبيه بالأمر
wmic product list /format:htable > App.html

وهذه قائمة بالبرامج (http://im56.gulfup.com/iZZig6.png)
تكرار لـ CCC !!!

هل يمكن استغلال Autoit في جلب البرامج :abc_088:

azizsoft
30-09-2014, 04:00 PM
بسم الله الرحمن الرحيم

عفوا لم انتبه للقسم

بارك الله فيكم جميعا
شكرا للاستاذ أبو بلقيس

ثامر أبو بلقيس
03-10-2014, 03:37 PM
لا أضن هناك امكانية استغلال اضافة الـ autoit في جلب أسماء البرامج المثبته
و إن قصدته كبرنامج
#include <Array.au3> ;Only for array displaying

Local $strComputer, $strInput

$strComputer = (InputBox("List software","Enter COMPUTER NAME to query list of installed programs."))

If $strComputer = '' Then
$strComputer = "\\" & @ComputerName & "\" ;current computer
Else
$strComputer = "\\" & $strComputer & "\"
EndIf

$return = _SoftwareInfo($strComputer)
_ArrayDisplay($return, "Installed Programs")

Func _SoftwareInfo($computer = $strComputer)
Local Const $regkey = $computer & 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Cur rentVersion\Uninstall'
Local $key, $Count = 0, $avArray[1]

While 1
$Count = $Count + 1
$key = RegEnumKey($regkey, $Count)
If @error Then ExitLoop

$line = RegRead($regkey & '\' & $key, 'Displayname')
If @error Then ContinueLoop

$line = StringReplace($line, ' (remove only)', '')

$avArray[0] += 1
ReDim $avArray[$avArray[0] + 1]
$avArray[$avArray[0]] = $line
WEnd

Return $avArray
EndFunc

أبو محسن
10-10-2014, 12:31 PM
لا أضن هناك امكانية استغلال اضافة الـ autoit في جلب أسماء البرامج المثبته
و إن قصدته كبرنامج
#include <Array.au3> ;Only for array displaying

Local $strComputer, $strInput

$strComputer = (InputBox("List software","Enter COMPUTER NAME to query list of installed programs."))

If $strComputer = '' Then
$strComputer = "\\" & @ComputerName & "\" ;current computer
Else
$strComputer = "\\" & $strComputer & "\"
EndIf

$return = _SoftwareInfo($strComputer)
_ArrayDisplay($return, "Installed Programs")

Func _SoftwareInfo($computer = $strComputer)
Local Const $regkey = $computer & 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Cur rentVersion\Uninstall'
Local $key, $Count = 0, $avArray[1]

While 1
$Count = $Count + 1
$key = RegEnumKey($regkey, $Count)
If @error Then ExitLoop

$line = RegRead($regkey & '\' & $key, 'Displayname')
If @error Then ContinueLoop

$line = StringReplace($line, ' (remove only)', '')

$avArray[0] += 1
ReDim $avArray[$avArray[0] + 1]
$avArray[$avArray[0]] = $line
WEnd

Return $avArray
EndFunc

جزاك الله خير أستاذي الفاضل ثامر

نتيجة السورس هذا هي نفس النتائج السابقة..
على كل جزاك الله خير وبارك فيك :abc_152: