PDA

نسخه کامل مشاهده نسخه کامل : اضافه کردن فرمان به راست کلیک



smd7m
17-05-2007, 10:53
سلام
برای اینکه بتونم یک فرمان رو به فهرست کلیک راست اضافه کنم باید به چه صورت این کار انجام بشه درحقیقت می خوام یک فرمان با عنوان New Backup ایجاد که با کلیک بر روی آن در محیط جاری کار سه پوشه بنامهای A ، B و C ایجاد شود.
با تشکر

smd7m
17-05-2007, 11:20
روش اضافه کردن فرمان بر روی فولدرها و فایل ها
ترجمه با شما

If you use the command line window a lot, this ---- will let you open a command prompt at the selected directory.

Go to Start > Run. Enter Regedit and hit enter. This opens the Registry Editor.

Navigate to:
HKEY_CLASSES_ROOT>Directory>shell

Create a new sub-key called Command under the main key (that is, the new key will be HCR\Directory\shell\Command). Change the value of “(Default)” within that key to the text you’d like on the right-click menu, for example, “Open A Command Prompt Here“.

Create another, new sub-key under the key created above, again called “command” (so this key will be HCR\Directory\shell\Command\command). Change the value of “(Default)” here to “cmd.exe /k cd %1“, without the quotes, off course. Now right-click on a folder and you will find the command in the menu.
حالا اگر بخواهیم در محیط خالی پنجره این کار رو انجام بدیم ...

smd7m
17-05-2007, 11:46
این هم نمونه دوم

I have scripted a MakeNewFolder.bat file to add a New Folder command when you right-click a folder in Windows Explorer.

The MakeNewFolder.bat script creates a %SystemRoot%\NewFolder.bat file that prompts the user for a folder name, and a temporary file that REGEDIT uses to add the New Folder command to a folder's context menu.

The syntax for using MakeNewFolder.bat is MakeNewFolder.

When a user right-clicks on a folder, and clicks the New Folder command, they will be prompted with:

Type the Folder Name and press Enter.
If they press Enter, the NewFolder.bat script will exit. If they type a new folder name, like This is a new sub-folder, a new sub-folder will be created. Notice that quotes (") should NOT be used.

MakeNewFolder.bat contains:

@echo off
setlocal
set nf="%TEMP%\NF_%RANDOM%.TMP"
@echo @echo off>%SystemRoot%\NewFolder.bat
@echo if {%%1}=={} goto :EOF>>%SystemRoot%\NewFolder.bat
@echo setlocal>>%SystemRoot%\NewFolder.bat
@echo pushd %%1>>%SystemRoot%\NewFolder.bat
@echo set ANS={NONE}>>%SystemRoot%\NewFolder.bat
@echo set /p ANS="Type the Folder Name and press Enter. ">>%SystemRoot%\NewFolder.bat
@echo if "%%ANS%%" EQU "{NONE}" endlocal^&goto :EOF>>%SystemRoot%\NewFolder.bat
@echo MD "%%ANS%%">>%SystemRoot%\NewFolder.bat
@echo popd>>%SystemRoot%\NewFolder.bat
@echo endlocal>>%SystemRoot%\NewFolder.bat
@echo Exit>>%SystemRoot%\NewFolder.bat
@echo REGEDIT4>%nf%
@echo.>>%nf%
@echo [HKEY_CLASSES_ROOT\Folder\shell\NewFolder]>>%nf%
@echo @="New Folder">>%nf%
@echo.>>%nf%
@echo [HKEY_CLASSES_ROOT\Folder\shell\NewFolder\command]>>%nf%
set work=%SystemRoot%
set work=%work:\=\\%
@echo @="%work%\\System32\\cmd.exe /k %work%\\NewFolder.bat \"%%1\"">>%nf%
@echo.>>%nf%
regedit /s %nf%
del /q %nf%
endlocal

با توجه به نمونه هایی که گذاشتم اگر مشکلم رو حل کردید متشکر می شم.\

piremard
17-05-2007, 13:44
خب شما ترجمه لازم دارین یا راهنمایی بهرحال :
برین تو رجیستری ویندوز و دنبال این عبارت \Directory\ از شاخه ی HKEY_CLASSES_ROOl
بگردین یا اگرم حالشو ندارین خب سرچ کنید
بعد زیر شاخه ی shell رو باز کنید حالا کلیک راست کنید روی عبارت "شِل" و از منوی مربوط عبارت new و بعد key
اسم کلیدی رو که زیر شاخه همین ساخته می شه بگذارید "command"
در پنجره مقابل روی عبارت default کلید کنید و در جای value data بنویسید "بازش کن با ... "
بعد دوباره زیر همین کلید command ای که ستختین باز یک کلید عین همین و به اسم command بسازید
حالا در در پنجره سمت راست روی عبارت default دوبار کلیک کنید و در دیالوگی که باز می شه در فرمان مورد نظر رو بنویسید مثلا cmd.exe mkdir \p30world
یا هر کامندی که مد نظر دارین
برای رفتن به رجیستری هم تو run از منوی استارت بنویسید reedit
پس یعنی داریم HKEY_CLASSES_ROOT\Directory\shell\Command\command

smd7m
17-05-2007, 20:27
با تشکر از piremard عزیز
ترجمه رو که خودم انجام داده ام فقط دو روش رو قرار دادم تا بقیه استفاده کنند ....
با توجه به سوالی که مطرح کرده بودم فهرست کارم بصورت زیر است.
1- من یک پوشه رو به عنوان تاریخ روز ایجاد می کنم مثلا 860227 و در این پوشه کارهای روزانه که با یک گروه خاص هست انجام می دهم مثلا پوشه واحد 1 کار واحد 1 ذخیره می شه
2- حالا می خوام پوشه هایی که پیش فرض هست بصورت خودکار ایجاد کنم و فکر کردم و بهترین راه یعنی همین کلیک راست هست.
می خوام وقتی بر روی پوشه تاریخ روز 860227 کلیک راست کردم گزینه ای بعنوان "ایجاد گروه جدید" وجود داشته باشه که با کلیک بر روی فرمان پوشه های پیش فرض ایجاد بشه. که پوشه های سیستم من در حدود 10 مورد هست.
مثلا پوشه "واحد 1" و ...

Mohsen6558
17-05-2007, 21:04
این کارو نکنی به نظر من بهتره سرعت سیستمتو مخصوصا هنگام راست کلیک می آره پایین
پیشنهاد من Turbo Lunch

piremard
18-05-2007, 01:46
با تشکر از piremard عزیز
ترجمه رو که خودم انجام داده ام فقط دو روش رو قرار دادم تا بقیه استفاده کنند ....
با توجه به سوالی که مطرح کرده بودم فهرست کارم بصورت زیر است.
1- من یک پوشه رو به عنوان تاریخ روز ایجاد می کنم مثلا 860227 و در این پوشه کارهای روزانه که با یک گروه خاص هست انجام می دهم مثلا پوشه واحد 1 کار واحد 1 ذخیره می شه
2- حالا می خوام پوشه هایی که پیش فرض هست بصورت خودکار ایجاد کنم و فکر کردم و بهترین راه یعنی همین کلیک راست هست.
می خوام وقتی بر روی پوشه تاریخ روز 860227 کلیک راست کردم گزینه ای بعنوان "ایجاد گروه جدید" وجود داشته باشه که با کلیک بر روی فرمان پوشه های پیش فرض ایجاد بشه. که پوشه های سیستم من در حدود 10 مورد هست.
مثلا پوشه "واحد 1" و ...

بهتره یک echo برای داس بنویسید که فرمان تولید پوشه ها رو بده
بعد همون فرمان کلیک راست رو ایجاد کنید بدین شکل “cmd.exe /k cd %1“
برای command از رجیستری
حالا رو هر پوشه کلیک راستی کنید و منوتونو کلیک کنید cmd line باز می شه کافیه متن echo off رو pasteکنید
من فقط الان همین راه رو ساده تر می بینم
موفق باشید

piremard
18-05-2007, 01:49
این کارو نکنی به نظر من بهتره سرعت سیستمتو مخصوصا هنگام راست کلیک می آره پایین
پیشنهاد من Turbo Lunch

ربطی به سرعت کلیک راست ندارند دوست عزیز کلیک راست مربوط به اپیرنس می شه که بسادگی هم رفع می شه
من خودم کلی منو ام شلوغه

smd7m
18-05-2007, 10:18
با سلام و تشکر
با توجه به نمونه دومی که گذاشتم این کار رو انجام دادم و بسیار عالی کار کرد.
کدهای زیر رو به محیط Notepad کپی کرده و با نام MakeNewFolder.bat ذخیره کردم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سپس با اجرای فایل فوق تغییرات بر روی رجستری ذخیره و فایل اجرایی NewFolder.bat در پوشه ویندوز سیستم بصورت خودکار ایجاد شد.
اکنون با کلیک راست بر روی یک پوشه گزینه New Folder دیده می شود که با کلیک بر روی فرمان، پوشه های مورد نظر ایجاد می گردند. (Group1 , Group2)

~~~~~~~~~~~~~~~~~~~
حالا مشکل اینجاست که به چه صورت با اجرای فرمان پنجره Dos باز و بسته نشه و این تغییرات از دید کاربر مخفی بمونه ...
~~~~~~~~~~~~~~~~~~~

piremard
18-05-2007, 11:28
یک بچ فایل باید اول اینو ران کنه
wscript.exe "C:\yourpath\invis.vbs" "MakeNewFolder.bat"


که invis.vbs
هست
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

smd7m
18-05-2007, 11:40
این batch file چه تغییری رو ایجاد می کنه ....

piremard
19-05-2007, 06:39
در launch.bat(this files runs your program silently) بگذارین...

wscript.exe "C:\yourpath\invis.vbs" "your file.bat"

در invis.vbs هم...

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

بعدم فایل اصلی بت

echo off


حالا ران کنید launch.bat
منبع--[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

smd7m
19-05-2007, 22:10
من که هر کاری انجام میدم باز صفحه DOS باز می شه و حتی اعلان سیستم هم دیده می شه.
مطابق گفته های جنابعالی سه فایل وجود دارد :
1- فایل برنامه (NewFolder.bat) با محتوای :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در مسیر : C:\WINDOWS
~~~~~~~~~~~~~~~~~~~~~~~~~~~
2- فایل launch.bat با محتوای :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
~~~~~~~~~~~~~~~~~~~~~~~~~~~
3- فایل invis.vbs با محتوای :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در مسیر : C:\

ولی درست نشد.... مشکل کجاست؟

piremard
20-05-2007, 13:55
شرمنده فکر کنم شما فقط یک بچ نیاز داشتید و اونم همون NewFolder.bat
یعنی کد رو تو هخون بچ خودتون بگذارید خط اول فرمان
ضمنا این روش رو خود مایکروسافت " تچنت" توصیه کرده بود

smd7m
20-05-2007, 16:35
piremard عزیز
سلام
می خواستم ببینم شما انجام دادید و درست بود.
طبق نظرات شما من فرمان موجود در فایل لانچ رو در اولین سطر فایل نیوفولدر اضافه کردم ولی باز هم تغییری ایجاد نشد.

محتوای فایل NewFolder.bat
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید