ایران سرفراز- نرم افزار وپروژهای دانشجویی


نرم افزار وپروژهای دانشجویی

ارائه الگوریتمی برای بهینه سازی پرس و جوهای تو در تو

 

 

ارائه الگوریتمی برای بهینه سازی پرس و جوهای تو در تو

mohsen_mahyar@yahoo.com

mo-mah.persianblog.ir

چکیده

بهینه سازی پرس و جوهای تودرت و ی پیچیده، مشگل است، خصوصا اگر از توابع تعریف شده کاربر در پرس و جو استفاده

شده باشد . بیشترین روشی که برای بهینه سازی پرس و جوهای تودرتو پیشنهاد شده، تبدیل پرس و جو از حالت تودرتویی به شکل

غیر تودرتو اس ت . اما این روش همیشه اجرایی و مناسب نمی باشد، همچنین اگر پرس و جو از توابع تعریف شده کاربر استفاده نماید

تبدیل سخت تر هم می شو د . در این تحقیق نشان داده می شود روشهای موجود برای پردازش پرس و جو و زیر پرس و جوهای

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

بطور مستقل اجرا می گردند، موثر نیستن د . سپس یک روش برای بهینه سازی پرس و جوها و زیر پرس و جوهایی که شامل توابع

تعریف شده کاربر هستند در قالب الگوریتم ارائه می گرد د . در نهایت، یک بهینه ساز شبیه سازی می شود و نتایجش د ر محیط

ثبت می گردد که صحتی بر خاصیت این تحقیق می باشد. Microsoft SQL Server

کلمات کلیدی

بهینه سازی پرس و جو، بهینه سازی پرس و جوهای تو در تو ، توابع تعریف شده کاربر، غیر همبستگی، غیر تودرتویی.

2

۱- مقدمه

ما از بهینه سازی پرس و جو برای حل مسائل زیادی استفاد ه می

کنیم. زمانی که یک پرس و جو مطرح می شود، سیستم مدیریت

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

پرس و جو و رسیدن به جواب استفاده کند . همه آن روش ها در

نهایت یک نتیجه را تولید می کنند ولی از نظر هزینه های انجام

شده مانند کل زمان مورد نیاز برای اجرا متفاوت اند . چه روشی

حداقل زمان را برای اجرا نیاز دارد؟ در زمینه بانک اطلاعات،

محدوده بهینه سازی پرس و جوها بسیار وسیع است . این مورد از

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

بخش های متعددی تقسیم می شود، هدف این تحقیق بررسی

روشهای بهینه سازی پرس و جوهای تودرتو (پرس و جوهایی که

دارای زیر پرس و جو هستند ) و ارائه روشی برای بهینه سازی

پرس و جوها و زیرپرس و جوهایی که شامل توابع تعریف شده

کاربر هستند . بیشترین روشی که برای بهینه سازی پرس و

جوهای تودرتو پیشنهاد شده است [ 11,14 ] تبدیل پر س و جو از

حالت تودرتویی به شکل غیر تودرتو است . اما این روش همیشه

اجرایی و مناسب نمی باشد، همچنین اگر پرس و جو از توابع

تعریف شده کاربر استفاده نماید تبدیل سخت تر هم می شود . به

پرس و جوی مثال زیر که از یک تابع تعریف شده کاربر در

استفاده می نماید توجه کنید. SELECT قسمت

که شامل سه TestTree مثال : ساختار درختی هر نود جدول

فیلد نام گره ، پدر گره و شرح گره میباشد را مشخص نمایید.

SELECT dbo.fullname(@nodeid)

FROM TestTree

CREATE FUNCTION dbo.fullname (@nodeid int)

RETURNS varchar(500) AS

BEGIN

declare @pid int

declare @Str varchar(500)

declare @CurrentName varchar(500)

SET @Str = ''

SELECT @Pid = ParentId , @CurrentName =

NodeName

FROM TestTree

WHERE NodeId = @nodeid

SET @Str = @CurrentName

WHILE (@PId <>0)

BEGIN

SELECT @PId = ParentId,@CurrentName =

NodeName

FROM TestTree

WHERE NodeId = @PId

SET @Str = @CurrentName + ' -> ' +@Str

END

RETURN @Str

END

روش بهینه سازی ارائه شده در این تحقیق برای چنین پرس و

جوهایی طرحهایی را بواسطه ساختار پارامترهای موجود در بدنه

تابع تولید می کند که موثرتر از تعامل تودرتوی ساده میباشد.

سایر بخش های این تحقیق به این صورت سازماندهی شده

اند : بخش ۲ پیشینه این تح قیق شرح داده شده است . عملکرد

پرس و جوهای تودرتو و روش بهینه سازی پرس و جوهایی که

شامل توابع تعریف شده کاربر هستند در بخش ۳ مطرح می

گردد. سپس در بخش ۴ این روش را مورد آزمایش و ارزیابی قرار

می دهیم و نتایجش را ثبت می کنیم، سرانجام پیشنهاداتی برای

تحقیقات آینده مطرح می کنیم.

۲- پیشینه تحقیق

تحقیقات بسیار زیادی در زمینه بهینه سازی پرس و جوهای

تودرتو انجام گرفته است که بیشترین آنها بر غیر تودرتویی پرس

و جوها تاکید دارند. برای غیر تودرتویی پرس و جوهایی که درگیر

گزاره های عطفی می باشند در [ 11,14 ] به درستی مشخص شده

که SQL است ، اما اخیر ًا [ 2] به غیر تودرتویی پرس و جوهای

شامل گزاره های فصلی می باشد اشاره شده است . شروع روش

داخل جبر رابطه ای توسعه یافته با SQL مطرح شده تبدیل

عملگرهای انشعابی است . سپس اجرای معادلهای غیر تودرتوی

جدید که با ترکیبات فصلی بوجود می آید . همانگونه که اشاره شد

روش غیر تودرتویی مذکور فقط برا ی پرس و جوهای ی که شامل

گزاره ها ی فصل ی می باشند کاربرد دارد و با برخی از عملگرها

خصوصا عملگرهای منفی مشکل دارد و نمی توان اطمینان داشت

که در همه شرایط پرس وجو را از حالت تودرتویی خارج می سازد

و به معادل بهتری تبدیل می کند.

غیر تودرتویی زیر پرس وجوها را م ؤثر نمی داند [ 4] و یک Cao

SQL روش رابطه ای تودرتو برای پردازش زیر پرس وجوهای

پیشنهاد می کند . این روش توانایی رسیدگی کردن به پرس

وجوهای تودرتو از هر نوع و هر سطحی دارد (با استفاده از جبر

رابطه ای تودرتو ). انگیزه استف اده از جبر رابطه ای تودرتو آنست

که نتیجه یک زیر پرس وجو یک مجموعه ای از سطرهاست

(وقتی که توابع غیر جمعی هستند )، که در مدل رابطه ای تودرتو

می تواند همانند مجموع مقدار صفت مشخصه رفتار کند . بنابراین

مقایسه بین یک صفت مشخصه و نتیجه یک زیر پرس وجو می

تواند به و سیله مقایسه کردن یک صفت با یک مجموعه مقدار

SELECTION صفت به انجام برسد که با اندکی تغییرات عملگر

در جبر رابطه ای تودرتو حاصل می شود . بصورت کلی روش رابطه

ای تودرتوی توضیح داده شده [ 4]، در ابتدا غیر تودرتویی یک

پرس و جوی تودرتو بوسیله استرات ژی های غیر تودرتو ی رایج و

سپس استفاده از جبر رابطه ای توسعه یافته بنابر محاسبه گزاره

3

های درگیر زیر پرس وجوها، از پایین به بالا انجام می گردد. روش

رابطه ای تودرتو برای پرس وجوهایی که درگیر گزاره های منفی

هستند مناسب است ، اما در مورد پرس وجوهایی که شامل گزاره

های مثبت و توابع تعریف شده کاربر هستند برتری ویژه ای ندارد.

اعتقاد دارد اگرچه غیرهمبستگی اغلب نتایج Guravannavar

(طرحهای غیرتودرتو ) ارزانتری دارد ، ولی همیشه برای زیر پرس

وجوهای تودرتو کاربردی نمی باشد [ 9]. و اگر تعامل تودرتو

بدرستی پیاده سازی شود بر غیرهمبستگی برای چندین رده از

پرس وجوها غلبه می کند . همچنین تاکید داشت غیرهمبستگی

برای اجرای تعامل تودرتو در رویه ها و توابع تعریف شده کاربر

سخت است . بدینسان روشی پیشنهاد کرد که به اجرای تعامل

تودرتو با استفاده از پارامتر ترتیب مرتب ساز ی تسریع بخشد .

تکنیکی که برای این روش در نظ ر گرفته شده است مرتب سازی

پرس وجوی بیرونی با ملاحظه عبارات موجود در بدنه تابع (پرس

وجوی درونی) است.

۳- روش بهینه سازی پرس و جوهایی که

شامل توابع تعریف شده کاربر هستند

ما در این بخش روشی برای بهینه سازی پرس و جوهایی که

شامل توابع تعریف شده کاربر هستند، ارائه م ی دهیم . اما قبل از

پرداختن به این موضوع ابتدا عملکرد زیر پرس و جوهای تودرتو

را مورد بررسی قرار می دهیم.

۱- عملکرد زیر پرس و جوهای تودرتو -۳

بصورت مفهومی با زیر پرس و جو ها که در بخش شرط SQL

قرار دارند، شبیه به یک تابع رفتار می کند که Where موجود در

این تابع پار امترهایی را می گیرد و مقدار یا مقادیری (یا احتمالا

یک مجموعه تهی ) را بعنوان نتیجه بر م ی گرداند . پارامترها

متغیرهایی از سطح بالاتر هستند که در بخش زیر پرس و جو

های تودرتو استفاده می شوند (به این متغیرها متغیرهای

همبستگی می گویند ). بصورت مفهومی زیر پرس و جو می تواند

شبیه یک تابع دیده شود که یک پارامتر را می گیرد و مجموعه

ای از تمام مقدارهای ی که نامشان مشابه پارامتر است را بر می

تمام پرس وجو را با محاسبه یک ضرب کارتزین SQL . گرداند

ارزیابی می کند . این کار با ضرب رابطه های موجود در بخش

انجام میشود . تک تک سطرهای موجود را با شرط From بیرونی

تست می کند. این تکنیک برای ارزیابی where موجود در بخش

پرس و جوها با وجود زیر پرس و جو های تو درتو را ارزیابی

وابسته می گویند. ارزیابی وابسته خیلی کار آمد نیست چون زیر

پرس و جو بطور جدا گانه برای هر سطر از سطح خارجی پرس و

خواهد I/O جو ارز یابی می شود . و نتیجه تعداد زیادی از عملیات

سپس سعی می کنند که زیر پرس و SQL بود. بهینه سازهای

جو های تو در تو را در صورت امکان به عملیات پیوند تبدیل

I/O کنند. الگوریتمهای کار آمد پیوند از بالا رفتن هزینه

جلوگیری می کنند . اگر تبدیل امکان پذیر نبا شد، بهینه ساز زیر

پرس و جو ها را بصورت عبارتهای مستقل در نظر گرفته آنها را

بصورت مجزا بهینه می کند و سپس آنها را با هم و بصورت

وابسته و مرتبط ارزیابی می کند.

۲- روشی برای کاهش ارجاع به توابع -۳

برای بررسی یک پرس و جو از روش پایین به بالا استفاده SQL

که محدودیت هایی در WHERE می کند یعنی در ابتدا شرط

پرس و SELECT تعداد سطرها اعمال می کند ، و سپس شرط

جو را بررسی می کند . این روش بر اساس قوانین بهینه سازی

پرس و جو می باشد ، و در حالت کلی، زمانی که از پرس وجوهای

ساده استفاده می شود، بهترین روش پیمایش یک پرس وجو

موجود در پرس SELECT است. ازاینرو هنگامیکه تابع در شرط

و جو ظاهر می شود و محدودیتی در پرس و جوی فراخواننده

تابع اعمال نشده باشد، تابع به ازای تمامی سطرها اجرا می شود .

ما در این بخش ثابت می کنیم در بسیاری از حالات (مانند مثال

بخش ۱) که پرس وجو از توابع تعریف شده کارب ر استفاده می

کند روش فوق کم اثر است، غیر همبستگی برای چنین پرس و

جوهایی موثر نمی باشد و روش بهینه سازی ارائه شده در این

بخش با توجه به اینکه مراجعات پرس وجو به توابع تعریف شده

کاربر را در حالات مختلفی کاهش می دهد، نتایج بهتری نسبت

به روشهای رایج دارد.

۱- شرایط کاهش ارجاع به توابع -۲ -۳

در شرایط زیر می توان مراجعات پرس وجو به تابع را کاهش داد:

- پارامتر ارسالی در نتیجه تابع بی تاثیر باشد.

- پارامتر ثابت، به تابع فرستاده شود . یعنی (به ازای سطرهای

مختلف پرس و جو، پارامتر ثابت باشد در نتیجه خروجی تابع نیز

ثابت است)

- به ازای جمیع مقادیر مختلفی که تابع از طریق پارامتر دریافت

می کند و نتیجه یکسانی (یا تقریبا یکسانی) بر می گرداند.

- پارامتر ارسالی ترکیبی از ثابت و متغیر باشد . (بدینسان نتیجه

نیز در حالت کلی ترکیبی از ثابت و متغیر است)

۲- الگوریتم کاهش ارجاع به توابع -۲ -۳

به پرس وجوی مثال بخش ۱ توجه کنید.

این پرس وجو دو ویژگی دارد :

۱- از تابع تعریف شده کاربر استفاده می نماید.

۲- در بدنه تابع ، پرس وجوی فراخواننده تابع با محدودیت بوسیله

mohsen_mahyar@yahoo.com

mo-mah.persianblog.ir

4

فراخوانی می شود. where آرگومان تابع در شرط

پرس وجو باشند ، برای هر سطر از select زمانیکه توابع در شرط

پرس وجوی فراخواننده اجرا می گردند ، ما اثبات می کنیم

هنگامیکه پرس وجو از محدودیتهای ذکر شده استفاده می نماید

اجرای تابع برای هر سطر بصورت مستقل روش موثری نیست.

در این حالت پرس وجو ، با در نظر گرفتن بدنه تابع و

محدودیتهای فوق می بایستی ابتدا ت شخیص دهد کدام یک از

شرایط فوق برای ارتباط با تابع صدق می کند سپس طبق

الگوریتم زیر بسیاری از ارجاعات پرس و جو به تابع کاهش می

یابد.

INPUT : A query with user defined function

OUTPUT : The result of the query

PROCEDURE REDUCER (query,function)

BEGIN

OPEN function

FOR @variables BEGIN

IF @variable IS INACTIVE BEGIN

COMPUTE function once

OPEN query

COUNT(rows)

SHOW { { به اندازه سطرهای باقی مانده

CLOSE query

END

IF @vaiable IS ACTIVE BEGIN

IF @variable IS CONSTANT BEGIN

COMPUTE function WITH variable

OPEN query

COUNT(rows)

SHOW { { به اندازه سطرهای باقی مانده

CLOSE query

END

IF @variable IS VARIANT BEGIN

IF @variable EXIST CONDITION

BEGIN

RANGE(condition)

OMPUTE function IN condition range

OPEN query

COUNT(rows)

SHOW { { به اندازه سطرهای باقی مانده

CLOSE query

END

IF @variable IS EQUAL BEGIN

RANGE(equal)

COMPUTE function IN equal range

OPEN query

COUNT(rows) FOR equal

SHOW { { به اندازه سطرهای باقی مانده

CLOSE query

END

END

END

END

CLOSE function

END

توضیح الگوریتم: در این الگوریتم نشان داده می شود در

صورتیکه پارامتر در اجرای تابع بی تاثیر باشد ، بدنه تابع مستقل

از پرس و جوی فراخواننده فقط یکبار اجرا می گردد و نتایجش

برای مابقی سطرها نمایش داده می شود یا اگر پارامتر تاثیر گذار

باشد و مقدارش ثابت در نظر گرفته شده باشد باز هم بدنه تابع

مستقل از پرس و جوی فرا خواننده یک مرتبه و با مقدار دریافتی

از پارامتر اجرا می گردد و نتایجش برای مابقی سطرها نمایش

داده می شود. اما اگر پارامتر ارسالی به تابع تاثیر گذار باشد و

مقدارش نیز متغیر (یا ترکیبی از ثابت و متغیر ) باشد در حالاتی

که داخل بدنه تابع این متغیرها بصورت جملات شرطی یا برای

تعداد زیادی از سطرها ثابت باشد بازهم تعداد مراجعات به تابع

توسط پرس و جوی فراخواننده کاهش می یابد. پارامتر تابع پرس

و جوی مثال ۱ متغیر تاثیر پذیر است . به دلیل اینکه این پارامتر

در تعداد زیادی از سطرها مقدارش ثابت است بنابراین طبق

الگوریتم فوق تنها برای تعداد محدودی از سطرها کافیست اجرا

شود و نتایج آن برای بقیه سطرها به نمایش در می آید. برای

۱۰۰۰۰۰ باشد و ،TestTree مثال اگر تعداد سطرهای جدول

به غیر از ۶ سطر برای بقیه سطرها مقدار ۵ در ParentId فیلد

نظر گرفته شده است در روشهای قبلی تابع برای ۱۰۰۰۰۰ رکورد

اجرا میگردید اما با استفاده از این الگوریتم فقط کافیست برای ۶

ParentId سطر اجرا گردد و نتایجش برای سطرهایی که مقدار

آنها برابر ۵ است نمایش داده شود.

مزایا: کاهش زمان اجرا (کاهش تعداد دفعات اجرا پرس و جوی

درونی) ، کاهش زمان ارتباط (بین پرس و جوی بیرونی و درونی)

، کاهش زمان تنظیمات متغیرها.

معایب: در شرایطی که مقدار مساوی برای فیلد یا فیلدها به طور

قابل ملاحظه ای وجود نداشته باشد و نتوان مقدار مشخصی را

برای چندین سطر در نظر گرفت الگوریتم مذکور نمی تواند ب ه

طور موثر ارجاعات به تابع را کاهش دهد و به علت بررسی ساختار

توابع ، پارامترهای ارسالی به آنها ، همچنین پیمایش جداول

(فیلدهای مورد نظر) سربار کمی ایجاد می شود.

۴- آزمایشات و ارزیابی

در این مرحله ما روشمان را بر اساس الگوریتم توضیح داده شده

MicroSoft SQL در بخش قبل با روشهای پیشین در محیط

مقایسه و نتایجش را به ثبت می رسانیم. Server

mohsen_mahyar@yahoo.com

mo-mah.persianblog.ir

5

با (P تنظیمات: برای این منظور از یک کامپیوتر پنتیوم ( 4

پروسسور ۳ گیگاهرتز و حافظه ۷۶۸ مگابایت استفاده می کنیم.

مجموعه داده: به ساختار جدول زیر توجه فرمائید:

Number of

Tuples

Primary

Key

Name Fields

NodeId NodeId 100,000

ParentId

NodeName

TestTree

ParentId دارای شاخص کلاستر شده و فیلد NodeId فیلد

دارای شاخص کلاستر نشده است.

۱- تحلیل و آزمایشات -۴

پرس و جوی ۱: اولین آزمایش بر روی پرس و جوی زیر که فیلد

شامل ۹۹۹۹۴ مقدار ۵ است انجام گرفت و نتایج زیر ParentId

حاصل گردید:

-------------- Initial Query -------------

select dbo.fullname(parentid)

from testtree

where nodeid > 1

-------------------------------------------

بیشترین هزینه این پرس و جو صرف محاسبه تابع برای سطرهای

می شود ک ه خروجی یکسانی بر می گرداند (یعنی سطرهایی که

است) ParentId دارای مقدار ۵ برای فیلد

طبق الگوریتم ارائه شده این پرس و جو مراحل زیر را طی می

کند :

ابتدا محاسبه برای ۶ سطر اول

سپس نمایش سطر ششم برای بقیه سطرها (یعنی ۹۹۹۹۴ سطر )

طبق محدوده تعیین شده توسط الگوریتم .

به دلیل اینکه زمان محاسبه پرس و جو بسیار کاهش می یابد می

توان از زمان مصرفی برای داده های جدول و الگوریتم چشم

پوشی کرد.

--------------- Transformed Query --------------

--------Parametre (Constant Or Variable) -------

select parentid

from testtree

---- state 1

declare @a varchar(200)

select top 1 @a=dbo.fullname(parentid)

from testtree

where nodeid > 1

select top 2 @a from testtree

select top 3 @a=dbo.fullname(parentid)

from testtree

where nodeid > 1

select top 3 @a from testtree

select top 6 @a=dbo.fullname(parentid)

from testtree

where nodeid > 1

select top 99994 @a from testtree

------------------------------------------------------------

شکل ١: نتایج پرس و جوی ١

پرس و جو ی ۲: در این پرس و جو عدد ثابت به تابع ا رسال می

گردد:

-------------Initial Query-------------

select dbo.fullname(5)

from testtree

----------------------------------------

با توجه به الگوریتم فوق پرس و جو برای یک سطر محاسبه می

شود همانند زیر:

-------------- Transformed Query-------------

---------------- CONSTANT -----------------

---- state 1

declare @a varchar(200)

select top 1 @a=dbo.fullname(5)

from testtree

---- state 2

select @a from testtree

-----------------------------------------------

سپس برای مابقی سطرها (به اندازه سطرهای باقی مانده) به

نمایش در می آید.

10

2

0

2

4

6

8

10

12

SQL Server Optimizer Optimizing with REDUCER

Algorithm

Queries

Time(s)

SQL Server Optimizer

Optimizing with REDUCER

Algorithm

mohsen_mahyar@yahoo.com

mo-mah.persianblog.ir

6

شکل ٢: نتایج پرس و جوی ٢

پرس و جوی ۳: ساختار درختی هر نود را نمایش می دهد:

--------------Initial Query--------------

select dbo.fullname(nodeid)

from testtree

-----------------------------------------------

در حالیکه طبق الگوریتم فوق تابع فقط برای ۷ سطر اول نیاز به

بررسی است و برای مابقی سطرها نتیجه سطر ۷ به نمایش در می

آید.

------------------- Transformed Query --------------------

-- Input Variable Result Constant Or

Variable/Constant --

---- state 1

declare @a varchar(200)

select top 6 dbo.fullname(nodeid)

from testtree

select top 7 @a=dbo.fullname(nodeid)

from testtree

select top 99994 @a from testtree

----------------------------------------------------------------

البته تابع را به صورت زیر می توان تعریف کرد که در این حال

زمانی که پرس و جو بدون در نظر گرفتن الگوریتم صرف می کند

از ۱۶ ثانیه به ۵ ثانیه کاهش می یابد اما در هر صورت استفاده از

الگوریتم فوق زمان پرس و جو را به شکل قابل ملاحظه ای

کاهش می دهد.

CREATE FUNCTION dbo.fullname (@nodeid int)

RETURNS varchar(500) AS

BEGIN

if @nodeid <7 begin

declare @pid int

declare @Str varchar(500)

declare @CurrentName varchar(50)

SET @Str = ''

SELECT @Pid = ParentId , @CurrentName =

NodeName

FROM TestTree

WHERE NodeId = @nodeid

SET @Str = @CurrentName

WHILE (@PId <>0) BEGIN

SELECT @PId = ParentId,@CurrentName =

NodeName

FROM TestTree

WHERE NodeId = @PId

SET @Str = @CurrentName + ' -> ' +@Str

END

end

else begin

declare @str1 varchar(500)

SET @str مدیریت عامل -> معاونت مالی -> مدیریت '= 1

'اداری -> کارمند ساده

return @str1

end

RETURN @Str

END

شکل ۳: نتایج پرس و جوی ۳

به پرس و جوی فوق در صورتیکه مقدار تساوی برای فیلد

کم باشد توجه نمائید، در این پرس و جو تعداد ParentId

ParentId رکوردهای جدول به ۱۰ رکو رد کاهش می یابد و فیلد

۲ مقدار ۱ ، و ۱ مقدار ۰ ، ۳ مقدار ۲ ، فقط دارای ۴ مقدار ۵

است همانگونه که مشاهده می شود زمان مصرفی به علت سربار

ایجاد شده برای بررسی پرس و جو بیشتر از اجرای مستقل پرس

و جوست.

اما این نکته قابل توجه است که سربار حاصل بسیار جزئی است.

11

3

0

2

4

6

8

10

12

SQL Server Optimizer Optimizing with REDUCER

Algorithm

Queries

Time(s)

SQL Server Optimizer

Optimizing with REDUCER

Algorithm

5

16

2

0

2

4

6

8

10

12

14

16

18

SQL Server

Optimizer with

Improve of Function

SQL Server

Optimizer

Optimizing with

REDUCER

Algorithm

Queries

Time (s)

SQL Server Optimizer with

Improve of Function

SQL Server Optimizer

Optimizing with REDUCER

Algorithm

mohsen_mahyar@yahoo.com

mo-mah.persianblog.ir

7

شکل ۴: پرس و جوی ۳ با ساختار جدول متفاوت

۵- نتیجه گیری و پیشنهاد برای تحقیقات

آینده

ما در این تحقیق به بررسی تحقیقات پیشین در زمینه بهینه

سازی پرس و جوهای تودرتو پرداختیم و روشهای تعامل تودرتو با

استفاده از پارامتر سفارش ترتیبی، روش رابطه ای تودرتو (بر

و SQL اساس جبر رابطه ای تودرتو ) برای زیر پرس و جوهای

همچنین غیر تودرتو کردن پرس و جوهای تودرتویی که از

ترکیبات فصلی استفاده می کنند را مورد بحث قرار دادیم و ثابت

کردیم روشهای موجود برای بهینه سازی پرس و جوهایی که از

استفاده می کنند SELECT توابع تعریف شده کاربر در قسمت

به این دلیل که تابع برای هر سطر از پرس و جو بایستی به طور

مستقل اجرا گردد، مناسب نمی باشند، در نهایت الگوریتمی برای

حالات مختلفی از پرس و جوها که از توابع تعریف شده کاربر

استفاده می کنند ارائه کردیم . الگوریتم مذکور بسیاری از ارجاعات

به تابع را کاهش می دهد در نتیجه زمان اجرای پرس و جو به

طور قابل ملاحظه ای کاهش می یابد . به لحاظ اینکه از جمله

مشکلات مطرح شده، اجرای توابع به طور مستقل برای سطرهای

پرس و جو و همچنین هزینه توابع تعریف شده کاربر است، ما

پیشنهاد می کنیم برای حالات بیشتری این مسئله بررسی گردد

تا ارجاعات به تابع در شکلهای مختلف دیگری نیز کاهش یابد؛

خصوصا شرایطی که پارامتر تابع، متغیر و نتیجه ای که تابع بر

می گرداند نیز متغیر باشد . ما اعتقاد داریم بهینه سازی پرس و

جوهای تودرتو بالاخص پرس و جوهایی که از توابع تعریف شده

کاربر استفاده می کنند یکی از زمینه های مهم تحقیقاتی آینده

محسوب می شوند.

 

mohsen_mahyar@yahoo.com

mo-mah.persianblog.ir

8

   + MOHSEN GHASEMI - ۱:٠٠ ‎ق.ظ ; ۱۳۸٩/٦/۳۱

کوکی چیست؟انواع کوکی ها

mohsen_mahyar@yahoo.com
moh-mah.persianblog.ir

کوکی چیست؟
 
بر روی کامپیوتر شما ذخیره می کنند به این (Text) تقریبا تمام سایت هایی که بازدید می کنید اطلاعاتی را در قالب یکفایل کوچکمتنی
Cashe در اینترنت اکسپولرر و در نت اسکیپدر فولدر Temporary Internet Files فایل کوکی می گویند محل ذخیره شدن این فایل در فولدر
استدر اپرا و موزیلا و نسخه های قدیمی تر اینترنت اکسپولرر در فولدر جدایی به نام کوکی است .
این امکان را دارید که انتخاب کنید (Web Browsers) انواع مختلفی از کوکی ها وجود دارد و شما در نسخه های جدیدتر وب بروسر ها
کدام کوکی ها برروی کامپیوتر شما ذخیره شوند در صورتی که کوکی ها را کاملا غیر فعال کنید ممکن است بعضی سایت های اینترنتی را نتوانید ببیند و
یا از بعضی امکانات مثل به یاد داشتن شناسه و رمز عبور شما در آن سایتمحروم شوید و یا انتخاب هایی که داشتید مثل ساعتمحلی و یا دمای هوای
محلی و کلا از تنظیمات شخصی ای که در آن وب سایت انجام داده اید نتوانید استفاده کنید.
کوکی ها چگونه مورد استفاده قرار می گیرند؟
همانطوری که گفتیم کوکی یکفایل است که توسط یکوب سایت برای حفظ اطلاعات بر روی کامپیوتر شما قرار می گیرد یککوکی می
تواند شامل اطلاعاتی باشد که شما در آن سایت وارد کرده اید مانند ای میل - آدرس - شماره تلفن و سایر اطلاعات شخصی - همچنین کوکی ها می
توانند صفحات و یا کارهایی را که در آن وب سایت انجام داده اید مثل تعداد کلیکلینکهای بازدید شده و مدت بازدیدرا نیز ضبط کنند. این به سایت
کمکمی کند تا دفعه بعد که به آن سایت بازگشتید اطلاعات شما را به خاطر داشته باشد و از وارد کردن تکراری اطلاعات خودداری کنید نمونه بارز این
و یا حفظ تنظیماتی که درآن سایت انجام داده این به عنوان مثال می Welcome Back مطلب لاگاین ماندن شما در آن سایت است و یا پیغام های
اشاره کرد. نکته ای را که باید به خاطر داشته باشید این است که هر وب سایت فقط می تواند از اطلاعاتی که My MSN توان به خصوصی کردن صفحه
شما وارد کرده اید استفاده کند نه بیشتر مثلا اگر ای میل خود را در آن سایت وارد نکرده اید آن وب سایت نمی تواند ای میل شما را به دست آورد و یا به
سایر اطلاعات کامپیوتر شما دست یابد .
مورد دیگر اینکه وب سایت ها فقط می توانند کوکی هایی را که خود ایجاد کرده اند بخوانند و نمی توانند از سایر کوکی های موجود استفاده
کنند. وقتی که از یکوب سایت برای بار دوم بازدید می کنید آن وب سایت به دنبال کوکی مربوط به خود می گرد و در صورت وجود از آن استفاده می
کند.( البته باز هم با توجه به تنظیماتی که انجام داده اید)
moh-mah.persianblog.ir
mohsen_mahyar@yahoo.com
انواع کوکی ها
:
این نوع کوکی ها به عنوان یکفایل بر روی کامپیوتر شما ذخیره می شوند و بعد از بستن (presistent Cookies): کوکی های پایا - دائمی
مرورگر اینترنتی شما پاک نخواهند شد و همچنان باقی می مانند. این کوکی ها قابلیت به روز شدن توسط سایت ایجاد کننده خود را دارند همچنینسایت
اجازه دسترسی مستقیم به این کوکی ها رو نیز دارد حدود 80 درصد کوکی های مورد استفاده از این نوع هستند .
(Temporary Cookies): کوکی های موقت
کوکی هایی هستند که بعد از بستن مرورگر اینترنتی شما و یا خروج از سایت استفاده کننده از کوکی پاکمی شوند.
می شوند و از کار می افتند ولیپاکنمی Expire نوع دیگر کوکی های موقت کوکی های زمان دار هستند که زمانی برای کار دارند و بعد از آن اصطلاحا
شوند و در صورت بازدید مجدد از سایتممکن است به روز رسانی شوند و مجددا مورد استفاده قرار بگیرند .
(Unsatisfactory cookies) ؟ کوکی های ناخوشایند
این کوکی ها اجازه دسترسی به اطلاعات خصوصی شما را برای استفاده دویاره بدون پرسیدن از شما دارند از این کوکی ها بیشتر در خرید
مورد استفاده قرار می گیرند. (SSL*) های اینترنتی و سایت امن
(Third Party) و کوکی های متعلق به سایتهای دیگر (First Party) مقایسه کوکی های متعلق به سایتاصلی
اشنا شویم این مفاهیم در حقیقتمفاهیم بیمه ای هستند : First& third party دوستان قبل از هر چیز اجازه بدین با دو مفهوم
First Party
(Policy Holder) عضو اصلی یکخانواده و یا شرکت صاحب حقوق و مزایای اصلی کسی که بیمه نامه اصلی را داراست
Second party
شرکت بیمه کننده
Third Party
کوکی هایی هستند که فقط First Party : ؟ هر شخصسومی غیر از این دو کلا بقیه افراد و اما این مفاهیم در کوکی ها چه معنایی می دهند
اطلاعات آنها به سایت که توسط آنها ایجاد شده اند فرستاده می شود و کار آنها همانطور که اشاره شد یادآوری اطلاعات ماست.
کوکی هایی هستند که اطلاعات را به چندین سایتمختلف غیر از آنچه بازدید می کنید می فرستند استفاده این کوکی ها Third Party
می باشد (Third Party) معمولا تجاری است بدینگونه که شما از سایتی بازدید می کنید و آن سایتدارای بنرهای تجاری و تبلیغات از سایتدیگری
وارد عمل شده و اطلاعات شما را ثبتمی کند به عنوان مثال صاحب تبلیغ با استفاده از این امکان میتواند ببیند Third Party در اینجاست که کوکی
که شما چه نوع تبلیغ هایی را بازدید می کنید و در کدام سایت ها. این نوع کوکی هم می توانند از نوع دائمی و هم موقت باشند.
اصولا این نوع کوکی ها استاندارد نیستند و توسط مرورگرهای جدید بلوکمی شوند .همچنین این کوکی ها ممکن است به هکر ها کمککنند
تا اطلاعات شخصی شما را بدست بیاورند.( برای جلوگیری از آخرین پچ های مرورگر خود استفاده کنید*) پیشنهاد می شود تا این کوکی ها را که هیچ
استفاده مفیدی برای کاربر ندارند بلوک کنید

moh-mah.persianblog.ir
mohsen_mahyar@yahoo.com
.
__

   + MOHSEN GHASEMI - ۱٠:٠٤ ‎ق.ظ ; ۱۳۸٩/٦/٢٦

ساختار فایل هایPdf

Mo-mah.persianblog.ir

Mohsen_mahyar@yahoo.com

 

Pdf ساختار فایل های

 

صفحه : 1

Pdf ساختار فایل های

صفحه : 2

خدایا:

گَرَم تو روی آری چه باک که دیگران روی بگردانند

اگرَم تو یاور باشی چه ترس که آفریدگانت یاوریم نکنند

وگر تو غمخوار گشتی چه غم که خلقت غم نخورند

خداوندگارا

مهربانا

معشوقا

گرَم تو روی گردانی چه سود که دیگران روی آرند

اگرم تو یاوری نکنی چه حسن که آفریدگانت یاوری کنند

وگر تو غم نخوری چه شادیست که خلقت غمخوار گردند

خداوندا : همنشینی ، یاوری ، غمخواری

من خوب میدانم که تنها نیستم !!

مهربانا

اگر آنی ... همنشینیم، یاوریم ،غمخواریم نکنی

عمری تنهای تنهایم

معشوقا

من ،تنها با تو تنها نیستم

ای تنها ترین ، تنهایم مگذار...

......................................................................................................................................................................

تقدیم بر آستان مهربان مهر هشتم

Mo-mah.persianblog.ir

Mohsen_mahyar@yahoo.com

Pdf ساختار فایل های

صفحه : 3

فهرست :

فصل اول : مقدمه 4

5 Pdf 1.1 معرفی اسناد

با اسناد دیگر 5 Pdf 1.2 تفاوت اسناد

6 Pdf فصل دوم : نیم نگاهی بر

فصل سوم : اشیاء 7

3.1 بولین ها 7

3.2 اعداد 7

3.3 رشته ها و نوشته ها 7

3.3.1 نوشته ها 8

3.4 اسم ها 8

3.5 آرایه ها 9

3.6 واژه نامه 9

3.7 جریان ها و اعداد تهی 10

فصل چهارم : ساختار فایل 11

11 Pdf 4.1 فایل های

4.2 هدر 12

4.3 بدنه 12

4.4 جدول ارجاع متقابل 13

4.5 تریلر 16

4.6 بروزآوری افزایشی 18

19 Pdf فصل پنجم : ساختار اسناد

5.1 مقدمه 20

5.2 کاتالوگ 20

5.3 درخت صفحات 21

5.4 درخت نقشه 23

5.4 عملیات ها 24

5.5 واژه نامه اطلاعات 25

مراجع :b Pdf نمونه ای از فایل : a : ضمائم

Pdf ساختار فایل های

صفحه : 4

1. مقدمه

قالب اصلی PDF ( این کتابچه بشرح در مورد اسناد با فرمت قابل حمل (سبک

ادوب اکروبات و خانواده تولیدات می پردازد.

( PDF: Portable Document Format )

هدف از این تولیدات این است که کاربران را برای معاوضه (تغییر) و نمایش اسناد

الکترونیکی به آسانی و بطور قابل اعتماد قادر سازد ، جدا از محیطی که آن اسناد در

آن ساخته شده اند.

پیشرفت های اخیر دنیای تجارت باعث شده است تا نیاز به تبادل اطلاعات روز به

روز بیشتر شود . با استفاده از پست الکترونیکی ، کاربران کامپیوتر مجبور نیستند

اسنادو مدارک ، PDF مدت زیادی منتظر تبادل اطلاعات خود بمانند و با استفاده از

درهمه کامپوترهایکسان نشان داده میشوندودرهمه چاپگرهایکسان چاپ میشوند.

تا متن و گرافیک را با Postscript اثر گذاشته بر مدل های تصویری از زبان Pdf )

وضعیت وسایل مستقل و وضوح مستقل وصف کند.)

یکی از بهترین روش های توسعه کارایی نمایش مجازی است. PDF بی شک

همچنین شامل اشیائی از قبیل حاشیه نویسی و پیوند های ما فوق متن (پیوندی Pdf

که به سادگی از قسمتی از متن به قسمت دیگر میرود ) و ... میباشد؛ و اینها جزئی از

خود صفحات نیست بلکه برای نمایش محاوره ای ( مجازی ) مفید است .

و سازگاری آن با تمام سیستم های Pdf به علت سرعت و کارایی بالای فرمت فایل

کامپیوتری ، این فرمت مورد پسند اکثر کاربران وب و شبکه های داخلی قرار گرفته

حجم کمی دارند و به همین دلیل در سایت های وب و پیغام های Pdf است .فایل های

و با پست Pdf الکترونیکی به کار می روند .قرارداد ها و اسناد حقوقی در فرمت

Pdf ساختار فایل های

صفحه : 5

، Acrobat الکترونیکی ارسال میشوند زیرا با استفاده از ابزار امضاء دیجیتالی در

میتوان اینگونه اسنادرا امضاء کرد.

PDF 1.1 معرفی اسناد

منتشر شدو ازآن زمان دنیای Adobe توسط شرکت Acrobat در سال 1993 اولین نسخه

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

همین طورکه تقاضای به اشتراک گذاشتن اسناد بیشتر می شد مسائل ومشکلات هم افزایش می

وبعضی باسیستم های مکینتاش کار میکردند. IBM یافت. بعضی ازکاربران باسیستم های سازگار

همچنین هرسندفقط دربرنامه ایی باز میشد که سند را بوجود آورده بود. حتی زمانی که کامپیوتر

ونرم افزارهم یکی بود،فونت هامتفاوت بودند. اسنادی که از طریق پست الکرونیکی ارسال میشدند

ممکن بود در کامپیوتر مقصد باز نشوندیا با ظاهری متفاوت باز شوند.

مشکلات Pdf . دنیای تجارت به شکل واحدی از کاغذ دیجیتالی جهت تبادل اطلاعات نیاز داشت

هر کسی Adobe Acrobat رایگان یا Reader توزیع اسناد کاغذی را بر طرف کرد. با استفاده از

را دقیقاً یکسان مشاهده و چاپ کند . کاربرانی که با سیستم عامل لینوکس یا Pdf میتواند اسناد

با Pdf را دقیقا یکسان مشاهده میکنند. و حالاکمی شمارا باتفاوت Pdf ویندوز کار میکنند فایل های

اسناد دیگر آشنا میکنم:

با اسناد دیگر PDF 1.2 تفاوت اسناد

و Excel, Word با فایل های Pdf را میتوان از طریق اینترنت توزیع کرد . فایل های Pdf اسناد

به منظور ویرایش شدن ایجاد نمی شوند و نکته منفی Pdf متفاوتند . فایل های Page marker

از فایل اصلی کوچکتر است. ظاهر سند Pdf قابییت های ویرایشی اندک است . معمولاً Pdf فایل

به خوبی حفظ میشود . خطوط و پارگراف ها و فونت ها تغییر نمی کنند. Pdf اصلی در

با استفاده از تنظیمات امنیتی میتوانید دسترسی بیا چاپ یا ویرایش فایل را محدود کنید. برای

استفاده کنید. Comments اینکه تغییرات انجام شده در هر فایل را به بقیه یادآوری کنید از ابزار

Pdf قابلیت هایی جهت بوجود آوردن ملاحظات تبادل آنها بین کپی یک سند Comments ابزار

جهت ویرایش و غلط گیری بینچند نفر توزیع شده باشد.در این صورت هر شخصی میتواند

ملاحظاتش را در فایل مربوط به خودش وارد و همچنین ملاحظات دیگران را نیز به آن بیفزاید .

Pdf ساختار فایل های

صفحه : 6

PDF 2. نیم نگاهی بر

چیست. Pdf این مهم است که بدانیم Pdf چیست ؟؟ قبل از نگاه انداختن به جزئیات ساختار Pdf

یک فرمت فایل استفاده شده برای بیان کردن اسناددریک روش مستقل ازبرنامه های کاربردی PDF

و دیگر Pdf شامل یک سند ، Pdf ، سخت افزار و سیستم عامل است . برای ساختن آن ، یک فایل

اطلاعات تعریف شده می شود.

می تواند شامل یک یا چندین صفحه باشد.هر یک ازصفحات در یک سند ، میتواند Pdf یک فایل

شامل ترکیبی از متن ، گرافیک و تصاویر در یک وسیله باشد و وضوح مستقل از نوع است.

همچنین ممکن است محتوی اطلاعاتی که فقط برای Pdf این بود شرح مختصر یک صفحه سند

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

در بر دارد شرحی که مشخصه های استفاده شده در فایل Pdf در فزاش دادن یک سند ، یک فایل

و اطلاعات درباره ساختارها مهم در فایل را نشان میدهد ( موقعیت یابی میکند) Pdf

درست میشود و استفاده میشود. Pdf مهم است بدانیم که چگونه یک سند Pdf برای فهمیدن یک

نیز بیشتر شایع Pdf کاربرد های آن و خواندن فایل های ، Pdf بطوریکه با فراگیر شدن اسناد

شده است.

یکی از اهداف این کتابچه این است که فایل با فرمتی قابل دسترس بطوریکه برنامه های اجرایی

بتوانند از آن استفاده کنند بسازید.

در فصول بعدی بیشتر با ساختار و اشیائی که در این ساختار وجود دارند آشنا می شوید.

همچنین در ادامه فصول نیز به طریقه ساخت امضاء الکترونیک برای اسناد و حفاظت از آنها آشنا

میشوید.

Pdf ساختار فایل های

صفحه : 7

3. اشیاء

از هفت نوع اصلی پشتیبانی میکند : PDF

رشته ها و نوشته ها ، اسم ها ،آرایه ها ،واژه نامه ،(Boolean ) بولین ها ، (Numbers) شماره ها

هیچ ) برای کاربرد های متفاوت تدارک دیده شده است. )Null و جریان ، بعلاوه شیء

اشیاء میتوانند برچسب زده شده باشند تا اینکه بوسیله اشیاء دیگر بتوانند به آنها اشاره نمود.

یک شی برچسب زده شده یک مفعول غیر مستقیم (شی غیر مستقیم) نامیده میشود .

را مورد وصف قرار میدهیم . null در بخش های زیر انواع اشیاء و شی

نسبت به حروف کوچک و بزرگ حساس میباشد و حروف کوچک و بزرگ متمایز از یکدیگرند!!/ Pdf : توجه

( Booleans ) 3.1 بولین ها

است . و نشان دهنده مقدار صحیح (درست) یا غلط false و True اشیاء بولین دارای کلمه کلیدی

(نادرست) هستند.

( Numbers ) 3.2 اعداد

از دو نوع عدد پشتیبانی میکند : اعداد صحیح / اعشاری . Pdf

ها هم فقط در شکل اعشاریند. Real اعداد صحیح داری مقادید علامت دار یا بدون علامت میباشند و

1.0 پشتیبانی نشده است. e نکته : شکل توانی برای اعداد نظیر 3

3.3 رشته ها و نوشته ها

یک رشته مجموعه ای بدون علامت ار بایت های 8 بیتی و نوشته ها از ترکیب قرار گیری

کاراکترها و بوسیله پرانتر از یکدیگر جدا شده اند.

اگر طول یک رشته بسیار زیاد باشد بطوریکه نتوان آنرا در یک خط قرار داد میتوان آنرا در

خطوط دیگر ( خطوط متوال ادامه رشته ) قرار داد . برای این کار فقط کافیست از علامت \

در انتهای یک خط شکافته شده استفاده نمود که نشان میدهد رشته روی خط (Backslash)

زیری ادامه می یابد . در این قسمت مثال هایی از رشته ها آورده شده است :

( This is string number 1? )

( strangeonium spectroscopy )

(This string is split \

Pdf ساختار فایل های

صفحه : 8

across \

three lines)

در طول یک رشته ممکن است کاراکتر ’\‘همراه با کاراکتر های دیگر بکار برده شده باشد که هر

یک از ترکیبات ’\‘با آن کاراکترها مشخص کننده عملیاتی هستند. در پایین به چند نمونه از این

ترکیبات اشاره شده است :

\n تعویض خط

\v تعویض سطر

\t tab حرکت بصورت افقی

\b Backspace

\\ Backslash

پرانتز) )\

پرانتز( (\

\ddd (decimal) ddd کاراکترهای

(Text) 3.3.1 نوشته ها

رشته های مطمئنی ( مسلمی ) را در بر دارند که اطلاعات آن توسط انسان خواناست.

این رشته هاشامل شرح متون ، شرح نشانه گذاری ها ، نام بندها ، اطلاعات اسناد و غیره میباشد.

(Names) 3.4 اسم ها

یک اسم شبیه به رشته است و با ترتیبی از قرارگیری کاراکتر ها نوشته شده است .

ادامه یابد. ASCII اسم باید با کاراکتر برش ’/‘ شروع شود و با ترتیبی از کاراکتر های

بعضی از کاراکتر های خاص مجا به استفاده در اسم ها نمی باشند که برخی از آنها کاراکترهای

{, } , [ , ] , < , > , ( , ) ,# , / ,% و چند کد اسکی :

در این قسمت نمنه ای از چند اسم مجاز آورده شده است :

/Name1

/ASomewhatLongerName2

/A;Name_With-various***Characters?.

/1.2

/.notdef

00 >میتواند در اسامی استفاده شود. برای ایکار باید از > Null کاراکتری به عنوان کاراکتر هیچ

علامت # در بین نام استفاده کرد :

/Adobe#20Green

Pdf ساختار فایل های

صفحه : 9

/PANTONE#205757#20CV

/paired#28#29parentheses

/TheKeyOfF#23Minor

/A#42

در ضمن میتوان بجای استفاده از خود کاراکتر از کد اسکی آن کاراکتر نیز استفاده نمود به

است. /AB راه دیگری برای نوشتن /A# عنوان مثال 42

** این خاصیت در رشته ها هم وجود دارد.

نکته: حداکثر شماره مربوط به کاراکترها 127 میباشد .

اشاره میکند ، نه شش کاراکتر. (B فضا A / ) به چهار کاراکتر /A#20B برای مثال اسم

3.5 آرایه ها

است و ممکن است مخلوطی از انواع اشیاء را در بر داشته Pdf یک آرایه یک ترتیب از اشیاء

باشد.

ک آرایه با علامت کروشه چپ ] شروع گشته و در ادامه وسیله یک ترکیبی از اشیاء ادامه

یافته و با کروشه راست [ نیز پایان می پذیرد.

این یک مثال از آرایه است :

[0 (Higgs) false 3.14 3 549 /SomeName]

(Dictionary) 3.6 واژه نامه

یک واژه نامه جدولی رادر بر دارد که شامل جفت هایی از اشیاء است .

اولین عنصر هر جفت کلید نامیده میشود و عضو دومین ارزش نامیده شده است.

کلید باید یک اسم باشد و یک ارزش از هر نوع شی و نیز شامل یک واژه نامه میتواند باشد.

عموماٌ یک واژه نامه استفاده میشود ( کاربرد دارد) تا اینکه با دیگر خصیصه های یک شیء

پیچیده با مشخص کردن جفتِ ‘کلید وارزش ‘ از یک خصیصه جمع شود و متصل شود (واژه

نامه تو در تو )( این قسمت اشاره به استفاده واژه نامه در اشیائی نظیر صفحه و دیگر اشیاء

مرکب دیگر دارد )

یک واژه نامه با استفاده از کروشه زاویه دار (>>) شروع و بایک ترکیب ازجفت های کلیدوارزش

ادامه یافته و در انتها نیز با کروشه زاویه دار راست (<<) پایان می پذیرد.

برای مثال :

<<.…… ارزش کلید/ ارزش کلید / >>

Pdf ساختار فایل های

صفحه : 10

<< /Type /Example /Key2 12 /Key3 (a string) >>

نمونه ای از واژه نامه های تو در تو ( واژه نامه ای در داخل واژه نامه دیگر) :

<< 

/Type /AlsoAnExample

/Subtype /Bad

/Reason (unsure)

/Version 0.01

/MyInfo

<< 

/Item1 0.4

/Item2 true

/LastItem (not!)

/VeryLastItem (OK)

>> 

>> 

هستند. Pdf اشیاء واژه نامه ، قطعات ( ساختار) اصلی یک سند

مثل صفحات و فونت ها برای نمایش داده شدن از واژه نامه Pdf بخش های زیادی در مدرک

استفاده میکنند.

توسط مجمعی ازانواع کلید یک واژه نامه مشخص میکند یک نوع شی را (شی مرکب) که در واژه

نامه تعریف شده است .

را مشخص کند که در مواردی چون (subtype) ودر برخی حالات کلید میتواند به یک زیر انواع

تخصصی شدن یک نوع خاص استفاده میشود .

True type, Type3,MMType1,Type مثلاً دریک فونت ، ارزش کلیدوچندین زیر عنوان شامل 1

و ... است .

(Null) و اشیاء تهی (Streams) 3.7 جریان ها

از دیگر اشیاء از مجموعه اشیاء بکار رفته می توات جریان ها و اشیاء تهی و اشیاء غیر مستقیم

و ... نام برد

میباشند و هیچ مقداری را نشان Null اشیاء تهی همانطور که از نامشان پیداست داری کلمه کلیدی

نمی دهند .( از موارد کاربردی آنها در واژه نامه هاست که در قسمت ارزش واژه نامه قرار گرفته

و راه سریع تر و ساده تری برای واژه نامه است که در مجموع کلید را حذف میکند.(کلید حاوی

مقدار تهی بی فایده است ) ).

و اشیاء غیر مستقیم نیز برای تعریف انواع جدید بکار میرود که اصطلاحاً به آنها مفعول بی

واسطه میگویند.

Pdf ساختار فایل های

صفحه : 11

در فصول بعدی با استفاده از اشیاء توصیف شده در این بخش به معرفی ساختار فایل و اسناد

می پردازیم ... Pdf

4. ساختار فایل

می پردازم . Pdf در این فصل به شرح سازماندهی و ساختار یک فایل

نمایش میدهد. (document) آماده میکند ساختاری را که یک سند را Pdf یک فایل

این ساختار راهی را که به سرعت بازیابی کند هر بخش یک سند و یک سازو کار برای سازماندهی

آن را آماده می کند.

استفاده می شوند. Pdf که در شکل دادن Pdf شامل مراحل ( مراتب) اشیاء Pdf بدنه یک فایل

Pdf 4.1 فایل های

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

(Header سر صفحه ( هدر

( Body ) بدنه

( cross reference table) جدول ارجاع متقابل

(Trailer تریلر ( ناظر

شکل زیر این ساختار را نمایش میدهد :

<PDF file> ::= <header>

<body>

<cross-reference table>

<trailer>

ممکن است دارای خطوط طویلی باشد . binary با داده های Pdf یک فایل

بیشتر Pdf با برنامه های کاربدی ، طول خطوط در یک فال Pdf به هرحال ، برای سازگاری فایل

از 255 کاراکتر نخواهد بود.

اما یک استثنا در مورد محتویات رشته ای یک واژه نامه وجود دارد .

که تابحال به روز آوری نشده است : Pdf • شکل 5.1 : ساختار یک فایل

Pdf ساختار فایل های

صفحه : 12

header

Body

cross-reference table

trailer

(Header) ( 4.2 هدر (سر صفحه

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

میتوان این مقدار را یافت ). Pdf مثلا نگارش جاری 1.4 است .( با نگاهی به فایل کامل

از یک یا چند ویرایش زود تر از 1.4 هم که باشد توسط برنامه Pdf به هر حال اگر یک فایل

کاربردی قابل اجرا میباشد . مثلا اگر چندفایل مربوط به نگارش 1.3 و 1.2 و یا 1.1 باشند باز

هم توسط برنامه کاربردی قابل خواندن هستند.

واقع است نشان دهنده این نگارش است . Pdf و هدر که در اولین خط یک فال

<header> ::= <PDF version>

نمایان میشود. " %PDF است و توسط یک رشته " 1.3 Pdf هدر معرفی کننده یک سند

و این همانند اعداد جادویی در یونیکس است .

4.3 بدنه

(document) تشکیل شده است از دنباله ای از اشیاء که غیر مستقیم یک سند Pdf بدنه یک فایل

را نمایش میدهند.

ساختار بدنه سند شامل اطلاعاتی راجع به اشیاء بکار رفته در صفحات است.

و این یک مجموعه از اشیاء برای توصیف کردن درخت ساختار صفحه که در آن صفحات و

عنصر ها ( متن ، گرافیک و...) روی صفحات سازماندهی شده است.

می باشند ، که هر شی شامل سه مولفه است: Pdf برگ های درخت Pdf اشیاء

و محتویات (ظرفیت ) / (offset) Pdf یک شماره / موقعیت شی در فایل

Pdf ساختار فایل های

صفحه : 13

اشیاء در نوع های اصلی که در فصل قبلی ( اشیاء) شرح آنها بیان شده است .

عبارتند از : (document) مولفه های نشان دادن یک مدرک

فونت ها ، صفحات ،تصاویر نمونه و ....

می توانند در هر جا در بخش بدنه یک فایل ظاهر شود. (comments) توضیحات

آنها با یک علامت % شروع میشوند و ممکن است در هر نقطه ای روی خط قرار گیرند. تمام

نوشته های ما بین % تا پایان خط به عنوان تو ضیحات در نظر گرفته میشود.

در مورد رشته ها یا جریان هایی که در طول یک بخش قرار دارد comment و قسمت های

توضیحاتی بیان می کند.

(Cross-reference table) 4.4 جدول ارجاع متقابل

به (Adobe Acrobat مانند ) Pdf جدول ارجاع ( جدول مختصات ) اجازه میدهد یک تجزیه گر

سرعت به اشیا دست بیابد .

اطلاعات جدول ارجاع متقابل شامل دستیابی تصادفی (دستیابی مستقیم) به مفعول های غیر

مستقیم در فایل ، که این امکان را فراهم میکند برای سازماندهی یک سی خاص ، فایل بطور کامل

خواده نشود ( عملکردی شبیه به شاخص ها )

برای هر مفعول غیر مستقیم در فایل ، جدول شام یک خط توصیف راجع به محل ورود شی در

فایل است. یعنی مختصاتی از اشیاء در جدول گرداوری شده است که برای دست یابی به شیء

خاصی در فایل ، با یافتن مختصات ، فقط به همان قسمت از فایل دستیابی داشته و پس از

خواندن آن قسمت به شی دست می یابد.

به همین منظور است که به جدول ارجاع متقابل ، جدول مختصات فایل نیز می گویند.

شامل یک جدول ارجاع متقابل است که خود شامل یک یا چندین بخش می باشد. Pdf هر فایل

اگر بروز آوری به فایل اضافه نشده باشد، جدول ارجاع شامل فقط یک بخش می باشد و بخش

میباشد. (Update) اضافه شده به جدول ارجاع متقابل مربوط به زمان به روز آوری

به یک شکل ثابت است و برای دستیابی Pdf بخش ثابت (بخش اولیه ) جدول مختصات در فایل

در جدول ارجاع اجازه میدهد. (entry) تصادفی ( مستقیم) به ورودی ها

شروع میشود . xref این بخش با خطی شامل کلمه کلیدی

Pdf ساختار فایل های

صفحه : 14

و در ذیل این خط یک یا چندین زیر جدول مختصات است .

<cross-reference section> ::=

xref

<cross-reference subsection>+

توجه : اگر بروزآوری در فایل انجام نشده باشد جدول ارجاع فقط یک بخش را در بردارد.

هر یک از ورودی های زیر بخش ها شامل حدود پیوسته از شماره های اشیاء می باشند.

ساختار زیر بخش های سیستم مختصات مفید برای بروزآوری افزایشی (که درقسمت های بعدی

توضیح می دهم) می باشد ؛ زیرا اجازه میدهد یک زیر بخش به سیستم مختصات اضافه شود تا

به جدول ارجاع نیز اضافه شوند. Pdf اشیاء ورودی یا حذف شده در فایل

هر زیر بخش سیستم مختصات شامل یک هدر که یا دو شماره شروع میشود :

در زیر بخش (entry) اول شماره شی در آن زیر بخش و شماره وارده

در پایین نمونه ای بیان شده است :

<cross-reference subsection> ::=

<object number of first entry in subsection>

<number of entries in subsection>

<cross-reference entry>+

می باشد. (eol) end of line شامل 20 بایت می باشد و نیز شامل علامت entry هر

این دو شکل متفاوت برای وارده های جدول ارجاع هستند.

یکی برای اشیائی که در حال استفاده میباشند و دیگری برای اشیائی که حذف شده اند و آزاد

میباشند:

<cross-reference entry> ::= <in-use entry> | <free entry>

بایت ( محاسبه بایت ) ( شماره بایت ها از offset برای یک شی در حال استفاده وارده شامل

می باشد. n شروع فایل به شروع شی ) و شماره ایجاد شی (شماره نسل ) و نیز کلمه کلیدی

<in-use entry> ::= <byte offset> <generation number> n <end-of-line>

شامل 10 رقم میباشد . در صورت لزوم میتوان باقیمانده آنرا با صفر های (offset) بایت افست

مقدم پرنمود.

شماره ایجاد شی توسط یک فاصله جدا شده است . شماره ایجاد شی یک پنج رقمیست و برای

آن نیز می توان با صفر های مقدم لایی گذاشت .

Pdf ساختار فایل های

صفحه : 15

eol است ، در پایان هم کلمه کلیدی n بعد از شماره ایجاد (شماره نسل ) یک فاصله و کلمه کلیدی

برای اشیاء در حال استفاده بکار میرود ) n است ( توجه کنید کلمه کلیدی

وارده شامل شماره شی آزاد بعدی و شماره نسل خودش و (delete/free ) برای یک شی آزاد

است. f کلمه کلیدی

<free entry> ::=

<object number of next free object>

<generation number> f <end-of-line>

وارده همان شکل و فرمتی را دارد که یک شی در حال استفاده دارد : یک ده رقمی برای شماره

.(end of line) eol و در پایان هم f شی ، یک فضا ، یک پنج رقمی شماره ایجاد و یک کلمه کلیدی

برای هر شی آزاد ، اشاره به entry اشیاء آزاد در فرم جدول ارجاع ، یک لیست پیودیست که با

شی آزاد بعدی میکند.

در جدول ( شیء شماره صفر ) آزاد است و یک شماره نسل 65535 (entry) همیشه اولین وارده

دارد و آن سر لیست پیوندی اشیاء آزاد میباشد.

وارده آزاد گزاشته در جدول ارجاع ( سر لیست پیوندی ) شیء شماره صفر ، برای دستیابی به

شی آزاد بعدی بکا برده میشود .

جدول ارجاع آزاد علامتگذاری شده entry ؛ موقعیکه یک مفعول غیر مستقیم حذف شده است

است . شماره نسل در وارده افزایش داده شده است تا شماره ایجادش توسط یک شی بکاربرده

شده در زمانی دیگر استفاده شود.

دوباره استفاده شده است ، شماره نسل (شماره ایجاد) افزایش داده شده entry هر زمانی که

است . بیشترین حد شمکاره ایجاد 65535 است . و این شماره به اولین وارده جدول ارجاع

رسیده است.

:( • نمونه ای از جدول ارجاع ( 1

نمایش یک سیستم مختصات شامل بخش اولیه با یک زیر بخش دارای 6 وارده که 4 تای آن در

. ( حال استفاده ( 1و 2و 4و 5) و دو تای آن آزادند ( 3و 0

xref

0 6

0000000003 65535 f

0000000017 00000 n

0000000081 00000 n

0000000000 00007 f

Pdf ساختار فایل های

صفحه : 16

0000000331 00000 n

0000000409 00000 n

شیء شماره 3 حذف شده است وبه شی بعدی ایجاد شده با شماره شیئی 3 ، شماره ایجاد 7

داده خواهد شد.

:( • نمونه ای دیگر از جدول ارجاع ( 2

نمایش یک سیستم مختصات با 4 زیر بخش شامل 5 وارده ( درمجموع )

زیر بخش اول که شامل وارده ای برای شی شماره 0 که آزاد است

زیر بخش دوم که دارای یک وارده برای شی شماره 3 که در حل استفاده است .

زیر بخش سومین شامل دو وارده با شماره اشیائ 23 و 24 که هر دو در حال استفاده اند.

شی شماره 23 ، دوباره استفاده شده است بطوریکه دیده میشود که آن شماره ایجاد 2 دارد.

و زیر بخش چهارمین یک وارده داشته ، شی شماره 3 که در حال استفاده است .

xref

0 1

0000000000 65535 f

3 1

0000025325 00000 n

23 2

0000025518 00002 n

0000025635 00000 n

30 1

0000025777 00000 n

(trailer 4.5 تریلر ( ناظر

به سرعت به جدول Pdf تریلر این امکان را فراهم می آورد که با درخواست خواندن یک فایل

ارجاع و اشیاء دسیابی پیدا شود .

را از پایانش بخواند . Pdf است ) باید فایل Pdf برای این کار برنامه ( منظور برنامه خواننده

است و دو خط قبل از آن نیز شامل %eof دارای علامت [end of file] Pdf آخرین خط فایل

سیستم xref فاصله ) بایت از شروع فایل به شروع کلمه )offset که startxref کلمه کلیدی

مختصات را در بر دارد .

و واژه نامه تریلر در دو خط قبل تر قرار دارد.( واژه نامه تریلر تشکیل شده از کلمه کلیدی

و در ادامه نیز مجموعه ای از ازرش و کلید که در کروشه های زویه دار زوج شده اند ) trailer

Pdf ساختار فایل های

صفحه : 17

به نمای کلی یک تریلر توجه کنید :

<trailer> ::= trailer

<< 

<trailer key–value pair>+

>> 

startxref

<cross-reference table start address>

%%EOF

آدرس شروع سیستم مختصات در فایل ذخیره شده است یعنی میزان startxref نکته : در

از ابتدای فایل xref فاصله

و نمونه ای از یک تریلر برای یک فایل بروز آوری شده در پایین نشان داده شده است:

trailer

<< 

/Size 22

/Root 2 0 R

/Info 1 0 R

>> 

startxref

18799

%%EOF

و حالا به برخی از خصوصیات تریلر می پردازم و در باره آنها توضیحاتی میدهم:

Key Type Semantics

Size integer شماره مجموع وارده های جدول ارجاع فایل، شامل جدول اصلی و تمام به بروز آوری ها

(لازم )

Prev integer ( ( لازم فقط در حالتی که جدول ارجاع بیشتر از یک بخش داشته باشد

و شماره فاصله محل قبلی جدول ارجاع از ابتدای فایل

اگر جدول ارجاع بروز نشده باشد این کلید را در بر نخواهد داشت

Root dictionary ( شی کاتالوگ برای یک سند ( در فصل بعد توضیح داده شده

Info dictionary واژه نامه اطلاعات برای یک سند

ID array یک آرایه از دو رشته که هر دوی انها یک شناسه اند

شناسه اول زمانی را که فایل درست شده و شناسه دوم زمانی که

Pdf ساختار فایل های

صفحه : 18

فایل تغییر کرده یا بروز رسانی شده است نشان میدهد ( لازم )

Encrypt dictionary زمانی که سند رمزی شده باشد لازم است و اطلاعاتی در مورد رمز شدن سند داراست

( Incremental update) 4.6 بروز آوری افزایشی

بدون بازنویسی کردن فایل کامل ، به روزآوری می شود و تغییرات به Pdf محتویات یک فایل

پایان فایل اضافه می شود بطوریکه محتویت اصلی فایل دستنخورده باقی می ماند.

جدیدی به روزآوری شده است یا اشیاء عوض شده ، اضافه شده اند ، یک Pdf موقعیکه یک فایل

بخش سیستم مختصات اضافه شده اسن و یک تریلر جدید وارد شده است .

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

<Updated PDF file> ::=

<PDF file>

{<update>}*

<update> ::= <body>

<cross-reference section>

<trailer>

به روز آوری میشود یک بخش اضافه میشود. Pdf سیستم مختصات موقعیکه یک ایل

که شامل وارده های اشیائی بوده اند که تغییر یافته یا حذف شده باشند ، بعلاوه وارده ای

. برای شی 0

اشیاء حذف شده بی تغییر در فایل باقی میمانند اما علامت گذاشته شده اند بطوریکه در

های جدول ارجاع حذف شده اند . (entry) وارده

شکل زیر نمایی از تاثیر یک به روزآوری افزایشی را نمایش می دهد :

Pdf ساختار فایل های

صفحه : 19

Header

Original

Body

Original

cross-reference

section

Original trailer

Body update 1

Cross-reference

section 1

Updated trailer 1

....

Body update n

Cross-reference

section n

Updated trailer n

Pdf 5. ساختار اسناد

فراهم کرده است یک نمایش الکترونیکی از یک مدرک را که مجموعیست از صفحات که شامل Pdf

متن ، گرافیک و تصاویر به همراه دیگر اطلاعات مختصر مانند تصاویر ریز از صفحات ، شرح

متون ، لینک های ما فوق متن و ... .

را توضیح دادم اما درباره خود Pdf در فصول قبل اساس مقدماتی برای درک نمایش یک مدرک

نمایش توضیحی بیان نشده است .

را نشان میدهند. Pdf از ترتیبی از اشیاء تشکیل شده است که مجموعاً یک مدرک Pdf بدنه یک فایل

تمرکز میکند و شامل توضیحات از Pdf این فصل منحصراً روی محتویات بخش بدنه یک فایل

در بردارد ، میباشد. Pdf اشیائی که یک مدرک

در این فصل فقط به اشیائی می پردازیم که بیشترین کاربرد را دارند و استفاده از آنها عمومیست.

1. مقدمه

Pdf ساختار فایل های

صفحه : 20

توصیف میشود بعنوان ترکیبی از اشیاء که در بخش بدنه آنها را در بر دارد . Pdf یک مدرک

را نشان میدهد. Pdf شکل 6.1 ساختار یک مدرک

اشیاء زیادی در این سلسله مراتب ، واژه نامه اند ( اشیاء مرکب)

والدین ، فرزند و نیز هم نسلان (برادران ) که توشط زوج ، کلید و ارزش ، که بطور غیر

مستقیم به والدین /فرزند و هم نسلان ارتباط دارند ، نشان داده شده اند.

برای مثال شی کاتالوگ که ریشه درخت است شامل کلید صفحات میباشد و یک اشاره غیر

مستقیم به شیئی که فرزند صفحه است دارد .

هر صفحه از مدرک با توجه به محتویاتی که شامل آن میباشد ، روی صفحه ظاهر می شود.

شکل 6.1

5.2 کاتالوگ

کاتالوگ یک واژه نامه است که گره ی ریشه ای مدرک است .

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

( اشیاءسند ، و یک اشاره به رشته های بند مدرک ، و فهرست مقصد های نام دارد ( شکل 6.1

در پایین نمونه ای از شی کاتالوگ نشان داده شده است :

1 0 obj

<< 

/Type /Catalog

/Pages 2 0 R

/Outlines 3 0 R

/PageMode /UseOutlines

>> 

endobj

.......

.......

Catalog

Pages

tree

Article threads

Named

destinations

AcroForm

Outline

tree

Page

Page

Outline entry

Outline entry

Pdf ساختار فایل های

صفحه : 21

،Dests ، Type : در ضمن کاتالوگ دارای صفات مختلفی است که چند تا از آنها عبارتند از

و ... که به توضیح در باره تک تک آنها نمی پردازم . Threads ، Pages ، Outlines

5.3 درخت صفحات

صفحات یک مدرک در دسترس هستند توسط یک گره از درخت که به درخت صفحات مشهورند.

این درخت ترتیب صفحات سند را مشخص می سازد.

درخت ها adobe PDF و adobe Distiller ، برای بهینه سازی نمایش در برنامه های کاربردی

را متعادل و موزون ساخته اند.

ساختار درخت اجازه میدهد تا برنامه کاربردی برای یک مدرک شامل هزاران صفحه ، تنها حافظه

محدودی را مصرف کند ، همچنین سرعت دستیابی به صفحات هم افزایش می یابد.

بایستی این نوع درخت را بپذیرند .بشرط اینکه گره های Pdf بنابراین برنامه های نمایش دهنده

درخت شامل کلید هایی باشد که در پایین ذکر شده اند .

ساده ترین ساختار تشکیل شده از یک گره صفحه و آن مستقیماً به تمام اشیاء موجود در صفحه

اشاره میکند.

** توجه : ساختار درخت صفحات برای یک مدرک با محتوای مدرک بی ارتباط است . برای یک

به عنوان مثال برای یک کتاب ، تضمینی نیست که یک فصل توسط یک گره تنها در Pdf فایل

درخت صفحات نشان داده شده باشد.

Key Type Semantics

Type name ( نام نوع بکاررفته ( بشتر اوقات صفحه نوع بکار رفته است

(لازم )

Kids array ( لازم) لیستی از اشیاء غیر مستقیم به فرزندان بی واسطه گره صفحه

Count integer ( تصریح کننده شماره ی گره های ریشه ( لازم

Parent dictionary

Pdf ساختار فایل های

صفحه : 22

را مصرف میکنند ( منظور نمایش دادن است و کاربردهای دیگر ) یا Pdf برنامه هایی که فایل

تولید میکند نیاز به این ندارند تا ساختار موجود درخت صفحات را حفظ کنند .

ریشه و تمام گره های درخت صفحات ، واژه نامه هستند . که مقداری از محتویات آن در جدول

زیر آورده شد است :

2 0 obj

<< 

/Type /Pages

/Kids [4 0 R 10 0 R 24 0 R]

/Count 3

>> 

endobj

(Inheritance of Attributes) 5.3.1 به ارث بردن خواص

یک شی صفحه ممکن است در بردارنده خواص اضافی باشد و انها ارزش هایی را برای فرزندان

شیء صفحه فراهم می آورد .

چنانچه که ما می گوئیم آن مقادیر را به ارث برده اند.

را برای تمام صفحات به وسیله شی صفحه mediabox برای مثال یک سند ممکن است یک

ریشه ، تعریف کند ( شی صفحه در بخش بعدی توضیح داده شده )

را به طور اختصاص هم تعریف کند ، به عنوان mediabox یک صفحه منفرد در مدرک می توان

در شی صفحه این خاصیت رابرای آن صفحه بی اعتبار mediabox مثال مشخص کردن یک

میکند ( صفحات میتوانند با خواص اختصاصی مربوط به خود ، از خواص به ارث رسیده طبعیت

نکند )

Pdf ساختار فایل های

صفحه : 23

آورده شده Rotate وراثت خواص : خواص ذکر شده در باره کلید

(outline tree) 5.4 درخت نقشه

به یک کاربر اجازه میدهد تا به نمایشی از سند به وسیله (outline یک نقشه ( خطوط اصلی

نام ها دسترسی داشته باشد .

فعال (bookmark) بطوریکه بایک لینک شرح ، قسمتی از خطوطی که کاربر درخواست کرده است

شود ( نمایش داده شود ). درخت نقشه شامل وارده هایی است که به آن خطوط اصلی میگویم.

درخت نقشه از ترکیبی از عنصرها تشکیل شده است . یک وارده ممکن است (entrys) واردهای

خود دارای یک یا چندید مرحله ( بخش) باشد . که به آن زیروارده میگویندو آن زیر وارده ممکن

است یزر وارده ، وارده های دیگر باشد و یا ممکن است زیر وارده ای از مجموعه خودش باشد.

یک وارده خطوط اصلی ممکن است باز یا بسته باشد .اگر آن وارده باز باشد ، فرزندانش هم قایل

رویت هستند و موقعیکه خطوط اصلی نشان داده شده است و اگر آن وارده بسته باشد این طور

نیست .

دارای درخت نقشه باشد ، در گاتالوگ به کلید ( منظور کلید ریشه ) (document) اگر یک مدرک

خطوط اصلی دسترسی داده شده است ( کلید در بخشی از شی کاتالوگ ذخیره میگردد )

Pages

Pages

Pages

Pages

/Rotate 180

Pages

/Rotate 90

Pages Pages Pages

Pages

/Rotate 0

Pages

Pages

/Rotate 270

Pages

/Rotate 90

Pdf ساختار فایل های

صفحه : 24

مقدار این کلید ، شی خطوط اصلی است که ریشه درخت نقشه ( درخت خطوط اصلی ) است.

نام برد . Last و First و Count : محتویات واژه نامه خطوط اصلی را میتوان به کلید های

شیء خطوط اصلی با 6 وارده

21 0 obj

<< 

/Count 6

/First 22 0 R

/Last 29 0 R

>> 

endobj

وارده های خطوط اصلی سطح بالا ، در یک لیست پیوندی واقعند که با اشاره گر اول به سر

لسیت و با اشاره گر آخر به پایان لیست اشاره میکنند.

5.5 عملیات ها :

1.1 ) مشخص میکند که یک همل چه موقع انجام شده است ، مثلاً یک نمایش Pdf (شروع در

توسط لینک چه موقعی انجام شده و یا زمانی که وارده های خطوط اصلی فعال شده اند و یا حتی

موقعیکه یک مدرک باز شده است.

چند زیر عنوان را برای عمل ها تعریف میکند: Pdf

و ... Hide ، SetState ، Movie ، Sound ، Url ، Launch ، GoToR ، GoTo

نکته : برخی از عناوین عمل ها در ویرایش 1.3 اضافه گشته است .

Action Type Description

GoTo تغییر یافتن شماره صفحه و رفتن به صفحه مبدا یا زوم کردن

GoToR(Go to Remote ) باز کردن فایل پی دی اف دیگری و یافتن شماره صفحه

و رفتن به صفحه مبدا یا زوم کردن

Launch باز کردن یک برنامه ، و معمولا باز کردن یک فایل

Sound Play a sound.

Movie Play a movie.

Thread Begin reading an article thread.

JavaScript Execute a JavaScript script.

ImportData Import field values from a file.

Pdf ساختار فایل های

صفحه : 25

و ...

5.6 واژه نامه اطلاعات :

تریلر یک مدرک ممکن است یک اشاره به یک واژه نامه اطلاعات که آن اطلاعات آماده ساختن

( فراهم آوردن ) یک مدرک را در بر دارد ، داشته باشد .

این واژه نامه اختیاری ممکن است یک یا چندیدن کلید در بر داشته باشد ، که قادیر هر یک از

کلیدها ، رشته هستند ....

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

بروزآوری شود. Pdf شوند. که این رشته ها ممکن است نشان داده شوند و یا توسط کاربر فایل

Pdf نمونه ای از یک فایل : a ضمیمه

کوچک آورده شده است .جدول زیر حاوی اشیاء بکاررفته Pdf در این قسمت نمونه ای از یک فایل

در سند است .

Object number Object type

1 Catalog

2 Outlines

3 Pages

4 Page

5 Contents

6 ProcSet array

%PDF-1.0

1 0 obj

<< 

/Type /Catalog

/Pages 3 0 R

/Outlines 2 0 R

>> 

endobj

2 0 obj

<< 

/Type /Outlines

/Count 0

>> 

endobj

3 0 obj

<< 

/Type /Pages

/Count 1

/Kids [4 0 R]

Pdf ساختار فایل های

صفحه : 26

>> 

endobj

4 0 obj

<< 

/Type /Page

/Parent 3 0 R

/Resources << /ProcSet 6 0 R >>

/MediaBox [0 0 612 792]

/Contents 5 0 R

>> 

endobj

5 0 obj

<< /Length 35 >>

stream

endstream

endobj

6 0 obj

[/PDF]

endobj

xref

0 7

0000000000 65535 f

0000000009 00000 n

0000000074 00000 n

0000000120 00000 n

0000000179 00000 n

0000000300 00000 n

0000000384 00000 n

trailer

<< 

/Size 7

/Root 1 0 R

>> 

startxref

408

%%EOF

مراجع : b ض میمه

کتابها و کتب الکنرونیک b.a

1. Portable Document Format - Reference Manual / Version 1.3

Adobe Systems Incorporated / March 11, 1999

Authors—Tim Bienz, Richard Cohn, and Jim Meehan

2. Portable Document Format - Reference Manual / Version 1.2

Adobe Systems Incorporated / November 12, 1996

Authors—Tim Bienz, Richard Cohn, and Jim Meehan

. خود آموز ادوب اکروبات / اسمیت- کوکس / مترجم

Pdf ساختار فایل های

صفحه : 27

Mo-mah.persianblog.ir

Mohsen_mahyar@yahoo.com

 

   + MOHSEN GHASEMI - ٧:٢٠ ‎ق.ظ ; ۱۳۸٩/٦/٢٥

مرجع ترفندهای رجیستری

مرجع ترفندهای رجیستری

1mo-mah.persianblog.ir

mohsen_mahyar@yahoo.com: بوسیله

رجیستری چیست :

رجیستری پایگاه داده ای است با پیکر درختی که در آن اطلاعات مربوط به کامپیوتر ، کاربران ، ابزار جانبی متصل به

کامپیوتر و نوع سیستم عامل آن.

را انتخاب کنید و در کادر مربوط به Run رفته و سپس گزینه ی Start برای وارد شدن به رجیستری باید ابتدا به منوی

را فشار دهید . enter را تایپ کنید و گلید RegEdit آن عبارت

در رجیستری واژه هایی وجود دارد که شما باید آنها را بدانید :

١- کلید :

شاخه هایی که در سمت چپ پنجره ظاهر شده اند را کلید میگویند که یک کلید میتواند حاوی چند زیر شاخه باشد به

میباشد . Hkey_Current_user یکی از زیر کلید های کلید Software عنوان مثال زیر کلید

٢- داده یا متغیر :

به رشته ای از اطلاعات که در ناحیه سمت راست پنجره قرار میگیرد و محتویات کلید جاری را مشخص میکند داده یا

متغیر میگویند یک داده از سه قسمت تشکیل میشوند : نام ، نوع داده یا متغیر و خود داده.

ترفندها :

را سریع تر کنید start منوی

زیر منوها پس از ۴٠٠ میلی ثانیه ظاهر میشود که برای کاربران حرفه ای ممکن است چند ثانیه طول start در منوی

بکشد شما میتوانید این زیر منوها را به سرعت برق ظاهر کنید آن هم با رفتن به سراغ کلید زیر ( البته قبلا از این کار

را ok را در آن وارد و regedit را انتخاب کرده و سپس کلمه run گزینه start یادم رفت بهتون بگم که باید از منوی

بزنید و حالا شما در رچیستری ویندوز هستید ) کلید زیر را در رجیستری پیدا کنید :

HKEY_CURRENT_USER\CONTROL PANEL\DESKTOP

را پیدا کنید مقدار این متغیر طول تاخیر منو را بر حسب میلی ثانیه از ٠ تا MENU SHOW DELAY در این جا فقره ی

٩٩٩ نشان میدهد که میتوانید با دادن مقدار ١ به آن سرعت آن را بسیار بسیار سریع کنید تا در نیم سوت زیر منوها

ظاهر شوند.

MEDIA PLAYER از کار انداختن ارتقای

پخش کننده ی ویندوز اکس پی یعنی همون مدیا پلیر خودمون هر ١ ماه یه بار میخواد خودشو ارتقا بده و شما میتوانید

این ارتقا خودکار را از کار بندازید خوب ابتدا کلید زیر را در رجیستری پیدا کنید :

HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MEDIAPLAYER\UPGRADE

تغییر دهید ( البته ممکن در بعضی سیستمها به طور NO را به ENABLE AUTO UPGRADE اکنون مقدار متغیر

باشه ) NO اتوماتیک

: ( TASKBAR ) تغییر دادن گروه بندی نوار تکلیف

وقتی که برنامه ها یا اسناد متعددی را در آن واحد باز میکنید و نوار تکالیف با شکلک های متعدد شلوغ میشه خود

ویندوز ایکس پی نوار تکلیف را با گروه بندی پنجره های مفتوح مشابه در یک شکلک واحو خلوت می سازد رجیستری به

شما کمک میکند این ترتیب را تغییر دهید ابتدا به کلید زیر بروید :

HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\CURENT VERSION\EXPLORER\ADVANCED

را انتخاب کنید DWORD گزینه NEW سپس در سمت راست روی یک جای خالی راست کلیک کرده و سپس از منوی

بگذارید . TASKBARGROUPSIZE و اسم آن را

اگر مقدار ١ به آن بدهید ویندوز پنجره ها را بر حسب اندازه شان گروه بندی میکند یعنی بزرگترها اول قرار میگیرند و ...

اگر مقدار ٢ بهش بدین هر وقت ٢ تا پنجره یا یا بیشتر ار یک نوع برنامه باز شمود آنها را گروه بندی میکند و ااگر ٣ بدهید

هر وقت ٣ تا یا بیشتر از یک برنامه باز شود آن ها را گروه بندی میکند.

بردارید : START برنامه ها را از منوی

در ویندوز اکس پی این امکان را به شما میدهد که به ۴ یا ۵ برنامه اخیر اجرا شده دسترسی سریع START منوی

را شلوغ نکنند یا شاید نخواهید کاربر بعدی بداند شما از START داشته باشید اما اگر بخواهید این برنامه ها منوی

کدام برنامه ها استفاده کردید چه باید کرد ؟

START خوب این کار مشکلی نیست شما میتوانید به ویندوز بگویید بعشی برنامه ها را که شما میخواهید در منوی

نشان ندهد . ابتدا به کلید زیر بروید :

HKEY_CLASSES_ROOT\APPLICATION

ظاهر روی آن بگذارید به آن کلید یک مقدار START اکنون یک کلید جدید بسازید و نام برنامه ای که میخواهید در منوی

بدهید به این ترتیب برنامه ای که شما اسم آن را آورده اید دیگر در فهرست برنامه های NoStartPage حروفی به نام

اخیر اجرا شده ظاهر نخواهد گردید.

بادکنک ها را بترکانید :

می داینم که ویندوز اکس پی خیلی هوای کاربر خود را دارد اما آن همه بادکنک های توضیحی و تذکراتی که از نوار

تکلیف بلند میشود شور کار را در آورده است ! برای این که یک سوزن در نوار تکلیف بزارید کهخ دیگر بادکنک ها بالا

نیایند و بترکند به کلید زیر بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\/current Version\Explorer\Advanced

بگذارید برای ترکاندن بادکنک ها مقدار آن را ٠ enablebaloontips بسازید و نام آن را DWORD اکنون یه متغیر از نوع

قرار دهید.

قدیمی : start همان منوی

ویندوز خوشتان نمی آید و همان منوی قدیمی را دوست دارید ابتدا start اگر از منوی

بگذارید و سپس مقدار آن را ١ قرار دهید با این کار NOSimpleStartMenu بسازید و اسم آن را DWORD یک متغیر

همان شکل قدیمی خود را پیدا میکند . start منوی

فهرست برنامه های اخیرا اجرا شده را از بین ببرید :

اگر شما نمی خواهید کسی بداند شما اخیرا از چه برنامه هایی استفاده کرده اید کل فهرستهای اخیرا اجرا شده را از

قرار دهید و NoStartMenuMFUprogramslist بسازید و نام آن را DWORD قطع کنید یک متغیر از جنس start منوی

مقدار آن را ٠ قرار دهید با این کار فهرست تمام برنامه ها پاک خواهد شد.

ارتقای ویندوز را از کار بندازید :

NoWindowsUpdate بسازید و نام آن را DWORD اگر بخواهید کاربران را از ارتقای ویندوز منع کنید یک متغیر از نوع

گذاشته و مقدار آن را ١ قرار دهید توجه داشته باشید که این کار ویندوز را به طور کامل از ارتقای خودکار محروم

میسازد.

از بین بردن پوشه ها :

را پاک کنید : برای برداشتن پوشه START تک تک پوشه های منوی DWORD شما میتوانید با اضافه کردن متغیر های

بگذارید و مقدار آن را ١ NoStartMenuMyMusic ساخته و نام آن را DWORD متغیری از نوع MyMusic ی

ساخته و اسم آن را DWORD متغیردیگری از MyPictures بدهید برای خلاص شدن از پوشه

دیگری ساخته DWORD متغیر Favorites گذاشته و مقدار آن را ١ قرار دهید و برای حذف پوشه ی NoSMMyPictures

گذاشته و مقدار آن را ١ قرار دهید. NoRecentDocsMenu و اسم آن را

کنترل را در دست خود بگیرید ! :

محروم کنید به start ممکن است بخواهید یک کاربر خانگی یا اداری را از دسترسی به یک سری توابع خاص در منوی

بذارید و NoFind بسازید و نام آن را DWORD متغیری از نوع start از منوی search عنوان مثال برای حذف کردن تابع

محو خواهد شد start از منوی Search مقدار آن را ١ قرار دهید به این ترتیب تابع

NORun بسازید و اسم آن را DWORD میباشد برای این کار نیز متغیر دیگری از نوع Run یک مورد دیگر حذف کردن تابع

بگذارید و مقدار آن را ١ قرار دهید .

و بالاخره برای این که جلوی انگولک کردن نوار تکالیف را توسط کاربران بگیرید متغیر دیکری تعریف کرده و اسم آن را

از پانل کنترل start بذارید و مقدار ١ به آن بدهید این کار باعث خواهد شد تا نوار تکلیف و منوی NoSetTaskbar

برداشته شوند.

حذف کردن برنامه هایی که پاک نمیشوند !

نمیشوند در نتیجه بسیاری از ( uninstall ) به دلایلی که برای ما معلوم نیست بسیاری از برنامه ها به طور کامل پاک

کاربران سعی می کنند با حذف پوشه یا شاخه آن برنامه مقدمات پاک شدن آن را انجام دهند اما نام چنین برنامه

هایی برای همیشه در فهرست

باقی خواهند ماند برای آنکه فهرست این برنامه ها را از بین ببریم باید از رجیستری استفاده Add\Remove Program

کنیم :

ابتدا به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Microsoft\Windows\Curent Version\uninstall

و سپس کلید متناظر با این کلید را باز کنید و حالا برنامه هایی را که نمی توانستید پاک کنید را از این جا حذف کنید تا

برای همیشه از بین بروند.

نام کاربری خود را عوض کنید :

شما یک فرصت برای مشخص کردن نام خود و موسسه تان برای ویندوز ایکس پی دارید و آن هم موقعی است که در

حال نصب ویندوز اکس پی هستید اما اگر لازم باشد بعد ها نام ها را عوض کنید چه باید کرد ؟ کار ساده ای ست را

حل آن رفتن به کلید زیر میباشد :

HKEY_LOCAL_MACHINE\Software\Microsoft\windowsNT\Current version

را پیدا کرده و مقدار آنها را به نامهای مورد نظرتان registered Organization و registered Owner حالا متغیر های

تغییر دهی.

مخفی کردن سطل زباله :

اگر بخواهید یک میز گار تر و تمیز داشته باشید شاید بهتر باشد سطل آشغال را از آن بردارید از آن جا که این کار

مستلزم پاک کردن یک کلید در رجیستری میباشد توسیه میکنم قبل از این کار یک نسخه پشتیبان از این کلید بگیرید .

خوب حالا به سراغ کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\current version\ Explorer\Desktop\Namespace

اکنون کلیدی که در قاب سمت چپ با این برچسب مشخص شده است حذف کنید :

{645ff040-5081-101b-9f08-00aa002f954e}

این کار باعث از بین رفتن کلی سلط زباله نمیشود اما جلوی دسترسی کاربران به آن را میگیرد.

تغییر دادن مهلت زمانی برنامه ها :

وقتی که برنامه ای از کار میفتد ویندوز یک مقدار زمان مشخصی به آن فرصت میدهد تا سعی کند خود را از مخمصه

نجات دهد اما اگر فکر میکنید این مهلت زمانی زیاد است میتوانید آن را کم کنید برای این ممنظور به کلید زیر بروید :

HKEY_CURRENT_USER\Control panel\Desktop

را پیدا کنید مقدار این متغیر ۵٠٠ است مقدار را طوری کم کنید که یک مهلت Hung app Timeout سپس متغیر

عادلانه نیز به برنامه مریض الاحوال داده شده باشد.

تم و رنگ بندی صفحه ی خوش آمد گویی ویندوز را تغییر دهید :

به سراغ کلید زیر بروید :

HKEY_USER_DEFAULT\Software\Microsoft\Current version\Theme manager

را انتخاب کنید و مقدار حوزه ی Modify را پیدا کرده و سپس روی آن کلیک راست کرده و color Name اکنون متغیر

را فشار دهید و از رجیستری خارج شوید کامپیوتر را از نو بوت ok تغییر دهید شستی Metallic را به value data

کنید تا تغییرات را مشاهده نمایید.

را از گوشه ی سمت راست نوار عنوان بردارید : Comments پیوند

به کلید زیر بروید :

HKEY_CURRENT_USER\Control panel\Desktop

را انتخاب modify را از سمت راست پیدا کنید و سپس روی آن راست کلیک کرده و گزینه lameButtonEnabled متغیر

کرده مقدار آن را به ٠ تغییر دهید و سپس کامپیوتر را از نو بوت کنید.

برنامه های غیر ضروری را از کار بندازید :

نصب کردن برنامه های زیاد در کامپیوترتان میتواند رجیستری شما را با برنامه های غیر ضروری که در هنگام بالا آمدن

کامپیوتر به اجرا در می آیند به هم بریزدو این باعث کندی کامپیوتر و اشفال بخشی از حافظه سیستم میشود برای از

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

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Runonce

در اینجا میتوانید برنامه های غیر ضروری را حذف کنید کامپیوتر سپس کامپیوتر را از نو بوت کنید تا تغییرات را ملاحظه

کنید.

بوت شدن سریع ویندوز :

یک ویژگی جدید در ویندوز ایکس پی این است تمام فایلهای بوت را در کنار یکدیگر قرار میدهد و باعث یک بوت سریع تر

میشود .

به صورت مادرزاد این گزینه فعال است اما در بعضی از نسخه های ویندوز این طور نیست برای به کار انداختن آن به

رجیستری رفته و به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\/Microsoft\Dfrag

را برگزینید و modify را پیدا کرده و روی آن کلیک راست کرده و سپس از منوی آن گزینه BootOptimizeFunction متغیر

تغییر دهید تا فعال شود. Y سپس مقدار آن را به

: xp نمایش دادن پیغام در هنگام بالا آمدن ویندوز

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

کاربران برسد به نمایش در آید به این ترتیب عمل کنید :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\Current Version\Winlogon

را با هر اسم دیکری که میخواهید روی پنجره پیغامتان باشد عوض کنید . کلید legalnoticecaption کلید

را به هر پیغامی که میخواهید دردل پنجره ی پیغام به نمایش درآید تغییر دهید کامپیوترتان را از نو Legalnoticetext

بوت کنید تا تغییرات را ملاحظه نمایید.

از کار انداختن اجرای خودکار سی دی به طور کامل در ویندوز ایکس پی:

این کار احتیاجی به رجیستری ندارد و یک راه ساده تر وجود دارد :

computer را وارد کنید اکنون به gpedit.msc را انتخاب کنید و فرمان run را کلیک کنید و گزینه start شستی

را باز کنید در اینجا میتوانید گزینه ی system را کلیک کنید و زبانه ی administrator templates رفته و configuration

را پیدا کرده و آن را مطابق میل خود تغییر دهید. turn auto off مربوط به

: start از میز تحریر و منوی my computer برداشتن

my computer بعضی ها دوست ندارند کامپیوترشان بازیچه ی دست این و اون بشه بخاطر همین ترجیح میدهند که

بردارند روش کار طبق معمول از طریق انگولک کردن رجیستری میباشد . start را از روی میز تحریر یا منوی

ابتدا به رجیستری بروید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \ Policies\Nonennum

بسازید و نام آن را به صورت زیر بنویسید : DWORD اکنون یک متغیر از نوع

{20D04FE0-3AEA-1069-A2D8-08002B30309D}

را محو خواهید کرد و اگر به آن مقدار ١ بدهید دوباره به جای خود باز MY COMPUTER اگر به این متغیر مقدار ٠ بدهید

میگردد . یک بار کامپیوتر خود را از نو راه اندازی کنید تا تغییرات را ملاحظه کنید.

از کار انداختن راست کلیک در میز تحریر :

وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current version\Policies\Explorer

را به آن بدهید با دادن مقدار صفر به این NoViewContextMenu بسازید و اسم آن را DWORD یک متغیر جدید از نوع

متغیر منوی مزبور را از کار میندازید و با دادن مقدار ١ به آن دوباره آن را به کار می اندازید . از رجیستری خارج شوید و

ویندوز خود را از نو بوت کنید.

از مرورگر ویندوز : file برداشتن منوی

رجیستری را باز کرده و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\Policies\Explorer

بدهید اگر به این متغیر مقدار صفر بدهید حذف و اگر NofileMenu بسازید و به آن نام DWORD یک متغیر جدید از نوع

مقدار ١ بدهید به جای خود باز میگردد حال ویندوز را از نو بوت کنید.

مخفی کردن کلیه فقرات از میز تحریر :

وارد رجیستری شوید و کلید زیر را بیابید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

بگذارید اگر به این متغیر مقدار ١ بدهید کلیه فقرات NoDesktop بسازید و اسم آن را DWORD یک متغیر جدید از نوع

حذف و با دادن مقدار ٠ به حالت خود باز میگردد

اعمال این تغییرات نیاز به راه اندازی مجدد ویندوز دارد.

: start از کار انداختن تمام منوهای ویندوز و شستی

به کلید زیر بروید :

HKEY_CLASSES_ROOT\CLISID\

سپس کلید زیر را پیدا کنید :

{5b4dae26-b807-11d0-9815-00c04fd91972}

تنهاکاری که شما باید انجام بدهید تغییر دادن نام این کلید است که میتوانید با قرار دادن یک خط تیره قبل این نام این

کار را انجام دهید که این کلید به شکل زیر در می آید :

{-5b4dae26-b807-11d0-9815-00c04fd91972}

از کار می اندازد. start با این کار تمام منوهای برنامه های متعارف ویندوز و همچنین شستی

: setting از منوی Active Desktop برداشتن گزینه های

تقریبا به هیچ دردی نمیخورد پس بهتر آن را پاک کنید تا محیط کارتان خلوت شود کلید زیر Active Desktop گزینه های

را در رجیستری پیدا کنید :

HKEY_LOCAL_MACHINE_Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

بذارید . NoSetActiveDesktop بسازید و نام آن را DWORD اکنون یک متغیر جدید از نوع

اگر مقدار یک به آن بدهید تمام منوهای آن از بین میروند و اگر مقدار ٠ بدهید دوباره ظاهر خواهند شد .

جلوی دسترسی به اینترنت را بگیرید :

با انجام این کار میتوانید جلوی دسترسی به اینترنت را در تمام محصولات میکروسافت مثل مرورگر اینترنت و و افیس را

بگیرید برای این کار وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_Current_user\Software\Microsoft\Windows\Current Version\Internet Setting

اکنون در قاب سمت راست متغیرهایی را میبینید که با بعضی از آنها باید دست و پنجه نرم کنید به یکی از این متغیر ها

را تغییر داده و به آن یک نشانی آی پی و یک درگاه proxi server مقدار ١ بدهید و مقدار متغیر Proxi Enable به نام

جعلی که در کامپیوترتان وجود ندارد بدهید مانند : 10.0.0.1:5555 ( چهار عدد سمت چپ نشانی آی پی و چهار رقم

تشکیل میدهند. Ip:Port سمت راست شماره ی درگاه را به صورت

از کار انداختن سوابق اسناد اخیر :

اضافه میشود این ترفند start معمولا وقتی که فایل یل سندی را باز میکنید نام ان به فهرست اسناد اخیر در منوی

جلوی این کار را میگیرد :

کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

بسازید و مقدار یک به آن بدهید تا محدودیت NoRecentDocsHistory و به نام DWORD یک متغیر جدید از جنس

مزبور اعمال گردد حال کامپیوترتان را از نو بوت کنید.

توضیحات سه مربع حداقل و حداکثر و بستن را از بین ببرید :

هر وقت ماوس را روی سه مربع کنترلی که در گوشه ی سمت راست فوقانی هر پنجره ی ویندوز وجود دارد حرکت

کنید شرح مختصری در مورد هر کدام از آنها میبینید که این ترفند این توضیحات را از بین میبرد :

کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Control Panel \ Desktop

بگذارید حال اگر مقدار ٠ به آن بدهید MinMaxClose بسازید و اسم آن را string اکنون یک متغیر جدید از نوع حروفی یا

توضیحات اضافی از کار می افتد و اگر مقدار ١ به آن بدهید مجددا این امکان برقرار میشود سیستمتان را از نو بوت کنید.

: My Computer مخفی کردن درایوها از

این ترفند به شما این امکان را میدهد که بعضی از درایوها را مخفی کنید یا حتی میتوانید تمام درایوها را مخفی کنید

برای این کار وارد رجیستری شوید و این کلید را در آن پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \ Policies\Explorer

بسازید گردونه ها وقتی مقدارشان صفر باشد قابل دیدن هستند و اگر dword را از نوع NoDrives متغیر به نام

مقدارشان ١ باشد مخفی میشوند برای هر گردونه میتوانید به صورت زیر استفاده کنید :

A : 1

B : 2

C : 4

D : 8

E : 16

F : 32

G : 64

H : 128

I : 256

J : 512

K : 1024

والی آخر ....

را با هم D و ٨ برای C را مخفی کنید میبایست دو مقدار ۴ برای درایو D و گردونه c برای مثال اگر بخواهید گردونه

بدهید اما برای مخفی کردن NoDrive جمع کنید و مقدار ١٢ را بدست آورید این همان عددی است که باید به متغیر

بدهید . NoDrive تمام درایوها باید مقدار ۶٧١٠٨٨۶٣ را به متغیر

برای این که تغییرات را ملاحظه کنید باید سیستم خود را از نو بوت کنید.

جلوی دسترسی به محتویات درایو مورد نظرتان را بگیرید :

جواب میده و کار میکنه و کارش اینه که مانع دسترسی کاربران به درایوها از xp این ترفند فقط در ویندوزهای ٢٠٠٠ و

نیز نمیتواند موجب نمایش dir یا Run میشه به علاوه به اجرا در آوردن فرمان Explorer یا mycomputer طریق

شاخه های این گردونه شود

وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \ Policies\Explorer

بسازید وظیفه ی این متغیر دادن اجازه ی دسترسی به هر DWORD را از جنس NoViewDrive اکنون متغیری به نام

یک از گردونه های مجازی کامپیوترتان است .

درایوها وقتی مرئی هستند که مقدار صفر را به آن بدهید و هنگامی نامرئی میشوند که به آن مقدار ١ را بدهید .

مثل ترند قبل از جدول زیر استفاده کنید :

A : 1

B : 2

C : 4

D : 8

E : 16

F : 32

G : 64

H : 128

I : 256

J : 512

K : 1024

را مخفی کنید باید عدد ۴ و ٨ را با هم جمع کنید و مقدار آن را به متغیر بدهید . D و C به عنوان مثال اگر بخواهید درایو

اگر بخواهید تمام متغیر ها را مخفی کنید مقدار ۶٧١٠٨٨۶٣ را به این متغیر بدهید .

تغییر دادن نام و شکلک درایوها :

رجیستری را باز کنید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \Explorer\DriveIcons

در داخل این D اکنون یک کلید فرعی آن هم فقط با یک حرف که متناظر با درایو مورد نظرتان باشد بسازید برای مثال

بسازید ( توجه داشته باشید که نام درایوی که میسازید باید به DefaultIcon کلید فرعی یک کلید فرعی دیگر به نام

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

زیر باید ساخته شود و نشان داده شود :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \Explorer\DriveIcons\D

را مطابق با نام و خط سیر کامل فایل آیکون مورد نظر را تعیین کنید . Default و مقدار پیش فرض آن یعنی

یادتون باشه کلید نه متغیر ) و مقدار ) defaultlabel باز هم از داخل کلید فرعی حرف درایو ، یک کلید فرعی دیگر به نام

My Zip Drive : را مطابق با نام درایو مورد نظرتان تعیین نمایید مانند default پیش فرض آن یعنی

حال سیستم خود را از نو بوت کنید.

: media Player از PlayList حذف آخرین

ابتدا وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Player

و جهت حذف لیست فایلهای پخش شده " زیر کلید " زیر را یافته محتویات آن را حذف کنید :

…\RecentFileList

های پخش شده " زیر کلید " زیر را یافته محتویات آن را حذف نمایید : URL و جهت حذف

: MediaPlayer در DVD فعال کردن ویژگیهای مربوط به

نمایش داده شود ، ابتدا کلید زیر را پیدا کنید : DVD ، MediaPlayer این امکان باعث میشود در

HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Player\Settings

قرار دهید . yes ایجاد کنید و مقدار آن را جهت فعال شده EnableDVDUI با نام string یک متغیر جداد از نوع

: MediaPlayer تغییر دادن عنوان پنجره

کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Software\Policies\Microsoft\WindowsMediaPlayer

کلیک Microsoft وجود نداشت آن را بسازید ) در پنل سمت جپ روی کلید windosmediaplayer ( در صورتی که کلید

تغییر دهید و WindowsMediaPlayer را انتخاب نمایید تا یک کلید جدید ساخته شود نام آنرا به key راست کنید و گزینه

در پنل سمت راست موارد زیر را انجام دهید :

ایجاد کرده و عنوان مورد نظر خود را در آن قرار دهید . Title Bar به نام String یک مقدار جدید از نوع

: *.dat نشان دادن فایلهای با پسوند

کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHIN > Software > Microsoft > Player > extensions

جدید به نام ٨ درست کنید(اگر String value کردن در ناحیه قاب سمت راست یک Right-Click بروید و با Description به

آخرین کلید موجود ٧ میباشد).

قرار دهید. Video CD (*.dat) را برابر Value data بر روی مقدار جدید ساخته شده دوبار کلیک کنید و

قرار *.dat جدید ایجاد کنید و مقدار آن را این بار فقط برابر String Value بروید و دوباره مانند مرحله قبل یک Types به

دهید.

هم موجود MUIDescription که استفاده میکنید ممکن است یک پوشه به نام Player Media بسته به نسخه ای از

قرار دهید. Video CD آن را برابر با Value Data مانند مراحل قبل ایجاد کنید و String value باشد. اگر چنین بود یک

را انتخاب کنید. Open گزینه File را باز کنید و از منوی Media Player را ببندید و Registry Editor

در آن لیست شده Video CD را باز کنید تا مطمئن شوید Files of type برای اطمینان از اعمال موفقیت آمیز تغییرات

است.

بالاترین کیفیت ) : ) high color نمایش آیکونهای ویندوز به صورت

اگر علاقمند هستید که آیکونهای ویندوز را با کمی کیفیت بالاتر و جزئیات بیشتری ملاحطه نمائید از این روش استفاده

کنید در نتیجه ویندوز آیکونها را با تمام کیفیت خود نشان میدهد:

(run >>> regedit ) را اجرا کنید regedit ابتدا برنامه

کلید زیر را بیابید :

HKEY _CURRENT_USER\CONTROL Panel \ Desktop\WindowsMetrics

بسازید (در صورتیکه وجود نداشت) و مقدار آن را برابر SHELL ICON BPP با نام STRING سپس یک مقدار جدید از نوع

توان کارت گرافیکی خود قرار دهید طبق مقدارهای زیر :

256 = 256 COLOR BIT

16=16 BIT COLOR

24 = 24 BIT COLOR

32 = 32 BIT COLOR

کنید و دوباره مقدار آن را اینبار RESTART برای مشاهده مخصوص تغییرات ابتدا مقدار آن را ٢۵۶ قرار داده و سیستم را

کنید تا تفاوت آن را احساس کنید . RESTART به ٣٢ تغییر دهید و سیستم را

هنگام بوت شدن ویندوز : NUMLOCK فعال کردن کلید

را باز کنید . REGEDIT -برنامه

-کلید زیر را پیدا کنید :

HKEY_CURENT_USER\CONTROL PANEL\KEYBOARD

ایجاد کرده و مقدار آن را ٢ قرار دهید . INITIALKEYBOARDLNDICATOR با عنوان STRING یک متغیر از نوع

: CDROM تعیین برنامه جهت اجرای سی دی های صوتی قرار داده شده در

کلید زیر را پیدا کنید :

HKEY_CLASSES_ROOT\AudioCD\Shell\Play\Command

ست شده است حال اگر Media Player در اینجا موجود است که معمولا توسط خود ویندوز به default یک متغیر به نام

قصد تغییر آنرا دارید به صورت زیر عمل کنید :

: Winamp تنظیم برای

"C:\Program File\Winamp3\Winamp3.exe" /CD:%1

یا اگر از برنامه دیگری استفاده میکنید آدرس آنرا وارد کنید .

کنید . reset حال جهت فعال شدن سیستم را

: AUTORUN کنترل کردن

کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\CDRom

سی دی ها را از کار بندازید به آن AUTORUN ایجاد کنید و برای اینکه AUTORUN و با نام DWORD یک متغیر از نوع

مقدار صفر و برای فعال کردن آن مقدار یک.

: ( walpaper ) -تغییر مسیر تصاویر زمینه

همان طور که میدانید تصاویر زمینه ویندوز قبل از نمایش در شاخه اصلی ویندوز قرار میگیرند در صورتی که بخواهید

مسیری دلخواه را برای گرد آوری و نمایش تصاویر زمینه اختیار نمایید ابتدا کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\currentVersion

ایجاد کنید و نام آن را مسیر دلخواه خود که تصاویر در آن وجود دارند قرار Expandable String Value یک متغیر از نوع

قرار دهید ( توجه : ممکن ااست در بعضی از نگارش های ویندوز SystemRoot%\Web\Wallpaper% دهید و مقدار آنرا

اگر چنین متغیری را پیدا کردید نام آنرا به آدرس یا مسیر مورد نظر WallpaperDir این متغیر وجود داشته باشد با نام

خود تغییر دهید )

افزودن متن به ساعت سیستم :

به کلید زیر بروید :

HKEY_CURRENT_USER\Control Panel \ International

در صورتی که از قبل ایجاد نشده باشد ) قرار دهید و متن ) S ایجاد کرده و نام آنرا 1159 String حال یک متغیر از نوع

دلخواه خود را در آن وارد نمایید .

قرار دهید و متن دلخواه دیگری در آن قرار دهید . توجه S بسازید و نام آنرا 2359 STRING حال متغیر دیگری از نوع

داشته باشید که در ویندوزهای عربی یا فارسی میتوان متن را به فارسی نوشت.

تغییر رنگ های ویندوز :

ویندوز تغییر میدهید مشاهده میشود که برخی از رنگ ها ثابت Propertice هنگامی که الگوی رنگ ویندوز را از طریق

بوده و قابل تغییر نیستند برای برطرف کردن این موضوع به کلید زیر بروید :

HKEY_USERS\Default\Control Panel \ Colors

در این جا کلید عناصر تصویر قابل دسترس میباشند که شما میتوانید آنها را تغییر دهید رنگها به صورت کد رنگ میباشند

که با دادن شماره های ١ تا ٢۵۵ میتوانید رنگها را مشاهده کنید.

تنظیم پنجره خوش آمدگویی ویندوز :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows \ CurrentVersion\Explorer\Tips

قرار دهید که در NT و XP خوب شما میتوانید در این قسمت ۴٨ نکته در ویندوز ٩٨ و ٩۵ و ۵٠ نکته در

بسازید و به آن نامی از STRING VALUE هنگام بالا آمدن ویندوز برای شما نمایش دهد شما میتوانید متغیرهایی از نوع

٠ تا ۵٠ بدهید و نکات خود را در آن قرار دهید تا با هر بار بالا آمدن ویندوز به نمایش درآید این نکته بسیار بسیار جالبی

است که خیلی کارا میشه باهاش کرد مانند نکاتی که میخواهیم کاربران ویندوز آنها را رعایت کنند و ....

اصلاح هویت :

آیا اطلاعات شما به درستی در کامپیوتر وارد شده است ؟ برای حصول اطمینان از این موضوع میتوانید از کلید زیر

استفاده کنید :

HKEY_CURRENT_USER\Software \ Microsoft \ MS Setup(ACME)\User info

: Display Propertice پس زمینه ویندوز ) ازپنجره ) Desktop حذف گزینه

را انتخاب کرده باشید گزینه هایی را در آن میبینید که Propertice اگر روی صفحه میز کار راست کلیک و سپس گزینه

هر کدام کار خاصی را انجام میدهند حال شما میتوانید تمام آنها را پاک کنید :

ابتدا وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies

بگذارید ( System را انتخاب کرده و اسم آن را Key گزینه New کلیک راست کرده و از منوی Policies حال روی کلید

در آن ایجاد کرده و نام آنرا Binary Value در صورتی که از قبل ایجاد نشده باشد ) حال متغیری از نوع

00 وارد کنید و برای مشاهده تغییرات سیستم را از نو بوت 00 00 قرار داده و مقدار آنرا 01 NoDispBackgroundPage

کنید .

: Display Propertice از پنجره Screen Saver حذف گزینه

شاید شما دوست نداشته باشید که کسی در محافظ صفحه نمایش شما دست کاری کند برای این کار شما باید به

کلید زیر بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

را ایجاد کرده اید ) system (که در ترفند قبلی کلید

00 قرار دهید و 00 00 قرار داده و مقدار آنرا : 01 NoDispScrSavPage ایجاد و نام آنرا Binary Value متغیری از نوع

سیستم را از نو بوت کنید .

: Display Propertice از پنجره Appearance حذف گزینه

شاید شما رنگهایی را برای ویندوز خود انتخاب کرده باشید و نخواهید کسی آنها را تغییر دهد برای این کار به کلید زیر

بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

00 00 00 قرار داده و مقدار آنرا : 01 NoDispAppearancePage ایجاد و نام آنرا Binary Value متغیری از نوع

قرار دهید و سیستم را از نو بوت کنید .

: Display Propertice از پنجره Settings حذف گزینه

اگر شما برای ویندوز خود و تصویر مانیتور اندازه ای را مشخص کرده اید و میخواهید کسی آنرا تغییر ندهد به کلید زیر

بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

00 قرار دهید و 00 00 قرار داده و مقدار آنرا : 01 NoDispSettingsPage ایجاد و نام آنرا inary Value متغیری از نوع

سیستم را از نو بوت کنید .

: Display Propertice ممانعت از دستیابی به

و حالا رسیدیم به خود این پنجره اگر شما دوست ندارید که هیچ کس به این پنجره دسترسی داشته باشد میتوانید

را حذف کنید : Display Propertice خود پنجره

به کلید زیر بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

قرار داده و اگر به آن مقدار ١بدهید حذف و اگر مقدار NoDispCPL ایجاد نموده و نام آنرا DWORD حال متغیری از نوع

صفر بدهید فعال میشود.

گردان

1mo-mah.persianblog.ir

mohsen_mahyar@yahoo.com

   + MOHSEN GHASEMI - ۱:٤٠ ‎ق.ظ ; ۱۳۸٩/٦/۱٩

مرجع ترفندهای رجیستری

مرجع ترفندهای رجیستری

1mo-mah.persianblog.ir

mohsen_mahyar@yahoo.com: بوسیله

رجیستری چیست :

رجیستری پایگاه داده ای است با پیکر درختی که در آن اطلاعات مربوط به کامپیوتر ، کاربران ، ابزار جانبی متصل به

کامپیوتر و نوع سیستم عامل آن.

را انتخاب کنید و در کادر مربوط به Run رفته و سپس گزینه ی Start برای وارد شدن به رجیستری باید ابتدا به منوی

را فشار دهید . enter را تایپ کنید و گلید RegEdit آن عبارت

در رجیستری واژه هایی وجود دارد که شما باید آنها را بدانید :

١- کلید :

شاخه هایی که در سمت چپ پنجره ظاهر شده اند را کلید میگویند که یک کلید میتواند حاوی چند زیر شاخه باشد به

میباشد . Hkey_Current_user یکی از زیر کلید های کلید Software عنوان مثال زیر کلید

٢- داده یا متغیر :

به رشته ای از اطلاعات که در ناحیه سمت راست پنجره قرار میگیرد و محتویات کلید جاری را مشخص میکند داده یا

متغیر میگویند یک داده از سه قسمت تشکیل میشوند : نام ، نوع داده یا متغیر و خود داده.

ترفندها :

را سریع تر کنید start منوی

زیر منوها پس از ۴٠٠ میلی ثانیه ظاهر میشود که برای کاربران حرفه ای ممکن است چند ثانیه طول start در منوی

بکشد شما میتوانید این زیر منوها را به سرعت برق ظاهر کنید آن هم با رفتن به سراغ کلید زیر ( البته قبلا از این کار

را ok را در آن وارد و regedit را انتخاب کرده و سپس کلمه run گزینه start یادم رفت بهتون بگم که باید از منوی

بزنید و حالا شما در رچیستری ویندوز هستید ) کلید زیر را در رجیستری پیدا کنید :

HKEY_CURRENT_USER\CONTROL PANEL\DESKTOP

را پیدا کنید مقدار این متغیر طول تاخیر منو را بر حسب میلی ثانیه از ٠ تا MENU SHOW DELAY در این جا فقره ی

٩٩٩ نشان میدهد که میتوانید با دادن مقدار ١ به آن سرعت آن را بسیار بسیار سریع کنید تا در نیم سوت زیر منوها

ظاهر شوند.

MEDIA PLAYER از کار انداختن ارتقای

پخش کننده ی ویندوز اکس پی یعنی همون مدیا پلیر خودمون هر ١ ماه یه بار میخواد خودشو ارتقا بده و شما میتوانید

این ارتقا خودکار را از کار بندازید خوب ابتدا کلید زیر را در رجیستری پیدا کنید :

HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MEDIAPLAYER\UPGRADE

تغییر دهید ( البته ممکن در بعضی سیستمها به طور NO را به ENABLE AUTO UPGRADE اکنون مقدار متغیر

باشه ) NO اتوماتیک

: ( TASKBAR ) تغییر دادن گروه بندی نوار تکلیف

وقتی که برنامه ها یا اسناد متعددی را در آن واحد باز میکنید و نوار تکالیف با شکلک های متعدد شلوغ میشه خود

ویندوز ایکس پی نوار تکلیف را با گروه بندی پنجره های مفتوح مشابه در یک شکلک واحو خلوت می سازد رجیستری به

شما کمک میکند این ترتیب را تغییر دهید ابتدا به کلید زیر بروید :

HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\CURENT VERSION\EXPLORER\ADVANCED

را انتخاب کنید DWORD گزینه NEW سپس در سمت راست روی یک جای خالی راست کلیک کرده و سپس از منوی

بگذارید . TASKBARGROUPSIZE و اسم آن را

اگر مقدار ١ به آن بدهید ویندوز پنجره ها را بر حسب اندازه شان گروه بندی میکند یعنی بزرگترها اول قرار میگیرند و ...

اگر مقدار ٢ بهش بدین هر وقت ٢ تا پنجره یا یا بیشتر ار یک نوع برنامه باز شمود آنها را گروه بندی میکند و ااگر ٣ بدهید

هر وقت ٣ تا یا بیشتر از یک برنامه باز شود آن ها را گروه بندی میکند.

بردارید : START برنامه ها را از منوی

در ویندوز اکس پی این امکان را به شما میدهد که به ۴ یا ۵ برنامه اخیر اجرا شده دسترسی سریع START منوی

را شلوغ نکنند یا شاید نخواهید کاربر بعدی بداند شما از START داشته باشید اما اگر بخواهید این برنامه ها منوی

کدام برنامه ها استفاده کردید چه باید کرد ؟

START خوب این کار مشکلی نیست شما میتوانید به ویندوز بگویید بعشی برنامه ها را که شما میخواهید در منوی

نشان ندهد . ابتدا به کلید زیر بروید :

HKEY_CLASSES_ROOT\APPLICATION

ظاهر روی آن بگذارید به آن کلید یک مقدار START اکنون یک کلید جدید بسازید و نام برنامه ای که میخواهید در منوی

بدهید به این ترتیب برنامه ای که شما اسم آن را آورده اید دیگر در فهرست برنامه های NoStartPage حروفی به نام

اخیر اجرا شده ظاهر نخواهد گردید.

بادکنک ها را بترکانید :

می داینم که ویندوز اکس پی خیلی هوای کاربر خود را دارد اما آن همه بادکنک های توضیحی و تذکراتی که از نوار

تکلیف بلند میشود شور کار را در آورده است ! برای این که یک سوزن در نوار تکلیف بزارید کهخ دیگر بادکنک ها بالا

نیایند و بترکند به کلید زیر بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\/current Version\Explorer\Advanced

بگذارید برای ترکاندن بادکنک ها مقدار آن را ٠ enablebaloontips بسازید و نام آن را DWORD اکنون یه متغیر از نوع

قرار دهید.

قدیمی : start همان منوی

ویندوز خوشتان نمی آید و همان منوی قدیمی را دوست دارید ابتدا start اگر از منوی

بگذارید و سپس مقدار آن را ١ قرار دهید با این کار NOSimpleStartMenu بسازید و اسم آن را DWORD یک متغیر

همان شکل قدیمی خود را پیدا میکند . start منوی

فهرست برنامه های اخیرا اجرا شده را از بین ببرید :

اگر شما نمی خواهید کسی بداند شما اخیرا از چه برنامه هایی استفاده کرده اید کل فهرستهای اخیرا اجرا شده را از

قرار دهید و NoStartMenuMFUprogramslist بسازید و نام آن را DWORD قطع کنید یک متغیر از جنس start منوی

مقدار آن را ٠ قرار دهید با این کار فهرست تمام برنامه ها پاک خواهد شد.

ارتقای ویندوز را از کار بندازید :

NoWindowsUpdate بسازید و نام آن را DWORD اگر بخواهید کاربران را از ارتقای ویندوز منع کنید یک متغیر از نوع

گذاشته و مقدار آن را ١ قرار دهید توجه داشته باشید که این کار ویندوز را به طور کامل از ارتقای خودکار محروم

میسازد.

از بین بردن پوشه ها :

را پاک کنید : برای برداشتن پوشه START تک تک پوشه های منوی DWORD شما میتوانید با اضافه کردن متغیر های

بگذارید و مقدار آن را ١ NoStartMenuMyMusic ساخته و نام آن را DWORD متغیری از نوع MyMusic ی

ساخته و اسم آن را DWORD متغیردیگری از MyPictures بدهید برای خلاص شدن از پوشه

دیگری ساخته DWORD متغیر Favorites گذاشته و مقدار آن را ١ قرار دهید و برای حذف پوشه ی NoSMMyPictures

گذاشته و مقدار آن را ١ قرار دهید. NoRecentDocsMenu و اسم آن را

کنترل را در دست خود بگیرید ! :

محروم کنید به start ممکن است بخواهید یک کاربر خانگی یا اداری را از دسترسی به یک سری توابع خاص در منوی

بذارید و NoFind بسازید و نام آن را DWORD متغیری از نوع start از منوی search عنوان مثال برای حذف کردن تابع

محو خواهد شد start از منوی Search مقدار آن را ١ قرار دهید به این ترتیب تابع

NORun بسازید و اسم آن را DWORD میباشد برای این کار نیز متغیر دیگری از نوع Run یک مورد دیگر حذف کردن تابع

بگذارید و مقدار آن را ١ قرار دهید .

و بالاخره برای این که جلوی انگولک کردن نوار تکالیف را توسط کاربران بگیرید متغیر دیکری تعریف کرده و اسم آن را

از پانل کنترل start بذارید و مقدار ١ به آن بدهید این کار باعث خواهد شد تا نوار تکلیف و منوی NoSetTaskbar

برداشته شوند.

حذف کردن برنامه هایی که پاک نمیشوند !

نمیشوند در نتیجه بسیاری از ( uninstall ) به دلایلی که برای ما معلوم نیست بسیاری از برنامه ها به طور کامل پاک

کاربران سعی می کنند با حذف پوشه یا شاخه آن برنامه مقدمات پاک شدن آن را انجام دهند اما نام چنین برنامه

هایی برای همیشه در فهرست

باقی خواهند ماند برای آنکه فهرست این برنامه ها را از بین ببریم باید از رجیستری استفاده Add\Remove Program

کنیم :

ابتدا به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Microsoft\Windows\Curent Version\uninstall

و سپس کلید متناظر با این کلید را باز کنید و حالا برنامه هایی را که نمی توانستید پاک کنید را از این جا حذف کنید تا

برای همیشه از بین بروند.

نام کاربری خود را عوض کنید :

شما یک فرصت برای مشخص کردن نام خود و موسسه تان برای ویندوز ایکس پی دارید و آن هم موقعی است که در

حال نصب ویندوز اکس پی هستید اما اگر لازم باشد بعد ها نام ها را عوض کنید چه باید کرد ؟ کار ساده ای ست را

حل آن رفتن به کلید زیر میباشد :

HKEY_LOCAL_MACHINE\Software\Microsoft\windowsNT\Current version

را پیدا کرده و مقدار آنها را به نامهای مورد نظرتان registered Organization و registered Owner حالا متغیر های

تغییر دهی.

مخفی کردن سطل زباله :

اگر بخواهید یک میز گار تر و تمیز داشته باشید شاید بهتر باشد سطل آشغال را از آن بردارید از آن جا که این کار

مستلزم پاک کردن یک کلید در رجیستری میباشد توسیه میکنم قبل از این کار یک نسخه پشتیبان از این کلید بگیرید .

خوب حالا به سراغ کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\current version\ Explorer\Desktop\Namespace

اکنون کلیدی که در قاب سمت چپ با این برچسب مشخص شده است حذف کنید :

{645ff040-5081-101b-9f08-00aa002f954e}

این کار باعث از بین رفتن کلی سلط زباله نمیشود اما جلوی دسترسی کاربران به آن را میگیرد.

تغییر دادن مهلت زمانی برنامه ها :

وقتی که برنامه ای از کار میفتد ویندوز یک مقدار زمان مشخصی به آن فرصت میدهد تا سعی کند خود را از مخمصه

نجات دهد اما اگر فکر میکنید این مهلت زمانی زیاد است میتوانید آن را کم کنید برای این ممنظور به کلید زیر بروید :

HKEY_CURRENT_USER\Control panel\Desktop

را پیدا کنید مقدار این متغیر ۵٠٠ است مقدار را طوری کم کنید که یک مهلت Hung app Timeout سپس متغیر

عادلانه نیز به برنامه مریض الاحوال داده شده باشد.

تم و رنگ بندی صفحه ی خوش آمد گویی ویندوز را تغییر دهید :

به سراغ کلید زیر بروید :

HKEY_USER_DEFAULT\Software\Microsoft\Current version\Theme manager

را انتخاب کنید و مقدار حوزه ی Modify را پیدا کرده و سپس روی آن کلیک راست کرده و color Name اکنون متغیر

را فشار دهید و از رجیستری خارج شوید کامپیوتر را از نو بوت ok تغییر دهید شستی Metallic را به value data

کنید تا تغییرات را مشاهده نمایید.

را از گوشه ی سمت راست نوار عنوان بردارید : Comments پیوند

به کلید زیر بروید :

HKEY_CURRENT_USER\Control panel\Desktop

را انتخاب modify را از سمت راست پیدا کنید و سپس روی آن راست کلیک کرده و گزینه lameButtonEnabled متغیر

کرده مقدار آن را به ٠ تغییر دهید و سپس کامپیوتر را از نو بوت کنید.

برنامه های غیر ضروری را از کار بندازید :

نصب کردن برنامه های زیاد در کامپیوترتان میتواند رجیستری شما را با برنامه های غیر ضروری که در هنگام بالا آمدن

کامپیوتر به اجرا در می آیند به هم بریزدو این باعث کندی کامپیوتر و اشفال بخشی از حافظه سیستم میشود برای از

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

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Runonce

در اینجا میتوانید برنامه های غیر ضروری را حذف کنید کامپیوتر سپس کامپیوتر را از نو بوت کنید تا تغییرات را ملاحظه

کنید.

بوت شدن سریع ویندوز :

یک ویژگی جدید در ویندوز ایکس پی این است تمام فایلهای بوت را در کنار یکدیگر قرار میدهد و باعث یک بوت سریع تر

میشود .

به صورت مادرزاد این گزینه فعال است اما در بعضی از نسخه های ویندوز این طور نیست برای به کار انداختن آن به

رجیستری رفته و به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\/Microsoft\Dfrag

را برگزینید و modify را پیدا کرده و روی آن کلیک راست کرده و سپس از منوی آن گزینه BootOptimizeFunction متغیر

تغییر دهید تا فعال شود. Y سپس مقدار آن را به

: xp نمایش دادن پیغام در هنگام بالا آمدن ویندوز

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

کاربران برسد به نمایش در آید به این ترتیب عمل کنید :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\Current Version\Winlogon

را با هر اسم دیکری که میخواهید روی پنجره پیغامتان باشد عوض کنید . کلید legalnoticecaption کلید

را به هر پیغامی که میخواهید دردل پنجره ی پیغام به نمایش درآید تغییر دهید کامپیوترتان را از نو Legalnoticetext

بوت کنید تا تغییرات را ملاحظه نمایید.

از کار انداختن اجرای خودکار سی دی به طور کامل در ویندوز ایکس پی:

این کار احتیاجی به رجیستری ندارد و یک راه ساده تر وجود دارد :

computer را وارد کنید اکنون به gpedit.msc را انتخاب کنید و فرمان run را کلیک کنید و گزینه start شستی

را باز کنید در اینجا میتوانید گزینه ی system را کلیک کنید و زبانه ی administrator templates رفته و configuration

را پیدا کرده و آن را مطابق میل خود تغییر دهید. turn auto off مربوط به

: start از میز تحریر و منوی my computer برداشتن

my computer بعضی ها دوست ندارند کامپیوترشان بازیچه ی دست این و اون بشه بخاطر همین ترجیح میدهند که

بردارند روش کار طبق معمول از طریق انگولک کردن رجیستری میباشد . start را از روی میز تحریر یا منوی

ابتدا به رجیستری بروید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \ Policies\Nonennum

بسازید و نام آن را به صورت زیر بنویسید : DWORD اکنون یک متغیر از نوع

{20D04FE0-3AEA-1069-A2D8-08002B30309D}

را محو خواهید کرد و اگر به آن مقدار ١ بدهید دوباره به جای خود باز MY COMPUTER اگر به این متغیر مقدار ٠ بدهید

میگردد . یک بار کامپیوتر خود را از نو راه اندازی کنید تا تغییرات را ملاحظه کنید.

از کار انداختن راست کلیک در میز تحریر :

وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current version\Policies\Explorer

را به آن بدهید با دادن مقدار صفر به این NoViewContextMenu بسازید و اسم آن را DWORD یک متغیر جدید از نوع

متغیر منوی مزبور را از کار میندازید و با دادن مقدار ١ به آن دوباره آن را به کار می اندازید . از رجیستری خارج شوید و

ویندوز خود را از نو بوت کنید.

از مرورگر ویندوز : file برداشتن منوی

رجیستری را باز کرده و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\Policies\Explorer

بدهید اگر به این متغیر مقدار صفر بدهید حذف و اگر NofileMenu بسازید و به آن نام DWORD یک متغیر جدید از نوع

مقدار ١ بدهید به جای خود باز میگردد حال ویندوز را از نو بوت کنید.

مخفی کردن کلیه فقرات از میز تحریر :

وارد رجیستری شوید و کلید زیر را بیابید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

بگذارید اگر به این متغیر مقدار ١ بدهید کلیه فقرات NoDesktop بسازید و اسم آن را DWORD یک متغیر جدید از نوع

حذف و با دادن مقدار ٠ به حالت خود باز میگردد

اعمال این تغییرات نیاز به راه اندازی مجدد ویندوز دارد.

: start از کار انداختن تمام منوهای ویندوز و شستی

به کلید زیر بروید :

HKEY_CLASSES_ROOT\CLISID\

سپس کلید زیر را پیدا کنید :

{5b4dae26-b807-11d0-9815-00c04fd91972}

تنهاکاری که شما باید انجام بدهید تغییر دادن نام این کلید است که میتوانید با قرار دادن یک خط تیره قبل این نام این

کار را انجام دهید که این کلید به شکل زیر در می آید :

{-5b4dae26-b807-11d0-9815-00c04fd91972}

از کار می اندازد. start با این کار تمام منوهای برنامه های متعارف ویندوز و همچنین شستی

: setting از منوی Active Desktop برداشتن گزینه های

تقریبا به هیچ دردی نمیخورد پس بهتر آن را پاک کنید تا محیط کارتان خلوت شود کلید زیر Active Desktop گزینه های

را در رجیستری پیدا کنید :

HKEY_LOCAL_MACHINE_Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

بذارید . NoSetActiveDesktop بسازید و نام آن را DWORD اکنون یک متغیر جدید از نوع

اگر مقدار یک به آن بدهید تمام منوهای آن از بین میروند و اگر مقدار ٠ بدهید دوباره ظاهر خواهند شد .

جلوی دسترسی به اینترنت را بگیرید :

با انجام این کار میتوانید جلوی دسترسی به اینترنت را در تمام محصولات میکروسافت مثل مرورگر اینترنت و و افیس را

بگیرید برای این کار وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_Current_user\Software\Microsoft\Windows\Current Version\Internet Setting

اکنون در قاب سمت راست متغیرهایی را میبینید که با بعضی از آنها باید دست و پنجه نرم کنید به یکی از این متغیر ها

را تغییر داده و به آن یک نشانی آی پی و یک درگاه proxi server مقدار ١ بدهید و مقدار متغیر Proxi Enable به نام

جعلی که در کامپیوترتان وجود ندارد بدهید مانند : 10.0.0.1:5555 ( چهار عدد سمت چپ نشانی آی پی و چهار رقم

تشکیل میدهند. Ip:Port سمت راست شماره ی درگاه را به صورت

از کار انداختن سوابق اسناد اخیر :

اضافه میشود این ترفند start معمولا وقتی که فایل یل سندی را باز میکنید نام ان به فهرست اسناد اخیر در منوی

جلوی این کار را میگیرد :

کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

بسازید و مقدار یک به آن بدهید تا محدودیت NoRecentDocsHistory و به نام DWORD یک متغیر جدید از جنس

مزبور اعمال گردد حال کامپیوترتان را از نو بوت کنید.

توضیحات سه مربع حداقل و حداکثر و بستن را از بین ببرید :

هر وقت ماوس را روی سه مربع کنترلی که در گوشه ی سمت راست فوقانی هر پنجره ی ویندوز وجود دارد حرکت

کنید شرح مختصری در مورد هر کدام از آنها میبینید که این ترفند این توضیحات را از بین میبرد :

کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Control Panel \ Desktop

بگذارید حال اگر مقدار ٠ به آن بدهید MinMaxClose بسازید و اسم آن را string اکنون یک متغیر جدید از نوع حروفی یا

توضیحات اضافی از کار می افتد و اگر مقدار ١ به آن بدهید مجددا این امکان برقرار میشود سیستمتان را از نو بوت کنید.

: My Computer مخفی کردن درایوها از

این ترفند به شما این امکان را میدهد که بعضی از درایوها را مخفی کنید یا حتی میتوانید تمام درایوها را مخفی کنید

برای این کار وارد رجیستری شوید و این کلید را در آن پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \ Policies\Explorer

بسازید گردونه ها وقتی مقدارشان صفر باشد قابل دیدن هستند و اگر dword را از نوع NoDrives متغیر به نام

مقدارشان ١ باشد مخفی میشوند برای هر گردونه میتوانید به صورت زیر استفاده کنید :

A : 1

B : 2

C : 4

D : 8

E : 16

F : 32

G : 64

H : 128

I : 256

J : 512

K : 1024

والی آخر ....

را با هم D و ٨ برای C را مخفی کنید میبایست دو مقدار ۴ برای درایو D و گردونه c برای مثال اگر بخواهید گردونه

بدهید اما برای مخفی کردن NoDrive جمع کنید و مقدار ١٢ را بدست آورید این همان عددی است که باید به متغیر

بدهید . NoDrive تمام درایوها باید مقدار ۶٧١٠٨٨۶٣ را به متغیر

برای این که تغییرات را ملاحظه کنید باید سیستم خود را از نو بوت کنید.

جلوی دسترسی به محتویات درایو مورد نظرتان را بگیرید :

جواب میده و کار میکنه و کارش اینه که مانع دسترسی کاربران به درایوها از xp این ترفند فقط در ویندوزهای ٢٠٠٠ و

نیز نمیتواند موجب نمایش dir یا Run میشه به علاوه به اجرا در آوردن فرمان Explorer یا mycomputer طریق

شاخه های این گردونه شود

وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \ Policies\Explorer

بسازید وظیفه ی این متغیر دادن اجازه ی دسترسی به هر DWORD را از جنس NoViewDrive اکنون متغیری به نام

یک از گردونه های مجازی کامپیوترتان است .

درایوها وقتی مرئی هستند که مقدار صفر را به آن بدهید و هنگامی نامرئی میشوند که به آن مقدار ١ را بدهید .

مثل ترند قبل از جدول زیر استفاده کنید :

A : 1

B : 2

C : 4

D : 8

E : 16

F : 32

G : 64

H : 128

I : 256

J : 512

K : 1024

را مخفی کنید باید عدد ۴ و ٨ را با هم جمع کنید و مقدار آن را به متغیر بدهید . D و C به عنوان مثال اگر بخواهید درایو

اگر بخواهید تمام متغیر ها را مخفی کنید مقدار ۶٧١٠٨٨۶٣ را به این متغیر بدهید .

تغییر دادن نام و شکلک درایوها :

رجیستری را باز کنید و کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \Explorer\DriveIcons

در داخل این D اکنون یک کلید فرعی آن هم فقط با یک حرف که متناظر با درایو مورد نظرتان باشد بسازید برای مثال

بسازید ( توجه داشته باشید که نام درایوی که میسازید باید به DefaultIcon کلید فرعی یک کلید فرعی دیگر به نام

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

زیر باید ساخته شود و نشان داده شود :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version \Explorer\DriveIcons\D

را مطابق با نام و خط سیر کامل فایل آیکون مورد نظر را تعیین کنید . Default و مقدار پیش فرض آن یعنی

یادتون باشه کلید نه متغیر ) و مقدار ) defaultlabel باز هم از داخل کلید فرعی حرف درایو ، یک کلید فرعی دیگر به نام

My Zip Drive : را مطابق با نام درایو مورد نظرتان تعیین نمایید مانند default پیش فرض آن یعنی

حال سیستم خود را از نو بوت کنید.

: media Player از PlayList حذف آخرین

ابتدا وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Player

و جهت حذف لیست فایلهای پخش شده " زیر کلید " زیر را یافته محتویات آن را حذف کنید :

…\RecentFileList

های پخش شده " زیر کلید " زیر را یافته محتویات آن را حذف نمایید : URL و جهت حذف

: MediaPlayer در DVD فعال کردن ویژگیهای مربوط به

نمایش داده شود ، ابتدا کلید زیر را پیدا کنید : DVD ، MediaPlayer این امکان باعث میشود در

HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Player\Settings

قرار دهید . yes ایجاد کنید و مقدار آن را جهت فعال شده EnableDVDUI با نام string یک متغیر جداد از نوع

: MediaPlayer تغییر دادن عنوان پنجره

کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Software\Policies\Microsoft\WindowsMediaPlayer

کلیک Microsoft وجود نداشت آن را بسازید ) در پنل سمت جپ روی کلید windosmediaplayer ( در صورتی که کلید

تغییر دهید و WindowsMediaPlayer را انتخاب نمایید تا یک کلید جدید ساخته شود نام آنرا به key راست کنید و گزینه

در پنل سمت راست موارد زیر را انجام دهید :

ایجاد کرده و عنوان مورد نظر خود را در آن قرار دهید . Title Bar به نام String یک مقدار جدید از نوع

: *.dat نشان دادن فایلهای با پسوند

کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHIN > Software > Microsoft > Player > extensions

جدید به نام ٨ درست کنید(اگر String value کردن در ناحیه قاب سمت راست یک Right-Click بروید و با Description به

آخرین کلید موجود ٧ میباشد).

قرار دهید. Video CD (*.dat) را برابر Value data بر روی مقدار جدید ساخته شده دوبار کلیک کنید و

قرار *.dat جدید ایجاد کنید و مقدار آن را این بار فقط برابر String Value بروید و دوباره مانند مرحله قبل یک Types به

دهید.

هم موجود MUIDescription که استفاده میکنید ممکن است یک پوشه به نام Player Media بسته به نسخه ای از

قرار دهید. Video CD آن را برابر با Value Data مانند مراحل قبل ایجاد کنید و String value باشد. اگر چنین بود یک

را انتخاب کنید. Open گزینه File را باز کنید و از منوی Media Player را ببندید و Registry Editor

در آن لیست شده Video CD را باز کنید تا مطمئن شوید Files of type برای اطمینان از اعمال موفقیت آمیز تغییرات

است.

بالاترین کیفیت ) : ) high color نمایش آیکونهای ویندوز به صورت

اگر علاقمند هستید که آیکونهای ویندوز را با کمی کیفیت بالاتر و جزئیات بیشتری ملاحطه نمائید از این روش استفاده

کنید در نتیجه ویندوز آیکونها را با تمام کیفیت خود نشان میدهد:

(run >>> regedit ) را اجرا کنید regedit ابتدا برنامه

کلید زیر را بیابید :

HKEY _CURRENT_USER\CONTROL Panel \ Desktop\WindowsMetrics

بسازید (در صورتیکه وجود نداشت) و مقدار آن را برابر SHELL ICON BPP با نام STRING سپس یک مقدار جدید از نوع

توان کارت گرافیکی خود قرار دهید طبق مقدارهای زیر :

256 = 256 COLOR BIT

16=16 BIT COLOR

24 = 24 BIT COLOR

32 = 32 BIT COLOR

کنید و دوباره مقدار آن را اینبار RESTART برای مشاهده مخصوص تغییرات ابتدا مقدار آن را ٢۵۶ قرار داده و سیستم را

کنید تا تفاوت آن را احساس کنید . RESTART به ٣٢ تغییر دهید و سیستم را

هنگام بوت شدن ویندوز : NUMLOCK فعال کردن کلید

را باز کنید . REGEDIT -برنامه

-کلید زیر را پیدا کنید :

HKEY_CURENT_USER\CONTROL PANEL\KEYBOARD

ایجاد کرده و مقدار آن را ٢ قرار دهید . INITIALKEYBOARDLNDICATOR با عنوان STRING یک متغیر از نوع

: CDROM تعیین برنامه جهت اجرای سی دی های صوتی قرار داده شده در

کلید زیر را پیدا کنید :

HKEY_CLASSES_ROOT\AudioCD\Shell\Play\Command

ست شده است حال اگر Media Player در اینجا موجود است که معمولا توسط خود ویندوز به default یک متغیر به نام

قصد تغییر آنرا دارید به صورت زیر عمل کنید :

: Winamp تنظیم برای

"C:\Program File\Winamp3\Winamp3.exe" /CD:%1

یا اگر از برنامه دیگری استفاده میکنید آدرس آنرا وارد کنید .

کنید . reset حال جهت فعال شدن سیستم را

: AUTORUN کنترل کردن

کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\CDRom

سی دی ها را از کار بندازید به آن AUTORUN ایجاد کنید و برای اینکه AUTORUN و با نام DWORD یک متغیر از نوع

مقدار صفر و برای فعال کردن آن مقدار یک.

: ( walpaper ) -تغییر مسیر تصاویر زمینه

همان طور که میدانید تصاویر زمینه ویندوز قبل از نمایش در شاخه اصلی ویندوز قرار میگیرند در صورتی که بخواهید

مسیری دلخواه را برای گرد آوری و نمایش تصاویر زمینه اختیار نمایید ابتدا کلید زیر را پیدا کنید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\currentVersion

ایجاد کنید و نام آن را مسیر دلخواه خود که تصاویر در آن وجود دارند قرار Expandable String Value یک متغیر از نوع

قرار دهید ( توجه : ممکن ااست در بعضی از نگارش های ویندوز SystemRoot%\Web\Wallpaper% دهید و مقدار آنرا

اگر چنین متغیری را پیدا کردید نام آنرا به آدرس یا مسیر مورد نظر WallpaperDir این متغیر وجود داشته باشد با نام

خود تغییر دهید )

افزودن متن به ساعت سیستم :

به کلید زیر بروید :

HKEY_CURRENT_USER\Control Panel \ International

در صورتی که از قبل ایجاد نشده باشد ) قرار دهید و متن ) S ایجاد کرده و نام آنرا 1159 String حال یک متغیر از نوع

دلخواه خود را در آن وارد نمایید .

قرار دهید و متن دلخواه دیگری در آن قرار دهید . توجه S بسازید و نام آنرا 2359 STRING حال متغیر دیگری از نوع

داشته باشید که در ویندوزهای عربی یا فارسی میتوان متن را به فارسی نوشت.

تغییر رنگ های ویندوز :

ویندوز تغییر میدهید مشاهده میشود که برخی از رنگ ها ثابت Propertice هنگامی که الگوی رنگ ویندوز را از طریق

بوده و قابل تغییر نیستند برای برطرف کردن این موضوع به کلید زیر بروید :

HKEY_USERS\Default\Control Panel \ Colors

در این جا کلید عناصر تصویر قابل دسترس میباشند که شما میتوانید آنها را تغییر دهید رنگها به صورت کد رنگ میباشند

که با دادن شماره های ١ تا ٢۵۵ میتوانید رنگها را مشاهده کنید.

تنظیم پنجره خوش آمدگویی ویندوز :

به کلید زیر بروید :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows \ CurrentVersion\Explorer\Tips

قرار دهید که در NT و XP خوب شما میتوانید در این قسمت ۴٨ نکته در ویندوز ٩٨ و ٩۵ و ۵٠ نکته در

بسازید و به آن نامی از STRING VALUE هنگام بالا آمدن ویندوز برای شما نمایش دهد شما میتوانید متغیرهایی از نوع

٠ تا ۵٠ بدهید و نکات خود را در آن قرار دهید تا با هر بار بالا آمدن ویندوز به نمایش درآید این نکته بسیار بسیار جالبی

است که خیلی کارا میشه باهاش کرد مانند نکاتی که میخواهیم کاربران ویندوز آنها را رعایت کنند و ....

اصلاح هویت :

آیا اطلاعات شما به درستی در کامپیوتر وارد شده است ؟ برای حصول اطمینان از این موضوع میتوانید از کلید زیر

استفاده کنید :

HKEY_CURRENT_USER\Software \ Microsoft \ MS Setup(ACME)\User info

: Display Propertice پس زمینه ویندوز ) ازپنجره ) Desktop حذف گزینه

را انتخاب کرده باشید گزینه هایی را در آن میبینید که Propertice اگر روی صفحه میز کار راست کلیک و سپس گزینه

هر کدام کار خاصی را انجام میدهند حال شما میتوانید تمام آنها را پاک کنید :

ابتدا وارد رجیستری شوید و کلید زیر را پیدا کنید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies

بگذارید ( System را انتخاب کرده و اسم آن را Key گزینه New کلیک راست کرده و از منوی Policies حال روی کلید

در آن ایجاد کرده و نام آنرا Binary Value در صورتی که از قبل ایجاد نشده باشد ) حال متغیری از نوع

00 وارد کنید و برای مشاهده تغییرات سیستم را از نو بوت 00 00 قرار داده و مقدار آنرا 01 NoDispBackgroundPage

کنید .

: Display Propertice از پنجره Screen Saver حذف گزینه

شاید شما دوست نداشته باشید که کسی در محافظ صفحه نمایش شما دست کاری کند برای این کار شما باید به

کلید زیر بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

را ایجاد کرده اید ) system (که در ترفند قبلی کلید

00 قرار دهید و 00 00 قرار داده و مقدار آنرا : 01 NoDispScrSavPage ایجاد و نام آنرا Binary Value متغیری از نوع

سیستم را از نو بوت کنید .

: Display Propertice از پنجره Appearance حذف گزینه

شاید شما رنگهایی را برای ویندوز خود انتخاب کرده باشید و نخواهید کسی آنها را تغییر دهد برای این کار به کلید زیر

بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

00 00 00 قرار داده و مقدار آنرا : 01 NoDispAppearancePage ایجاد و نام آنرا Binary Value متغیری از نوع

قرار دهید و سیستم را از نو بوت کنید .

: Display Propertice از پنجره Settings حذف گزینه

اگر شما برای ویندوز خود و تصویر مانیتور اندازه ای را مشخص کرده اید و میخواهید کسی آنرا تغییر ندهد به کلید زیر

بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

00 قرار دهید و 00 00 قرار داده و مقدار آنرا : 01 NoDispSettingsPage ایجاد و نام آنرا inary Value متغیری از نوع

سیستم را از نو بوت کنید .

: Display Propertice ممانعت از دستیابی به

و حالا رسیدیم به خود این پنجره اگر شما دوست ندارید که هیچ کس به این پنجره دسترسی داشته باشد میتوانید

را حذف کنید : Display Propertice خود پنجره

به کلید زیر بروید :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

قرار داده و اگر به آن مقدار ١بدهید حذف و اگر مقدار NoDispCPL ایجاد نموده و نام آنرا DWORD حال متغیری از نوع

صفر بدهید فعال میشود.

گردان

1mo-mah.persianblog.ir

mohsen_mahyar@yahoo.com

   + MOHSEN GHASEMI - ۱:۳٧ ‎ق.ظ ; ۱۳۸٩/٦/۱٩

فصل چهارم تا پایان فصل هشتم برنامه نویسی به زبان اسمبلی

 

برنامه نویسی به زبان اسمبلی

یک توضیح با یک کارکتر سمیکالن شروع شده وهر جا که نوشته شود اسمبلر فرض می کند که

تمام کارکترهای سمت راست آن تا انتهای خط، توضیحات محسوب می شوند.

چون یک توضیح فقط در لیست یک برنامه اسمبل ظاهر شده وهیچ کد ماشینی را تولید نمی کند

می توانید بدون اینکه تاثیری در اندازه برنامه و زمان اجرای آن داشته باشد هر تعداد از توضیحات

را در داخل یک برنامه بگنجانید.

می باشد. Comment روش دیگر برای نوشتن توضیحات، استفاده از دستورالعمل

کلمات رزو شده

که اعمالی می باشد که کا مپیوتر می تواند اجرا کند،دستورات ADD , MOV دستورالعملها مانند

که برای ارائه اطلاعاتی به اسمبلر مورد استفاده قرار می گیرند SEGMENT یا END اسمبلر مانند

که در عبارات مورد استفاده قرار می گیرند و نمادهای از پیش تعریف SIZE,FAR عملکردها نظیر

که اطلاعات را به برنامه شما برمی گرداند. در صورتی که از کلمات Model , Data شده مانند

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

شناسه ها

می باشند: (label) دو نوع شناسه ها نام و بر چسب

١. نام به آدرس یک داده اشاره می کند.

در MAIN ٢. برچسب ، به آدرس یک دستورالعمل روال یا سگمنت اشاره می کند، مانند

MAIN PROC FAIR : دستورالعمل زیر

قوانین یکسانی برای نام ها و بر چسب ها ، مورد استفاده قرار می گیرد. یک شناسه می تواند از

کاراکتر های زیر استفاده کند.

Z تا Q و Z تا A - حروف الفبا

- ارقام 0 تا 9 (نباید اولین کاراکتر یک رقم باشد.)

- کاراکتر های ویژه علامت (؟) خط زیرین (-) علامت ($) کاراکتر(@)

نقطه ( ٠) ( نباید اولین کاراکتر باشد)

(state ments) احکام

یک برنامه اسمبلی دارای مجموعه ای از احکام می باشد. دو نوع از احکام عبارتند از:

که اسمبلو آنها را به کد هدف ترجمه می کند. ADD,MOV ١.دستورالعملهای مانند

که به اسمبلر می گویند که عمل معینی مانند تعریف یک قلم داده را (directives) ٢.دستورات

انجام دهد.

فالب یک حکم در اینجا آمده است که کروشه ها یک عامل اختیاری را نشان می دهند.

Title,Page دستورات

اسمبلر برای کنترل فرم لیست یک برنامه اسمبل شده به کار می روند هدف Title,Page دستورات

این دو دستور همین بوده وهیچ تاثیری روی اجرای بعدی یک برنامه ندارند.

اسمبلر ، تعداد ماکسیمم خطوط برای لیست کردن در Page در ابتدای یک برنامه ، دستور : Page

یک صفحه و ماکسیمم تعداد کاراکترهای روی یک خط را نشان می دهد.

Page { شکل کلی: { پهنا} {طول

ممکن است بخواهید که درفایل لیست برنامه یک صفحه در خط مشخصی مانند انتهای یک

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

عملوندی را بنویسید.

اسمبلر استفاده کرده و عنوان یک برنامه را در خط دوم در هر Title می توانید از دستور : Title

صفحه از لیست برنامه چاپ کنید.

اسمبلر SAGMENT دستور

دارای یک یا چند سگمنت می باشد. یک سگمنت پشته که EXE یک برنامه اسمبلی در قالب

حافظه پشته را تعریف کرده، یک سگمنت داده ها که اقلام داده ها را تعریف کرده و........

segments , : دستورات اسمبلری که برای تعریف یک سگمنت بکار می روند عبارتند از

و دارای قالب زیر می باشد. ENDS

توضیحات عملوند عمل نام

نام segment و پارامترها Begin segment

نام ENDS و End segment

(align) عملوند یک دستور سگمنت می تواند دارای سه نوع پارامتر باشد: تنظیم

که در قالب زیر نوشته می شوند : (class) ورده (combine). ترکیب

نام segment "رده" ترکیب تنظیم

نوع تنظیم: پرامتر تنظیم مرزی را نشان می دهد که سگمنت از آنجا شروع خواهد شد.اگر نوع تنظیم

باشد، سگمنت مزبور روی مرز پراگراف تنظیم می شود، به این معنی که آدرس شروع PARA برابر

10 بخش پذیر بوده. H آن بر ١۶ یا

در نظر می گیرد. para ، اگر از پارامتر تنظیم چشم پوشی کنید اسمبلر بطور پیش فرض

نوع ترکیب: پارامتر ترکیب نشان می دهد که این سگمنت را با سگمنت های دیگرپس از اسمبل

public , common , stack : شدن در مرحله لینک ترکیب کنند.انواع ترکیب عبارتند از

برای مثال، سگمنت پشته معمولا به صورت زیر تعریف می شود. AT و عبارت

نام Sgment PARA stack

اگر بخواهید برنامه های اسمبل شده جداگانه رادر موقع لینک کردن، ترکیب کنید می توانید

استفاده کنید،در غیر این صورت، اگر یک برنامه قرار نیست با برنامه های common , poblic از

را بنویسید. none دیگر ترکیب شود، باید این پارامتر راحذف کرده و یا کلمه

که در داخل دو آپوستروف ( ) قرار می گیرد ، برایگروه بندی (calss) نوع رده:پارامتر رده

‘code’ سگمنتهای مرتبط در هنگام لینک کردن مورد استفاده قرار می گیرد. این کتاب از رده های

برای ‘stack’ برای سگمنت داده ها و ‘data’ ، ( برای سگمنت کد (توسط میکروسافت معرفی شده

سگمنت پشته استفاده می کند.

PROC دستور

سگمنت که حاوی کد قابل اجرای یک برنامه می باشد که از یک یا چند روال تشکیل می شود که

تعریف می شوند. PROC با دستور

ASSVME دستور

برای آدرس دهی سگمنت داده DS برای آدرس دهی پشته ، از ثبات SS از ثبات EXE یک برنامه

برای آدرس دهی سگمنت کد استفاده می کند. CS ها و از ثبات

در اینجا ، باید هدف از هر سگمنت برنامه را به اسمبلر اطلاع دهید. دستور مورد نیاز برای این کار

می باشد که در سگمنت کد به صورت زیر نوشته می شود. ASSVME دستور

عملوند عمل

ASSVME ss : و نام پشته DS : و نام سگمنت داده CS: نام سگمنت کد

مرتبط کند ss به این معنی است که اسمبلر باید نام سگمنت پشته را با ثبات ss : عملوند نام پشته

وبه روش مشابه برای عملوندهای نشان داده شده دیگر عمل می کند. عملوندها می توانند به هر

به صورت نام سگمنت داده ES می تواند دارای یک عامل نیز برای ASSVME ترتیبی ظاهر شوند

باشد. ES : ها

استفاده نمی کند،می توانید از رجوع به آن صرفنظر کرده ویا عملوند ES اگر برنامه شما از ثبات

را وارد کنید. ES:nothing

فقط پیغامی است تا اسمبلر در تبدیل کد نمادی به کد ASSVME، همانند سایر دستورات اسمبلر

ماشین کمک کند وهنوز ممکن است مجبور باشید که دستوراتی را بنویسید که بطور فیزیکی

آدرسهایی را در ثباتهای سگمنت در زمان اجرا قرار دهید.

END دستور

به یک روال خاتمه می ENDP به یک سگمنت ودستور ENDS همانطور که قبلا ذکر شد، دستور

به کل برنامه خاتمه داده وبه عنوان آخرین دستور در یک برنامه ظاهر می END دهند. یک دستور

شود قالب کلی آن به صورت زیر است. عملوند عمل

END [procname]

اگر قرار نیست برنامه اجرا شود، عملوند می تواند خالی باشد،برای مثال، ممکن است بخواهید که

فقط تعارف داده ها را اسمبل کرده و یا ممکن است بخواهید که برنامه را با یک ماژول دیگری

معرفی شده به PROC لینک کنید. در بسیاری از برنامه ها این عملوند شامل نام اولین و یا تنها

می باشد که اجرای برنامه قرار است از آنجا شروع شود. FAR صورت

دستورالعملهای مقدار دهی اولیه یک برنامه

psp را برای اجرا از دیسک به درون حافظه می خواند یک EXE وقتی بار کننده برنامه یک برنامه

بطول ٢۵۶ بایت روی مرز پاراگراف در داخل حافظه ساخته وبلافاصله برنامه را به دنبال آن ذخیره

می کند. سپس بار کننده کارهای زیر را انجام می دهد:

بار می کند. CS -آدرس سگمنت کد را در

را در ثباتها. psp بار کرده و آدرس ss -آدرس پشته را در

دستورات ساده شده سگمنت

اسمبلر برخی راههای میان بر در تعریف سگمنت ها را ارائه می دهد. برای استفاده کردن از آنها

باید قبل تعریف هر سگمنت،مدل حافظه را مقدار دهی کنید.قالب کلی به صورت زیر می باشد.

.MODEL مدل حافظه

باشد نیازهای هر مدل عبارتند از: large , compact,medium,small,tiny مدل حافظه می تواند

تعداد سگمنتهای داده تعداد سگمنتهای کد مدل

Tiny * *

small ١ ١

medium ١ بیش از ١

compact ١ بیش از ١

Large بیش از ١ بیش از ١

نشده liny می توانید از هر یک از این مدل ها برای برنامه مستقل ( برنامه ای که به برنامه دیگر

com برای استفاده کردن از برنامه Tiny مدل TASM4,MASM باشد)استفاده کنید. در اسمبلرهای 6

کدها small 64 بایت قرار دارند. در مدل k طراحی شده است که داده ها،کد وپشته دریک سگمنت

model 64 دیگری جا می گیرند با دستور k 64 و داده ها در یک سگمنت k در داخل یک سگمنت

مورد نیاز را تولید می کند. Assume اسمبلر بطور اتوماتیک دستور

قالب های کلی دستوراتی که سگمنت های پشته،داده ها وکد را تعریف می کنند به صورت زیر می

stack { باشند: {اندازه

Data

code { {نام

Ends مورد نیاز و دستور segment هر یک از این دستورات موجب می شوند که اسمبلر دستور

متناظر را تولید کند.نام سگمنت های پیش فرض (که نباید تعریف کند)عبارتند از:

ضروری می باشند txet,data برای سگمنت کد).کاراکتر خط زیرین در ابتدای ) text,data,stack

همانطورکه قالب کد گذاری نشان می دهد،می توانیدنام پیش فرض سگمنت کد را تغییر دهید

اندازه پیش فرض پشته برابر ١٠٢۴ بایت بوده و می توانیدآنرا صریحا انتخاب کنید.

استفاده ds دستورالعملهایی که اکنون برای مقدار دهی اولیه آدرس سگمنت داده ها در داخل ثبات

MOV DS, AX ,MOVS AX , @data می کنید عبارتند از

اسمبلر EXIT ,Startup دستورات

.Exit , برای آسان نمودن مقدار دهی اولیه برنامه و خاتمه دادن آن دستورات MASM اسمبلر

دستورالعملهایی را برای مقداردهی اولیهثباتهای سگمنت .startup. را معرفی کرده است .startup

را برای خارج شدن از INI 21h 4 از ch دستورالعملهای تابع Exit تولید می کند در حالیکه دستور

برنامه تولید می کند.

استفاده می کند. ExitCode,startup code از اصطلاحات TASM اسمبلر

تعریف داده ها:

تعریف ثابتها،نواحی کاری و EXE همانطور که بیان شد.هدف سگمنت داده ها در یک برنامه

نواحی ورودی/خروجی می باشد.اسمبلر اجازه تعریف اقلام داده هابا طولهای گوناگون را بر حسب

یک کلمه را DW یک بایت و DB، دستورات اسمبلریکه داده ها راتعریف می کنندمی دهد:برای مثال

تعریف میکند.یک قلم داده ممکن است دارای یک مقدارتعریف نشده(مقداردهی نشده)بوده ویا

حاوی یک مقدار ثابت باشد.که بصورت یک رشته کاراکتری یا یک مقدار عددی تعریف شده

[name] Dn expressino . است.قالب کلی داده هابه صورت زیر می باشد

برنامه ای که به یک قلم داده مراجعه می کند،این کار را به وسیله یک نام انجام می دهد. : name

DW،( بایت ) DB: دستوراتی که اقلام داده ها را تعریف می کنند عبارتنداز : ”Dn” دستوراسمبلر

١٠ بایت) که هر کدامبه )DT چهار کلمه یا ٨ بایت) و )DQ،( کلمه دور )DF،( کلمه مضاعف )DD،( (کلمه

به ترتیب کلمات MASM صورت صریع طول داده تعریف شده را نشان می دهد. اسمبلر 6

برای دستورالعملها معرفی کرده است. Tword,Qword,Fword,Dword-22/word-Byte

عبارت در یک عملوند ممکن است یک مقداربدون ارزش اولیه یا یک ثابت (expression) عبارت

اولیه باشد برای نشان دادن یک داده بدون مقدار اولیه عملوند را با یک علامت سوال تعریف کنید.

مثال : FLDA DB ?

یک عبارت ممکن است دارای چند ثابت باشد که بوسیله کاراکتر کاما(،)از یکدیگر جدا شده است

FLDA DB/Byte وفقط به اندازه طول یک خط محدود می باشد،مثل ........, 21,22,23

معادل مراجعه به اولین FLDA اسمبلر این ثابت ها را در بایتهای مجاور تعریف می کند.مراجعه به

در نظر بگیرید)و FLDA+o ثابت یک بایتی یعنی ٢١ می باشد (می توانستید بایت اول رابه صورت

معادل مراجعه به ثابت دوم یعنی ٢٢ می باشد برای مثال دستورالعمل FLDA+l مراجعه به

MOV AL,FLDA+3

انتقال می دهد همچنین تکرار ثباتها در یک عبارت در یک قلم به AL 18 ) را به ثبات h) مقدار 24

مجاز می باشد. name DN تعداد Dup( صورت قلمی (عبارت

1/ DW/word 10 Dup (?)

2/ DB/Byte 5 Dup (12)

3/ DB/Byte 3 Dup (5 Dup 4 )

44444 ) را تولید کرده واین مقدار را سه بار تکرار کرده ومقدار دهی ) مثال سوم پنج کپی از رقم 4

اولیه کند.

رشته های کاراکتری:

رشته های کاراکتری برای داده های توصیفی نظیر نام افراد و توصیف محصولات مختلف به کار می

تعریف شده و یا داخل کوتیشن مضاعف ”PC” رود پشته در داخل کوتیشن های تکی نظیر

تعریف می شود اسمبلر رشته های گاراکتری را به صورت کد هدف در قالب عادی ”PC” نظیر

تنها قالبی (Byte یا ) DB,MASM اسکی و بدونکوتیشن های ابتدا وانتها ذخیره می کند. در اسمبلر

است که یک رسته کاراکتری با بیش از دو کاراکتررا تعریف کرده وآنها را به ترتیب از چپ به

قالب متعارف برای تعریف داده های DB راست ذخیره می کند(شبیه اسامی و آدرسها)در نتیجه

کاراکتری با هر طولی می باشدیک مثال عبارت است از:

23/ DB , strawberry jam

اگر رشته شامل یک کوتیشن تکی یا کوتیشن مضاعف باشد می توانید آنرا به یکی از دو روش زیر

DB “crazy sams CD Emporium” . تعریف کنید

DB Crazy sam “s CD Emporium”

ثابت های عددی:

ثلبتهای عددی برای تعریف مقادیر حسابی و آدرسهای حافظه بکار می روند.یک ثابت در داخل

در مقدار H کوتیشن قرار نمی گیرد.اما پس از آن می توان یک مشخص کننده مبنا ذکر نمود مانند

شانزده شانزدهی برای اکثردستورات تعریف داده ها ، اسمبلرثابت های عددی تعریف شده را به

مبنای شانزده شانزدهی تبدیل کرده و بایت های تولید شده را در کد هدف به ترتیب معکوس،از

راست به چپ ذخیره می کند.

قالب های عددی مختلف به شرح زیر می باشند:

استفاده کرد استفاده B دودویی: در قالب دودوی می توان از ارقام دودویی 1,0 به دنبال آن از حرف

معمولی از قالب دودویی ذکر کردن مقادیر برای دستورالعملهای پردازش کننده بیت ها یعنی

می باشند. Test,xor,OR,AND

استفاده کرد D دهدهی:درقالب دهدهی می توان از ارقام ٠ تا ٩ و به دلخواه به دنبال آن از حرف

اسمبلر مقادیر دهدهی را به کد هدف دودویی تبدیل کرده و آنها را درقالب شانزده شانزدهی نمایش

می دهد.

استفاده می شود. H و به دنبال آن از حرف F شانزده شانزدهی:در این قالب از ارقام 0تا

چون اسمبلرعددی را که با یک حرف شروع شود برابر نام یک نماد فرض می کند،لذا رقم اول

یک ثابت شانزده شانزدهی بایستی از ٠تا ٩ باشد.

اعداد حقیقی:اسمبلر یک مقدار حقیقی داده شده را برای استفاده کردن با یک کمک پردازنده عددی

به قالب ممیز شناور تبدیل می کند از تفاوت بین استفاده از کاراکترها وثابت های عددی اطمینان

حاصل کنید.

عملوندهای دستورالعملها

یک عملوند منبع داده ها برای یک دستورالعمل جهت پردازش می باشد. برخی از دستورالعملها

به عملوند نیازی ندارند.درحالیکه دستورالعملهای دیگر دارای یک یا چند RET و CLC مانند

عملوند می باشد اگر در جایی دو عملوند وجود داشته باشد،عملوند دوم،عملوند منبع می باشد که

حاوی داده ای است که ارسال شده(بلاواسطه)ویا حاوی آدرس (ثبات یا حافظه)داده مورد نظر می

باشد.عملوند منبع توسط دستورالعمل تغییر داده نمی شود عملوند اول،عملوند مقصد می باشد که

حاوی داده مورد نظر در یک ثبات یا حافظه می باشد که قرار است پردازش شود قالب

دستورالعملها به صورت زیر می باشد.

[lable:] operation operand 1,operand 2

عملوندهای ثابت

در این نوع، ثبات نشان دهنده نام یکی از ثبات های ٨و ١۶ یا ٣٢ بیتی می باشد.بسته به دستورالعمل

ثبات ممکن است در عملوند اول،عملوند دوم ویا در هر دو ظاهر شود.

Worda Dw ? define a word

Mov DX,Worda ,register in first operand

Mov worda . cx ,register in second ... ....

Mov EDX , EBX ,register in both operand

چون پردازش داده ها بین ثباتها هیچ مراجعه ای به حافظه ندارد لذا این سریعترین نوع عمل است .

عملوندهای بلا واسطه

در قالب بلاواسطه عملوند دوم حاوی یک مقدار ثابت یا یک عبارت می باشد(عملوند اول هرکز

نبایستی یک مقدار بلاواسطه باشد.)مقصد در عملوند اول طول داده را تعریف می کند و ممکن

است یک ثبات یا یک مکان حافظه باشد.

Count DB ?

ADD BX,25 ,add 25 to BX

Mov count,50 ,move 50 to count

عملوندهای مستقیم حافظه

در این قالب ، یکی از عملوندها به یک مکان حافظه مراجعه کرده و عملوند دیگر به ثبات مراجعه

می کند(تنها دستورالعملهایی که هر دو عملوند می توانند به طور مستقیم حافظه را آدرس دهی کنند

ثبات سگمنت پیش فرض برای آدرس دهی داده ها در ، DC ثبات .( Cmps,movs عبارتنند از

حافظه می باشد.

Worda DW o ,Define a word

Bytea DB o ,define a Byte

Mov BX, worda

ADD ByteA , DL

Mov CX,DS:[38BOH]

INC ByteA PTR [1BOH]

دو مثال آخر از کروشه برای نشان دادن اندیس جهت مراجعه به حافظه استفاده می کند(یک مقدار

ترکیب می شود)اگر از کروشه استفاده نشود مثلا در DS 38 با آدرس واقع در BOH افست مانند

یک مقدار بلاواسطه را نشان می دهد. move cx 38 و BOH

1 قرار دارد یک واحد افزایش می دهد. BOH مثال آخر بایتی از حافظه را که در آفست

1] فقط یک مکان حافظه را نشان می دهد لازم است که از تغییر دهنده BOH] از انجا که عملوند

برای تعریف طول استفاده کنید. Byte PTR

Codetbl DB 20 DUP (?)

Mov CL, Codetbl [3]

Mov CL, Codetbl+3

از یک مشخص کننده اندیس برای دستیابی به بایت چهارم استفاده می کند mov اولین دستورالعمل

دوم از عملکرد+ استفاده کرده و دقیقا همان کار قبلی را انجام می دهد. mov دستورالعمل

عملوندهای غیر مستقیم

آدرس دهی غیر مستقیم تکنیک پیشرفته ای است که از قابلیت کامپیوتر برای آدرس دهی افست

می BP,SI,DI,BX سگمنت استفاده می کند. ثباتهای که برای این منظور به کار می رود،عبارتند از

برای SI,DI,BX باشند که در داخل کروشه به عنوان عملگیر اندیس نوشته می شوند.ثباتهای

مرتبطمی DS:SI,DS:DI,DS:BX بصورت DS پردازش داده های داخل سگمنت داده ها با ثبات

مرتبط می باشد که SS:BP به صورت ss برای مدیریت داده ها در پشته با ثبات BP باشندثبات

برای فراخوانی زیر برنامه ها وانتقال دادن پارامترها مورد بحث قرار خواهدگرفت.

موقعی که عملوند اول شامل یک آدرس غیر مستقیم می باشند.عملوند دوم به یک ثبات یا یک

مقدار بلاواسطه مراجعه می کند.وقتی که عملوند دوم شامل یک آدرس غیر مستقیم می باشد،

به اسمبلر می گوید وقتی که [DI] عملوند به یک ثبات مراجعه می کند.یک آدرس غیر میستقیم مانند

خواهد بود. DI برنامه بعدا اجرا می شود آدرس حافظه مورد استفاده در ثبات

دوم از آدرس واقع Mov. مقدار دهی می کند Dataval را با آدرس افست BX اول Mov در مثال زیر

Dataval برای ذخیره کردن عدد ٢۵ در مکان حافظه ای که به آن اشاره می کند یعنی BX در

Dataval DB استفاده می کند. 50

MOV BX ,offset Dataval

MOV [BX],25

می باشد. هر چند که mov Dataval , معادل با نوشتن دستورالعمل 25 MOV تاثیر دو دستورالعمل

کاربردهای آدرس دهی دارای اندیس زیاد بدیهی نیست.دستورالعمل زیرعدد صفر را به مکانی که

mov [BX+2] ,o : قرار دارد ذخیره می کند Dadval بلافاصله دو بایت پس از

به معنی آدرس [BX+DI] می توانید ثباتها را نیز در یک آدرس غیر مستقیم ترکیب کنید: برای مثال

می باشد. DI به علاوه آدرس واقع در BX واقع در

نشان دهنده یک عملوند غیر SI یا DI,BX,BP توجه کنید که یک مراجعه در داخل کروشه به ثبات

مستقیم بوده و پردازنده وقتی که برنامه در حال اجراست با محتوی ثبات مورد نظر به عنوان یک

آدرس افست رفتار می کند.

ADD CL,[BX] ,2nd operond =DS:BX

MOV Byte ptr[DI],25 ,1st operond =DS:DI

ADD [BP] ,CL ,1st operond =SS:BP

MOV جابجای آدرس:این روش از جابجایی آدرس برای یک عملوند استفاده می کند.دستورالعمل

Data TAB یک جدول ۴٠ بایتی) انتقال می دهد،دقیقا جای دو ) Data TAB را به BL زیر محتوی

در موقع اجرای برنامه تعیین خواهد شد. DI که با محتوی

Datatab DB 40 DUP(?)

MOV datatab[DI] ,BL

اندیس گذاری روی ٨٠٣٨۶ و پردازهای پس از آن در این پردازه ها ،یک آدرس از ترکیب یک یا

چند ثبات عمومی ،یک افست و یک عامل مقیاس گذاری ( ١و ٢و ۴یا ٨)کد مربوط با محتوی یکی از

ثباتها می باشد بدست می آید.

MOV دستورالعمل

داده ای را که با آدرس عملوند دوم مشخص می شود ، به آدرس عملوند اول ، MOV دستورالعمل

منتقل می نماید(کپی می کند)فیلد ارسالی تغییر داده نمی شود.عملوندهای که به حافظه یا ثباتها

مراجعه می کنند باید از نظر اندازه سازگار باشند(یعنی هر دو باید، طول بایت،کلمه یا کلمه مضاعف

به صورت زیر است .مقدار بلاواسطه/حافظه/ثبات MOV باشند قالب کلی دستورالعمل

[lalde:] MOV وحافظه/ثبات

با در نظر گرفتن اقلام زیر آمده است: MOV در اینجا ۴ مثال معتبر

Bytefld BW ?

Wordfld DW ?

١.انتقال ثبات

MOV EDX,ECX ,Register to Register

MOV DS , BX ,Register to segment register

MOV Byteefld,DH ,Register to memory,direct

MOV [DI] ,BX ,Register to memory , Indirect

٢.انتقال مقادیر بلاواسطه

MOV CX,40 ,Immediate to register

MOV Bytefld,40 ,Immediate to memory-direct

MOV Wordfld [BX],40 ,Immediate to memory-indirect

٣.انتقال حافظه مستقیم

MOV CH,Bytefld ,memory to Register,direct

MOV CX,Wordfld [BX] ,memory to Register,indirect

٣.انتقال ثبات سگمنت

MOV CX,DS ,segment register to Register

MOV Wordfld,DS ,segment Register to memory

می توانید به یک ثبات یک بایت،یک کلمه یا یک کلمه مضاعف را منتقل کنید.عملوند دوم فقط

CH روی بخش مورد نظر ثبات عملوند اول تاثیر می گذارد،برای مثال انتقال دادن یک بایت به

عبارتند از: MOV تاثیری ندارد، عملیات غیر معتبر CL روی

حافظه-به-حافظه(این را همیشه به خاطر داشته باشید)مقدار بلاواسطه-به ثبات سگمنت وثبات

وثبات سگمنت-به-ثبات سگمنت.انجام این عملیات به بیش از یک دستورالعمل نیاز دارد.

فصل ٧ ،مجموعه دستورالعملهای کامپیوتر:

هدف:تشریح کد ماشین و ارائه توصیفی از مجموعه دستورالعملهای کامپیوتر.

مقدمه:این فصل کد ماشین را شرح می دهدولیستی از دستورالعملهای نمادی به همراه شرحی از

اهداف آنها ارائه می دهد.

بسیاری از دستورالعملها دارای هدف مشخصی می باشند.بطوریکه یک کد دستورالعمل زبان ماشین

١ بایتی کافی باشد.

هیچ یک از این دستورالعملها، موجب مراجعه مستقیم به حافظه نمی شوند.دستورالعملهای که یک

عملوند بلاواسطه، دوثبات،یا یک رجوع به حافظه را مشخص می کنند خیلی پیچیده هستند و به دو

یا چند بایت کد ماشین نیاز دارند.

کد ماشین دارای یک قید ویژه برای نشان دادن یک ثبات مخصوص وقید دیگری برای مراجعه به

حافظه به وسیله یک بایت حالت آدرس دهی می باشد.

نشان گذاری ثبات

دستورالعملهایی که به یک ثبات مراجعه می کنند ممکن است حاوی ٣بیت باشند که ثبات