<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>البرمجة on kenji.blog</title><link>http://kenji.blog/ar/categories/%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9/</link><description>Recent content in البرمجة on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ar</language><copyright>kenjinote</copyright><lastBuildDate>Wed, 16 Apr 2025 01:58:03 +0900</lastBuildDate><atom:link href="http://kenji.blog/ar/categories/%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9/index.xml" rel="self" type="application/rss+xml"/><item><title>خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL</title><link>http://kenji.blog/ar/p/%D8%AE%D8%B7%D9%88%D8%A7%D8%AA-%D8%AA%D8%B4%D8%BA%D9%8A%D9%84-powershell-%D9%85%D9%86-c-%D8%B9%D8%A8%D8%B1-c-cli-dll/</link><pubDate>Wed, 16 Apr 2025 01:58:03 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%AE%D8%B7%D9%88%D8%A7%D8%AA-%D8%AA%D8%B4%D8%BA%D9%8A%D9%84-powershell-%D9%85%D9%86-c-%D8%B9%D8%A8%D8%B1-c-cli-dll/</guid><description>&lt;img src="http://kenji.blog/p/c-%E3%81%8B%E3%82%89-powershell-%E3%82%92-c-cli-dll-%E7%B5%8C%E7%94%B1%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86/img.png" alt="Featured image of post خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL" />&lt;h1 id="-خطوات-تشغيل-powershell-من-c-عبر-ccli-dll-visual-studio-2022--c">🎯 خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL (Visual Studio 2022 / C++)
&lt;/h1>&lt;h2 id="-الهيكل-العام">✅ الهيكل العام
&lt;/h2>&lt;h3 id="--غلاف-cli-dll-ccli">🔹 ① غلاف CLI DLL (C++/CLI)
&lt;/h3>&lt;p>يوفر وظيفة لتشغيل نصوص PowerShell.&lt;/p>
&lt;h3 id="--الجانب-المتصل-بـ-native-c">🔹 ② الجانب المتصل بـ Native C++
&lt;/h3>&lt;p>يستدعي CLI DLL لتشغيل نصوص PowerShell.&lt;/p>
&lt;hr>
&lt;h2 id="-الخطوة-1-إنشاء-مشروع-غلاف-cli-dll">🔧 الخطوة 1: إنشاء مشروع غلاف CLI DLL
&lt;/h2>&lt;h3 id="1-إنشاء-المشروع">1. إنشاء المشروع
&lt;/h3>&lt;ul>
&lt;li>[إنشاء جديد] → [C++] → &lt;strong>CLR Class Library (.NET Framework)&lt;/strong>&lt;/li>
&lt;li>الاسم: &lt;code>PowerShellWrapper&lt;/code>&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>💡 إذا لم يظهر هذا القالب، قم بتثبيت بيئة عمل &amp;ldquo;.NET desktop development&amp;rdquo;.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h3 id="2-إضافة-حزمة-nuget">2. إضافة حزمة NuGet
&lt;/h3>&lt;ol>
&lt;li>انقر بزر الماوس الأيمن على المشروع → [إدارة حزم NuGet]&lt;/li>
&lt;li>ابحث عن &lt;code>System.Management.Automation&lt;/code> وقم بتثبيته
(الإصدار 5.x أو 7.x)&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h3 id="3-تنفيذ-الكود-من-جانب-cli">3. تنفيذ الكود من جانب CLI
&lt;/h3>&lt;h4 id="powershellwrapperh">PowerShellWrapper.h
&lt;/h4>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#pragma once
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">namespace&lt;/span> &lt;span class="n">PowerShellWrapper&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">public&lt;/span> &lt;span class="n">ref&lt;/span> &lt;span class="k">class&lt;/span> &lt;span class="nc">PowerShellExecutor&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">Execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">script&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h4 id="powershellwrappercpp">PowerShellWrapper.cpp
&lt;/h4>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;#34;PowerShellWrapper.h&amp;#34;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Management&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Automation&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Collections&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">ObjectModel&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">PowerShellWrapper&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">PowerShellExecutor&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">script&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PowerShell&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">ps&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">PowerShell&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Create&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ps&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">AddScript&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">script&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Collection&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">PSObject&lt;/span>&lt;span class="o">^&amp;gt;^&lt;/span> &lt;span class="n">results&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ps&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Invoke&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Text&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">StringBuilder&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">sb&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gcnew&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Text&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">StringBuilder&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="nf">each&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">PSObject&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="n">in&lt;/span> &lt;span class="n">results&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sb&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">AppendLine&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">result&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">ToString&lt;/span>&lt;span class="p">());&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">sb&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">ToString&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-الخطوة-2-الاستدعاء-من-جانب-native-c">🔧 الخطوة 2: الاستدعاء من جانب Native C++
&lt;/h2>&lt;h3 id="1-إنشاء-مشروع-تطبيق-وحدة-تحكم-c">1. إنشاء مشروع تطبيق وحدة تحكم C++
&lt;/h3>&lt;ul>
&lt;li>الاسم: &lt;code>NativeApp&lt;/code>&lt;/li>
&lt;/ul>
&lt;h3 id="2-إعدادات-المرجع">2. إعدادات المرجع
&lt;/h3>&lt;ul>
&lt;li>انقر بزر الماوس الأيمن على المشروع → [إضافة مرجع] → [مشاريع] → أضف &lt;code>PowerShellWrapper&lt;/code>&lt;/li>
&lt;li>[خصائص التكوين] → [C/C++] → [دعم وقت تشغيل اللغة المشتركة] → التغيير إلى &lt;strong>/clr&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="3-كود-التنفيذ-maincpp">3. كود التنفيذ (main.cpp)
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#using &amp;lt;System.dll&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#using &amp;#34;..\\PowerShellWrapper\\Debug\\PowerShellWrapper.dll&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">PowerShellWrapper&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PowerShellExecutor&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">executor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gcnew&lt;/span> &lt;span class="n">PowerShellExecutor&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">executor&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Get-Process | Select-Object -First 1&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Console&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">WriteLine&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">result&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-ملاحظات-إضافية-idl--tlb--تسجيل-com">💡 ملاحظات إضافية (IDL / TLB / تسجيل COM)
&lt;/h2>&lt;ul>
&lt;li>نظراً لأن هذا التكوين يشير مباشرة إلى .NET DLL بدلاً من COM، فإنه &lt;strong>لا حاجة إلى IDL أو TLB أو تسجيل COM&lt;/strong> .&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-التكوين-النهائي">✅ التكوين النهائي
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Solution
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── PowerShellWrapper (C++/CLI DLL)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └── PowerShellExecutor
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── NativeApp (C++ EXE)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └── main.cpp → استدعاء DLL
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr></description></item><item><title>خطوات استعادة (تهيئة وإصلاح) نظام التشغيل لأجهزة Android (Google Pixel)</title><link>http://kenji.blog/ar/p/androidgoogle-pixel%E7%AB%AF%E6%9C%AB%E3%81%AE%E5%BE%A9%E5%85%83%E6%89%8B%E9%A0%86/</link><pubDate>Fri, 28 Feb 2025 01:20:41 +0900</pubDate><guid>http://kenji.blog/ar/p/androidgoogle-pixel%E7%AB%AF%E6%9C%AB%E3%81%AE%E5%BE%A9%E5%85%83%E6%89%8B%E9%A0%86/</guid><description>&lt;img src="http://kenji.blog/p/androidgoogle-pixel%E7%AB%AF%E6%9C%AB%E3%81%AE%E5%BE%A9%E5%85%83%E6%89%8B%E9%A0%86/pixel_restore_eyecatch_1788588727945.jpg" alt="Featured image of post خطوات استعادة (تهيئة وإصلاح) نظام التشغيل لأجهزة Android (Google Pixel)" />&lt;h1 id="خطوات-استعادة-أجهزة-android-google-pixel">خطوات استعادة أجهزة Android (Google Pixel)
&lt;/h1>&lt;p>إذا واجه جهاز Google Pixel مشكلات خطيرة في النظام مثل &amp;ldquo;إعادة التشغيل المتكرر (bootloop)&amp;rdquo; أو &amp;ldquo;التوقف عند شاشة الشعار&amp;rdquo; أو &amp;ldquo;أصبح الأداء غير مستقر للغاية&amp;rdquo;، فيمكنك استخدام الأداة الرسمية من Google &lt;strong>&amp;ldquo;Pixel Update and Software Repair&amp;rdquo;&lt;/strong> لاستعادة (إصلاح) برنامج الجهاز بأمان عبر المتصفح.&lt;/p>
&lt;p>تشرح هذه المقالة الخطوات المحددة والنقاط التي يجب الانتباه إليها بالتفصيل.&lt;/p>
&lt;hr>
&lt;h2 id="1-الوصول-إلى-أداة-الاستعادة">1. الوصول إلى أداة الاستعادة
&lt;/h2>&lt;p>أولاً، قم بالوصول إلى صفحة أداة الإصلاح الرسمية التالية من متصفح (يُوصى باستخدام Google Chrome أو Microsoft Edge) على جهاز الكمبيوتر الخاص بك (Windows أو Mac).&lt;/p>
&lt;p>🔗 &lt;strong>&lt;a class="link" href="https://pixelrepair.withgoogle.com/carrier_selection" target="_blank" rel="noopener"
>الموقع الرسمي لأداة Pixel Update and Software Repair&lt;/a>&lt;/strong>&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>※ملاحظة※&lt;/strong>
عند تنفيذ عملية الاستعادة، قد يتم &lt;strong>مسح جميع البيانات (التهيئة)&lt;/strong> الموجودة على الجهاز (الصور، التطبيقات، جهات الاتصال، وما إلى ذلك). إذا كان الجهاز لا يزال قابلاً للتشغيل، فتأكد من إجراء نسخ احتياطي إلى Google Drive أو ما شابه ذلك مسبقًا.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="2-التحضير-قبل-الاستعادة">2. التحضير قبل الاستعادة
&lt;/h2>&lt;p>لضمان سير العملية بسلاسة، قم بإعداد ما يلي.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>شحن البطارية&lt;/strong>
إذا انقطع التيار الكهربائي في منتصف العملية، فقد يصبح الجهاز &amp;ldquo;معطلاً تمامًا&amp;rdquo;. تأكد من شحن البطارية بنسبة 50% على الأقل، ومن الأفضل أن تكون مشحونة بالكامل.&lt;/li>
&lt;li>&lt;strong>استخدام كابل USB أصلي&lt;/strong>
يُوصى بشدة باستخدام كابل USB-C الأصلي المرفق مع الجهاز لضمان نقل البيانات بشكل مستقر.&lt;/li>
&lt;li>&lt;strong>(إذا لزم الأمر) تثبيت برامج التشغيل&lt;/strong>
إذا كنت تستخدم جهاز كمبيوتر يعمل بنظام Windows، فقد لا يتم التعرف على الجهاز بشكل صحيح. في هذه الحالة، يرجى تثبيت &lt;a class="link" href="https://developer.android.com/studio/run/win-usb?hl=ar" target="_blank" rel="noopener"
>Google USB Driver&lt;/a> .&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="3-خطوات-الاستعادة-المحددة">3. خطوات الاستعادة المحددة
&lt;/h2>&lt;p>بمجرد الانتهاء من التحضيرات، اتبع التعليمات التي تظهر على الشاشة لمتابعة الاستعادة.&lt;/p>
&lt;h3 id="step-1-اختيار-شركة-الاتصالات-وتوصيل-الجهاز">Step 1: اختيار شركة الاتصالات وتوصيل الجهاز
&lt;/h3>&lt;p>عند فتح الموقع، ستظهر أولاً شاشة لاختيار شركة الاتصالات. إذا كان جهازك خاليًا من قيود SIM أو غير مرتبط بشركة اتصالات، فاختر &amp;ldquo;أخرى (Other)&amp;rdquo; أو ما شابه ذلك.
بعد ذلك، قم بتوصيل جهاز الكمبيوتر وجهاز Pixel باستخدام كابل USB.&lt;/p>
&lt;h3 id="step-2-الدخول-في-وضع-rescue-mode-fastboot-mode">Step 2: الدخول في وضع Rescue Mode (Fastboot Mode)
&lt;/h3>&lt;p>باتباع التعليمات التي تظهر على الشاشة، بدءًا من إيقاف تشغيل الجهاز، &lt;strong>اضغط مع الاستمرار على زر الطاقة وزر خفض الصوت في نفس الوقت&lt;/strong> لبدء وضع Fastboot (شاشة بخلفية سوداء يظهر عليها رمز Android مستلقيًا).&lt;/p>
&lt;h3 id="step-3-التعرف-على-الجهاز-في-جهاز-الكمبيوتر">Step 3: التعرف على الجهاز في جهاز الكمبيوتر
&lt;/h3>&lt;p>عند النقر فوق الزر &amp;ldquo;توصيل الجهاز&amp;rdquo; في المتصفح، سيتم فتح نافذة منبثقة للمتصفح وسيتم عرض جهاز Pixel المتصل في القائمة. حدد الجهاز المستهدف واسمح بالاتصال.&lt;/p>
&lt;h3 id="step-4-تنزيل-البرنامج-وتثبيته">Step 4: تنزيل البرنامج وتثبيته
&lt;/h3>&lt;p>بمجرد التعرف على الجهاز، سيتم تحديد الإصدار الأمثل من نظام التشغيل Android (البرنامج الثابت) تلقائيًا. عند النقر فوق &amp;ldquo;تثبيت&amp;rdquo;، سيتم تنزيل البرنامج على جهاز الكمبيوتر وستبدأ عملية الكتابة (التفليش) على الجهاز.&lt;/p>
&lt;blockquote>
&lt;p>⚠️ &lt;strong>تحذير:&lt;/strong> أثناء هذه العملية، &lt;strong>لا تقم أبدًا بفصل كابل USB أو إيقاف تشغيل جهاز الكمبيوتر.&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;h3 id="step-5-الانتهاء-والإعداد-الأولي">Step 5: الانتهاء والإعداد الأولي
&lt;/h3>&lt;p>إذا وصل شريط التقدم إلى 100% وظهرت رسالة &amp;ldquo;اكتمل&amp;rdquo;، فقد تمت الاستعادة بنجاح. سيتم إعادة تشغيل الجهاز تلقائيًا وعرض شاشة الإعداد الأولي (شاشة &amp;ldquo;مرحبًا&amp;rdquo;) تمامًا كما كان عند الشراء.&lt;/p>
&lt;hr>
&lt;h2 id="الخاتمة">الخاتمة
&lt;/h2>&lt;p>أداة الإصلاح الرسمية من Google Pixel هي أداة ممتازة تتيح لك إعادة تفليش البرنامج الثابت بأمان بنقرات قليلة فقط في المتصفح، دون الحاجة إلى تشغيل أوامر خاصة (adb أو fastboot) مباشرة.&lt;/p>
&lt;p>قبل أخذ الجهاز المعطل إلى المتجر، جرب هذه الخطوات، فقد تحل المشكلة بسهولة. نأمل أن يكون هذا مفيدًا لك.&lt;/p></description></item><item><title>ميزات Rust</title><link>http://kenji.blog/ar/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/</link><pubDate>Mon, 03 Oct 2022 22:47:20 +0900</pubDate><guid>http://kenji.blog/ar/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/</guid><description>&lt;img src="http://kenji.blog/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/img.png" alt="Featured image of post ميزات Rust" />&lt;h1 id="ميزات-rust">ميزات Rust
&lt;/h1>&lt;ul>
&lt;li>لغة برمجة مفتوحة المصدر حديثة نسبياً يتم تطويرها بواسطة Mozilla&lt;/li>
&lt;li>لغة سريعة بدون جمع القمامة، متخصصة في برمجة النظم&lt;/li>
&lt;li>تمتلك آلية فريدة للملكية والاستعارة كمواصفات لغة لضمان أمان الذاكرة&lt;/li>
&lt;li>تعمل عبر منصات متعددة&lt;/li>
&lt;li>تمتلك مدير حزم ممتاز يسمى Cargo بشكل قياسي&lt;/li>
&lt;/ul></description></item><item><title>سرد عناوين النوافذ</title><link>http://kenji.blog/ar/p/%D8%B3%D8%B1%D8%AF-%D8%B9%D9%86%D8%A7%D9%88%D9%8A%D9%86-%D8%A7%D9%84%D9%86%D9%88%D8%A7%D9%81%D8%B0/</link><pubDate>Tue, 20 Sep 2022 17:03:15 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%B3%D8%B1%D8%AF-%D8%B9%D9%86%D8%A7%D9%88%D9%8A%D9%86-%D8%A7%D9%84%D9%86%D9%88%D8%A7%D9%81%D8%B0/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE%E5%88%97%E6%8C%99/img.png" alt="Featured image of post سرد عناوين النوافذ" />&lt;h1 id="سرد-عناوين-النوافذ">سرد عناوين النوافذ
&lt;/h1>&lt;p>طريقة لسرد عناوين النوافذ المفتوحة حاليًا باستخدام PowerShell.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Get-Process&lt;/span>&lt;span class="p">|&lt;/span>&lt;span class="n">where&lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="nv">$_&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">mainWindowTItle&lt;/span>&lt;span class="p">}|&lt;/span>&lt;span class="nb">Select-Object&lt;/span> &lt;span class="n">MainWindowTitle&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>نموذج الإخراج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">MainWindowTitle
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">---------------
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Windows PowerShell
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Internet Explorer
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">بدون عنوان - الرسام
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">بدون عنوان - المفكرة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">مدير المهام
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">تجربة إدخال Windows
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">مستند - الدفتر
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item></channel></rss>