আমি অনলাইনে অনুসন্ধান করেছিলাম এবং এটিকে এলোমেলোভাবে পেয়েছি।
দীর্ঘ গল্প সংক্ষিপ্ত, পাওয়ারশেল (লিপি সরবরাহিত) এবং জিপিওর সংমিশ্রণ।
http://4sysops.com/archives/forcing-notification-area-icons-to-always-show-in-windows-7-or-windows-8/
দীর্ঘ গল্প, নিম্নোক্ত একটি পাওয়ারশেল স্ক্রিপ্ট তৈরি করুন:
param(
[Parameter(Mandatory=$true,HelpMessage='The name of the program')][string]$ProgramName,
[Parameter(Mandatory=$true,HelpMessage='The setting (2 = show icon and notifications 1 = hide icon and notifications, 0 = only show notifications')]
[ValidateScript({if ($_ -lt 0 -or $_ -gt 2) { throw 'Invalid setting' } return $true})]
[Int16]$Setting
)
$encText = New-Object System.Text.UTF8Encoding
[byte[]] $bytRegKey = @()
$strRegKey = ""
$bytRegKey = $(Get-ItemProperty $(Get-Item 'HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify').PSPath).IconStreams
for($x=0; $x -le $bytRegKey.Count; $x++)
{
$tempString = [Convert]::ToString($bytRegKey[$x], 16)
switch($tempString.Length)
{
0 {$strRegKey += "00"}
1 {$strRegKey += "0" + $tempString}
2 {$strRegKey += $tempString}
}
}
[byte[]] $bytTempAppPath = @()
$bytTempAppPath = $encText.GetBytes($ProgramName)
[byte[]] $bytAppPath = @()
$strAppPath = ""
Function Rot13($byteToRot)
{
if($byteToRot -gt 64 -and $byteToRot -lt 91)
{
$bytRot = $($($byteToRot - 64 + 13) % 26 + 64)
return $bytRot
}
elseif($byteToRot -gt 96 -and $byteToRot -lt 123)
{
$bytRot = $($($byteToRot - 96 + 13) % 26 + 96)
return $bytRot
}
else
{
return $byteToRot
}
}
for($x = 0; $x -lt $bytTempAppPath.Count * 2; $x++)
{
If($x % 2 -eq 0)
{
$curbyte = $bytTempAppPath[$([Int]($x / 2))]
$bytAppPath += Rot13($curbyte)
}
Else
{
$bytAppPath += 0
}
}
for($x=0; $x -lt $bytAppPath.Count; $x++)
{
$tempString = [Convert]::ToString($bytAppPath[$x], 16)
switch($tempString.Length)
{
0 {$strAppPath += "00"}
1 {$strAppPath += "0" + $tempString}
2 {$strAppPath += $tempString}
}
}
if(-not $strRegKey.Contains($strAppPath))
{
Write-Host Program not found. Programs are case sensitive.
break
}
[byte[]] $header = @()
$items = @{}
for($x=0; $x -lt 20; $x++)
{
$header += $bytRegKey[$x]
}
for($x=0; $x -lt $(($bytRegKey.Count-20)/1640); $x++)
{
[byte[]] $item=@()
$startingByte = 20 + ($x*1640)
$item += $bytRegKey[$($startingByte)..$($startingByte+1639)]
$items.Add($startingByte.ToString(), $item)
}
foreach($key in $items.Keys)
{
$item = $items[$key]
$strItem = ""
$tempString = ""
for($x=0; $x -le $item.Count; $x++)
{
$tempString = [Convert]::ToString($item[$x], 16)
switch($tempString.Length)
{
0 {$strItem += "00"}
1 {$strItem += "0" + $tempString}
2 {$strItem += $tempString}
}
}
if($strItem.Contains($strAppPath))
{
Write-Host Item Found with $ProgramName in item starting with byte $key
$bytRegKey[$([Convert]::ToInt32($key)+528)] = $setting
Set-ItemProperty $($(Get-Item 'HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify').PSPath) -name IconStreams -value $bytRegKey
}
}
আপনার পছন্দের নাম ব্যবহার করে এটি একটি পিএস 1 ফাইল হিসাবে সংরক্ষণ করুন।
গ্রুপ পলিসি ম্যানেজমেন্ট এমএমসি খুলুন। আপনার নির্বাচিত গ্রুপ নীতি অবজেক্টটি নির্বাচন করুন, ডান ক্লিক করুন এবং সম্পাদনা নির্বাচন করুন। সম্পাদকটিতে, ব্যবহারকারী কনফিগারেশন> উইন্ডোজ সেটিংস> স্ক্রিপ্টস> লগনে নেভিগেট করুন এবং "প্রদর্শন বৈশিষ্ট্যগুলি" ক্লিক করুন। পাওয়ারশেল ট্যাবে যান এবং ফাইলগুলি দেখুন ক্লিক করুন।
সবেমাত্র এক্সপ্লোরার উইন্ডোতে তৈরি করা স্ক্রিপ্টটি অনুলিপি করুন যা সবেমাত্র খোলা এবং তারপরে উইন্ডোটি বন্ধ হয়ে যায়।
লগইন স্ক্রিপ্ট বৈশিষ্ট্য উইন্ডোতে, একটি নতুন পাওয়ারশেল স্ক্রিপ্ট যুক্ত করুন, স্ক্রিপ্টের নামে, আপনি যে স্ক্রিপ্টটি ব্যবহার করেছেন তার নাম লিখুন (উদাহরণস্বরূপ: NotifyIcon.ps1), এবং তারপরে প্যারামিটারগুলিতে, প্রোগ্রামের নামটি প্রবেশ করুন (কেস সংবেদনশীল!) অনুসরণ করুন ব্যবহারের সেটিং দ্বারা:
0 = কেবল বিজ্ঞপ্তিগুলি দেখান 1 = আইকন এবং বিজ্ঞপ্তিগুলি লুকান 2 = আইকন এবং বিজ্ঞপ্তিগুলি দেখান <--- আপনার যা প্রয়োজন
উদাহরণস্বরূপ, আপনার যদি সর্বদা উপস্থিত হওয়ার জন্য রিয়েলভিএনসি সার্ভারের প্রয়োজন হয় তবে আপনি প্রবেশ করতে পারেন:
winvnc4.exe 2
প্যারামেন্টার হিসাবে
আপনি এক্সিকিউটেবলের নাম কয়েকটি ভিন্ন উপায়ে খুঁজে পেতে পারেন, যেমন একটি রান ডায়লগ বাক্স খোলা এবং টাইপ করা msconfig
এবং প্রারম্ভিক প্রোগ্রামগুলি দেখুন, ম্যানুয়ালি ইনস্টলেশন ডিরেক্টরিতে নেভিগেট করা C:\Program Files\{your program}
, বা রানিংটি দেখে কাঙ্ক্ষিত প্রোগ্রামটি মিলানোর চেষ্টা করা টাস্ক ম্যানেজারে প্রক্রিয়া। 10 এর মধ্যে 9 বার এটি সাফল্যের ফলস্বরূপ।
এটি কাজ করার জন্য, ব্যবহারকারীর অবশ্যই পূর্বে অ্যাপ্লিকেশনটি পরিচালনা করে অবশ্যই সঠিকভাবে লগ আউট করা উচিত, যাতে এক্সপ্লোরারআরএক্সই রেজিস্ট্রিতে আপডেট হওয়া বিজ্ঞপ্তি অঞ্চল ইতিহাস লেখার সুযোগ পায়। পরবর্তী লগইন-এ, স্ক্রিপ্টটি সফলভাবে ইতিহাসে প্রোগ্রামটি সনাক্ত করতে হবে এবং সর্বদা প্রদর্শিত হওয়ার জন্য এটির সেটিং আপডেট করা উচিত।
আপনি কোনও পাওয়ারশেল প্রম্পট থেকে ডিবাগ করার জন্য প্রম্পট থেকে ম্যানুয়ালি চালনার চেষ্টা করতে পারেন, তবে এটি চালানোর আগে আপনি এক্সপ্লোরার এক্সেক্স ('টাস্কিল / এফ / ইম এক্সপ্লোরার এক্সেক্স') মারতে হবে, অন্যথায় এক্সপ্লোরার আপনার আপডেটটি দেখতে পাবে না এবং ওভাররাইট করে দেবে will এটি ছাড়ার পরে এটি।
আমি এই প্রক্রিয়াটির জন্য কোনও কৃতিত্ব গ্রহণ করি না। আমি এটি লিখিনি, আমি এটি সন্ধান করেছি। স্ক্রিপ্টের জন্য ক্রেডিট মাইকা রাওল্যান্ডকে যায় । জিপিও প্রক্রিয়াটির ক্রেডিট জিওফ কেন্ডালে যায়