كود سورس للبحث في Registry/Registre
#1
السلام عليكم
هذا كود سورس للبحث في و هو ليس من برمجتي Registry/Registre


الملفات المرفقة
.rar   RegSearchDemo.rar (الحجم : 4.43 ك ب / التحميلات : 200)
الرد
#2
وعليكم السلام ورحمة الله
مثال رائع أخي paix144
كنت أبحث عنه Smile، جزاك الله كل خير
ما رأيك بالاقتراحات Wink :
- بعد استخدام TListView عوض TMemo لتخزين نتائج البحث...
- إضافة إجراء القفز إلى مفتاح معين في الـ Registry بعد نقر مزدوج، يمكن استخدام شيء مثل:
PHP كود :
uses
  ShellAPI
;

procedure TForm1.JumpToKey(Key: string);
var
  
i, n: Integer;
  
hWin: HWND;
  
ExecInfo: ShellExecuteInfoA;
begin
  hWin 
:= FindWindowA(PChar('RegEdit_RegEdit'), nil);
  if 
hWin = 0 then
  
{if Regedit doesn't run then we launch it}
  begin
    FillChar(ExecInfo, 60, #0);
    with ExecInfo do
    begin
      cbSize := 60;
      fMask  := SEE_MASK_NOCLOSEPROCESS;
      lpVerb := PChar('
open');
      lpFile := PChar('
regedit.exe');
      nShow  := 1;
    end;
    ShellExecuteExA(@ExecInfo);
    WaitForInputIdle(ExecInfo.hProcess, 200);
    hWin := FindWindowA(PChar('
RegEdit_RegEdit'), nil);
  end;
  ShowWindow(hWin, SW_SHOWNORMAL);
  hWin := FindWindowExA(hWin, 0, PChar('
SysTreeView32'), nil);
  SetForegroundWindow(hWin);
  i := 30;
  repeat
    SendMessageA(hWin, WM_KEYDOWN, VK_LEFT, 0);
    Dec(i);
  until i = 0;
  Sleep(500);
  SendMessageA(hWin, WM_KEYDOWN, VK_RIGHT, 0);
  Sleep(500);
  i := 1;
  n := Length(Key);
  repeat
    if Key[i] = '
\' then
    begin
      SendMessageA(hWin, WM_KEYDOWN, VK_RIGHT, 0);
      Sleep(500);
    end
    else
      SendMessageA(hWin, WM_CHAR, Integer(Key[i]), 0);
    i := i + 1;
  until i = n;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  JumpToKey('
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer');
end; 
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#3
السلام عليكم أخي الكريم
إقتراح جميل
لقد قمت بمحاولة إجراء تعديل بإدراج TListView لكن لم تنجح
كود :
var List:TListItem; begin List:=listview1.Items.Add; List.SubItems.Add(Format('%s (%s)', [Key, TypeLabels[FindType]]));
الرد
#4
وعليكم السلام ورحمة الله
أخي الكريم paix144
أرفق المشروع بعد تنظيفه (أرفق الملفات الضرورية فقط)، وسأحاول فيه إن شاء الله.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#5
جيد أخي
ها هو التعديل و لكن لم ينجح
هنالك فيه أسطر لكن الناتج لا يظهر


الملفات المرفقة
.rar   RegSearch.rar (الحجم : 11.89 ك ب / التحميلات : 57)
الرد
#6
بعض التعديلات الصغيرة...
هناك خلل يمنع القفز إلى المفاتيح
ينقصها الفصل بين الـ Key و الـ Value
أخي paix144 إليك الخط :bye1:
بالتوفيق.


الملفات المرفقة
.rar   RegSearch.rar (الحجم : 3.46 ك ب / التحميلات : 56)
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#7
السلام عليكم
جميل أخي كاش واحد
سأقوم بالتعديل غدا إن شاء الله
أنا منهك
ممكن توضح أكثر أخي؟
الرد
#8
وعليكم السلام ورحمة الله
يعيد الإجراء OnRegSearchFind من خلال المعلمة Key المسار الكامل للمفتاح (currPath)+قيمة المفتاح (keys)
لاحظ من مصدر المكون:
كود :
FOnFind(self, soKeyName, CompletePath(ARegistry, [color=Red]currPath + '\' + keys[i][/color]));
ينبغي الفصل بينهما، ليتم تخزين كل واحد على حدة.
حاول أكثر بالتوفيق أخي.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#9
السلام عليكم
شئ مثل هذا أخي ؟
كود :
var reg : TRegistry; begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false); Reg.ReadString('LastRegisteredAppPath'); Reg.GetKeyNames(ListBox1.Items); Reg.GetValueNames(ListBox2.Items); Reg.Free end
الرد
#10
السلام عليكم
أخي كاش واحد لم أنجح في عمل المطلوب :rtfm3:
إن كانت لديك فكرة فتفظل
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم