الانتقال إلى المحتوى

قراءة REGISTERY


غريب

Recommended Posts

الاخ الكريم
استخدامات READ_REGISERY كثيرة
ممكن توضحلنا ماهو الغرض من وراء استخدامها

تم تعديل بواسطة Admin05
رابط هذا التعليق
شارك

السلام عليكم
read_registry لها العديد من الاستخدامات احداها
قراءة قيمة معينة مثل قراءة مسار تنفيذ البرنامج الذي يتم تشغيله كالتالي :

هذه الجملة تضاف في اول شاشة فقط من شاشات النظام
:GLOBAL.PATH := WIN_API_ENVIRONMENT.read_registry('HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE','PATH_APP',TRUE);
Host(:GLOBAL.PATH||'Azharo.exe');


ولكي يتم تنفيذ هذه الاكواد يجب ان تقوم بعمل
Attached Libraries على هذا الفورم
D2KWUTIL.PLL (تأتي مع الاوراكل )


الأن تذهب الى Run وتقوم بتشغيل Regedit وتضيف في المكان المحدد في الجملة السابقة
New string Value وتسميها PATH_APP
وتضع في Value data المسار الذي تريده مثلا (D:\Systems\smartSurgeon)

وعند مناداة اي شاشة تستخدم هذه الجملة
CALL_FORM(:GLOBAL.PATH||'forms\master.FMX', hide, DO_REPLACE);

ولمناداة التقرير تستخدم
Run_Product(REPORTS,:GLOBAL.PATH||'\REPORTS\MasterData.REP', ASYNCHRONOUS, RUNTIME,FILESYSTEM,'X', NULL);

ارجو ان اكون قد استطعت توصيل هذه الفكرة

رابط هذا التعليق
شارك

الاخت azharo
مشكورة على المعلومة ولكن لدي سؤال هو كيف يتم قراءة خصائص API بمعنى معرفة الاجراءات الجاهزة عن طريق الملفات المطروحة في ويندوز واقصد بدلك ملفات DLL وادا كان لك استخدامات سابقة لأي استخدامات للغات تتعامل مع object orinted مثل السي وغيرها ووووو الجافا التي نحن بصدد التعامل معها والتي تسهل علينا التعامل مع لغة الالة.............................
هل هناك طريقة من التعامل مع ملفات API وقراءة محتواها ادا كان كدلك ارجو ان توضحيها لنا لكي يستفيد الاخوة منها مع مثال
طبعا غير طريقة التعامل معها عن طريق OLE او OCX فهي طريقة عقيمة

رابط هذا التعليق
شارك

أخي Admin05
للاسف الشديد ليس لدي معلومات كافية بخصوص هذا الموضوع
ولكنني اذا احتجت الى فكرة معينة اقوم عندها بالبحث وسؤال ذوي الخبرة للتوصل الى افضل الطرق لتنفيذ هذه الفكرة
فاذا كان في ذهنك فكرة معينة تحتاج الى التنفيذ فقم بطرحها لنتعاون جميعا لايجاد افضل الحلول لتنفيذها

رابط هذا التعليق
شارك

الاختazharo

read_registry لها العديد من الاستخدامات احداها
قراءة قيمة معينة مثل قراءة مسار تنفيذ البرنامج الذي يتم تشغيله كالتالي :


كلامك بالاجابة اوحى لي انه توجد استخدامات اخرى غير الذي ذكرته في اجابتك مما اثار فضولي ماهي الاستخدامات العديدة لذلك سألت ولو كنت اعلم لعرضتها من غير طلب مع شكري لاستجابتك
رابط هذا التعليق
شارك

اخي الكريم Admin05
اليك بعض الاستخدامات لــ PACKAGE WIN_API_ENVIRONMENT ولكنى لم اجرب الا واحدة فقط
وهي من نفس ORACLE PACKAGE
-------------------------------------------------------
------------------------------------------------------
PACKAGE WIN_API_ENVIRONMENT IS

/*-------------------------------------------------------------------------*\
* WIN_API_ENVIRONMENT -> This package is concerned with reading from and * 			writing to either INI files or the Win95/WinNT
*			Registry.
* Contents:
*		Read_INI_File		-> Gets a Value from an INI file
*		Write_INI_File		-> Sets a Value in an INI file
*		Get_Windows_Username	-> Login of current Windows User (NT/95 only)
*		Get_Environment_string  -> Expands Environment Vars e.g %path%
*		Get_Windows_Directory	-> Gets the Working Windows Dir
*		Get_Temp_Directory	-> Gets the Temp Dir
*		Get_Net_Connection	-> Expand Drive Letter into a Network Path
*		Read_Registry		-> Reads a value from the Registry (NT/95 only)
*		Write_Registry		-> Writes a value to the Registry (NT/95 only)
* Dependancies:
*		WIN_API
\*-------------------------------------------------------------------------*/ 

/*-------------------------------------------------------------------------*\
* Read_INI_File - Read a Value from a named INI file 
*                 If you need to read the ORACLE.INI file 
*                 use TOOL_ENV.GETVAR() instead of this
*                 package.
*                 If using 32bit Developer/2000 you would 
*                 probably rather use 
*                 WIN_API_PROFILES.READ_REGISTRY() instead
* Arguments: 
*	FileName	-> Name of INI file e.g. WIN.INI. If the full
*     			   path is not supplied with this argument
*			   then the DOS PATH will be searched for the
*			   Specified INI file
*      Section		-> Section in INI file where the entry is. 
* 			   This will be delimited using square brackets 
*			   e.g. [printers]
*	Entry		-> Name of Variable to read e.g. load (from win.ini)
*	RaiseExceptions -> TRUE or FALSE(Default) If set to true, then if the 
*			   requested variable is not found the explicit exception
*			   NO_DATA_FOUND will be raised.
* Returns:
*	Value		-> a VARCHAR2 value containing the 
*			   string (or number as a string) that the 
*			   entry contains.
*			   if the Entry is not found NULL is returned in *			   the return value. (see RaiseExceptions above)
\*-------------------------------------------------------------------------*/

FUNCTION Read_INI_File (	FileName	IN VARCHAR2,
			Section		IN VARCHAR2,
			Entry		IN VARCHAR2,
			RaiseExceptions IN BOOLEAN DEFAULT FALSE) return VARCHAR2;

/*-------------------------------------------------------------------------*\
* Write_INI_File ->		Write a Value to a named INI file 
*                  		If using 32bit Developer/2000 you would 
*                  		probably rather use 
*                  		WIN_API_PROFILES.WRITE_REGISTRY_XXXX()
* Arguments: 
*	FileName	-> 	Name of INI file e.g. WIN.INI. If the full
*     			   	path is not supplied with this argument
*			   	then the DOS PATH will be searched for the
*			   	Specified INI file
*      Section		-> 	Section in INI file where the entry is. 
* 			   	This will be delimited using square brackets 
*			   e.g. [printers]. No need to supply the brackets
			for the argument though
*	Entry		-> 	Name of Variable to write e.g. load (from win.ini)
*	Value		->	Value of the variable to write as a string.
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then errors such as not finding the 
*			   	INI file will raise NO_DATA_FOUND
*			 	If FALSE then all errors will be handled quietly
* Returns:
*	(NONE)
\*-------------------------------------------------------------------------*/

PROCEDURE Write_INI_File (	FileName	IN VARCHAR2,
		    	Section		IN VARCHAR2,
		 	Entry		IN VARCHAR2,
			Value		IN VARCHAR2,
			RaiseExceptions IN BOOLEAN DEFAULT FALSE);

/*-------------------------------------------------------------------------*\
* Get_Windows_Username ->	The Username Supplied to log into Windows
* Arguments: 
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then Not finding the Username (or 
*				exceeding the buffer size) will raise
*				NO_DATA_FOUND
* Returns:
*	UserName ->		Varchar2 
\*-------------------------------------------------------------------------*/

FUNCTION Get_Windows_Username ( RaiseExceptions 	IN BOOLEAN DEFAULT FALSE)	RETURN VARCHAR2;


/*-------------------------------------------------------------------------*\
* Get_Environment_String ->	Expands a named environment variable
* Arguments: 
*	VariableName	->	Name of the variable e.g. PATH
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then Not finding the Username (or 
*				exceeding the buffer size) will raise
*				NO_DATA_FOUND
* Returns:
*	Expanded String ->	Varchar2 
\*-------------------------------------------------------------------------*/

FUNCTION Get_Environment_string (VariableName		IN VARCHAR2,
			 RaiseExceptions 	IN BOOLEAN DEFAULT FALSE)	RETURN VARCHAR2;


/*-------------------------------------------------------------------------*\
* Get_Windows_Directory ->	Obtains the path to the windows directory 
* on the machine
* Arguments: 
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then Not finding the directory (or 
*				exceeding the buffer size) will raise
*				NO_DATA_FOUND
* Returns:
*	Path ->			Varchar2 
\*-------------------------------------------------------------------------*/

FUNCTION Get_Windows_Directory ( RaiseExceptions 	IN BOOLEAN DEFAULT FALSE)	RETURN VARCHAR2;

/*-------------------------------------------------------------------------*\
* Get_Temp_Directory ->	Obtains the path to the directory that  
*				Windows is using for temp files
* Arguments: 
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then Not finding the directory (or 
*				exceeding the buffer size) will raise
*				NO_DATA_FOUND
* Returns:
*	Path ->			Varchar2 
\*-------------------------------------------------------------------------*/

FUNCTION Get_Temp_Directory ( RaiseExceptions 	IN BOOLEAN DEFAULT FALSE)	RETURN VARCHAR2;

/*-------------------------------------------------------------------------*\
* Get_Net_Connection	->	Expands an attached drive letter to it's 
*				full network address
* Arguments: 
*	DriveLetter	->	Letter of the Drive to expand e.g. 'F'
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then Not finding the Username (or 
*				exceeding the buffer size) will raise
*				NO_DATA_FOUND
* Returns:
*	Expanded Connection String ->	Varchar2 
\*-------------------------------------------------------------------------*/

FUNCTION Get_Net_Connection	(DriveLetter		IN VARCHAR2,
			 RaiseExceptions 	IN BOOLEAN DEFAULT FALSE)	RETURN VARCHAR2;

/*-------------------------------------------------------------------------*\
* Read_Registry	->	Read the value of a particular entry in the 
*				Win95/NT Registry
*
* Arguments: 
*	RegPath 	->	The Full path in the registry to the required
*				value e.g. HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
*	RegEntry	->	Name of the entry to read e.g. ORACLE_PATH
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then failing to find the entry raises
*				NO_DATA_FOUND. obtaining an entry of a datatype
*				that is not a string or a number raises
*				VALUE_ERRROR.
* Returns:
*	Value 		->	Both Number and String entries returned
*				as Varchar2.
\*-------------------------------------------------------------------------*/

FUNCTION Read_Registry (RegPath		IN VARCHAR2,
		RegEntry	IN VARCHAR2, 
		RaiseExceptions IN BOOLEAN DEFAULT FALSE)	RETURN VARCHAR2;
/*-------------------------------------------------------------------------*\
* Write_Registry	->	Set the value of a particular entry in the 
*				Win95/NT Registry
*				NOTE: The Path to the entry must already Exist
*
* Arguments: 
*	RegPath 	->	The Full path in the registry to the required
*				value e.g. HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
*	RegEntry	->	Name of the entry to set e.g. ORACLE_PATH
*	RegValue	->	Value to set
*	RaiseExceptions -> 	Set to TRUE or FALSE (default).  If this is set 
*			   	to TRUE, then failing to set  the entry raises
*				NO_DATA_FOUND. 
* Returns:
*	(NONE)
\*-------------------------------------------------------------------------*/

PROCEDURE Write_Registry(	RegPath		IN VARCHAR2,
			RegEntry	IN VARCHAR2, 
			RegValue	IN VARCHAR2, 
			RaiseExceptions IN BOOLEAN DEFAULT FALSE);


END WIN_API_ENVIRONMENT;

رابط هذا التعليق
شارك

الاخت azharo
مشكورة وهي كثيرة
وان شاء اجربها واضيف مثال عليها بالاضافة لمجموعة اخرى غير التي تفضلتي باضافتها

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...
  • بعد 3 سنة...
  • بعد 3 شهور...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية