delphi4arab منتديات دلفي للعرب
كود سورس للبحث في Registry/Registre - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : مصادر دلفي مفتوحة تعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=14)
+--- الموضوع : كود سورس للبحث في Registry/Registre (/showthread.php?tid=1603)

الصفحات: 1 2


كود سورس للبحث في Registry/Registre - paix144 - 02-02-2010

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


كود سورس للبحث في Registry/Registre - kachwahed - 02-02-2010

وعليكم السلام ورحمة الله
مثال رائع أخي 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; 
بالتوفيق.



كود سورس للبحث في Registry/Registre - paix144 - 02-02-2010

السلام عليكم أخي الكريم
إقتراح جميل
لقد قمت بمحاولة إجراء تعديل بإدراج TListView لكن لم تنجح
كود :
var List:TListItem; begin List:=listview1.Items.Add; List.SubItems.Add(Format('%s (%s)', [Key, TypeLabels[FindType]]));



كود سورس للبحث في Registry/Registre - kachwahed - 03-02-2010

وعليكم السلام ورحمة الله
أخي الكريم paix144
أرفق المشروع بعد تنظيفه (أرفق الملفات الضرورية فقط)، وسأحاول فيه إن شاء الله.



كود سورس للبحث في Registry/Registre - paix144 - 03-02-2010

جيد أخي
ها هو التعديل و لكن لم ينجح
هنالك فيه أسطر لكن الناتج لا يظهر


كود سورس للبحث في Registry/Registre - kachwahed - 04-02-2010

بعض التعديلات الصغيرة...
هناك خلل يمنع القفز إلى المفاتيح
ينقصها الفصل بين الـ Key و الـ Value
أخي paix144 إليك الخط :bye1:
بالتوفيق.



كود سورس للبحث في Registry/Registre - paix144 - 04-02-2010

السلام عليكم
جميل أخي كاش واحد
سأقوم بالتعديل غدا إن شاء الله
أنا منهك
ممكن توضح أكثر أخي؟


كود سورس للبحث في Registry/Registre - kachwahed - 04-02-2010

وعليكم السلام ورحمة الله
يعيد الإجراء OnRegSearchFind من خلال المعلمة Key المسار الكامل للمفتاح (currPath)+قيمة المفتاح (keys)
لاحظ من مصدر المكون:
كود :
FOnFind(self, soKeyName, CompletePath(ARegistry, [color=Red]currPath + '\' + keys[i][/color]));
ينبغي الفصل بينهما، ليتم تخزين كل واحد على حدة.
حاول أكثر بالتوفيق أخي.



كود سورس للبحث في Registry/Registre - paix144 - 04-02-2010

السلام عليكم
شئ مثل هذا أخي ؟
كود :
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



كود سورس للبحث في Registry/Registre - paix144 - 06-02-2010

السلام عليكم
أخي كاش واحد لم أنجح في عمل المطلوب :rtfm3:
إن كانت لديك فكرة فتفظل