موفق جمال زكريا

التعامل مع الحافظة(الذاكرة) في الفيجوال

19 ردود في هذا الموضوع

سلام الله عليكم :

يوجد ست دوال في الفيجوال للتعامل مع الحافظة سأشرحها بالتفصيل :

1- GetText لجلب محتويات الحافظة .

فمثلاً قم بنسخ أي نص من الجهاز ثم قم بإنشاء زر واكتب الكود التالي :

Private Sub Command1_Click()

Text1.Text = Clipboard.GetText

End Sub

فتظهر في مربع النص النص الذي تم نسخه

2- ثانيا :Clipboard.Clear تقوم بمسح محتويات الحافظة .

اكتب الكود في زر :

Private Sub Command1_Click()

Clipboard.Clear

End Sub

انسخ إي نص من الحاسب أو أي ملف ثم انقر على هذا الزر ثم حاول لصقه فستجد أن زر اللصق غير مفعل وذلك بعمل الدالة Clipboard.Clear

3-ثالثاً : Clipboard.GetData لجلب صور أي للصق صورة ...

اضفط الزر printscreen من لوحة المفاتيح ثم اكتب الكود التالي في زر :

Private Sub Command1_Click()

Me.Picture = Clipboard.GetData

End Sub

فستلاحظ أنه تم لصق الصورة ...

وأي صورة تنسخها يتم لصقها هنا ...

ويمكنك أيضا بدلا من me إستخدام أداة الصور image أو picturebox أو أي أداة فيها خاصية إظهار صورة ..

4- رابعاً :Clipboard.SetData

لإرسال صورة إلة الذاكرة ....

أنشئ زر وأداة الصورة وضع داخلها صورة واكتب الكود التالي :

Private Sub Command1_Click()

Call Clipboard.SetData(Image1.Picture)

End Sub

ثم ادخل إلى الرسام أو أي برنامج صور واختار الأمر لص وستلاحظ أن الصورة قد لصقت في البرنامج....

5-خامساً :Clipboard.SetText لإرسال نص إلى الذاكرة .

اكتب الكود التالي :

Private Sub Command1_Click()

Clipboard.SetText ("بسم الذي لايضر مع إسمه شئ")

End Sub

ثم اذهب إلى أي برنامج نصوص واختار لصق فتلاحظ ظهور النص

بسم الذي لايضر مع إسمه شئ

6- سادساً :GetFormat للتحقق من نوع الغرض المنسوخ ..

تعطي الدالة إما false

أو true

الصيغة العامة :

Clipboard.GetFormat (format)

و format تأخذ القيم التالية :

Link &HBF00

Text 1

Bitmap 2

Metafile (.wmf files) 3

Device-independent bitmap 8

Color palette 9

فمثلاً اكتب الكود التالي ولاحظ :

MsgBox Clipboard.GetFormat(2), vbDefaultButton1, "[email protected]"

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

true

وإذاغ كنت نسخت غير ذلك فتكون النتيجة

flase

لابد أنك فهمت ............... والحمد لله رب العالمين .... انتهت الكتابة الساعة الرابعة صباحاً ,,

أرجوا وأتمنى أن أكون قد يسرت لكم هذه الدوال الست ..... والله من وراء القصد ....

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لقد شرحت الأمر

Clipboard.Clear وهو يقوم بمسح المحتويات التي نسخناها إلى الذاكرة ...

فيمكن وضع الكود في في تايمير يقوم بمسح الشئ المنسوخ من الذاكرة قبل لصقه .... وبهذا نكون قدحققنا أكثر من فائدة ....

1- لصناعة فيروس مثلاَ وإرفاقه بملف ويكون الفورم شفاف فتكون قد عطلت ميزة النسخ واللصق في الجهاز ....

2- لقد أفادتني في أكثر من برنامج صنعته وهو بأني لاأريد أن سنسخ المعلومات من البرنامج بل أردي قراءة المعلومات فقط من برنامجي ::

كيف ؟.؟؟؟؟؟؟؟؟؟؟؟؟؟شلوني معكم ....

الكود

Private Sub Timer1_Timer()

Clipboard.Clear

End Sub

ولاتنسى أن تضع قيمة للتايمي

(gift)(f)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لقد شرحت الأمر

Clipboard.Clear وهو يقوم بمسح المحتويات التي نسخناها إلى الذاكرة ...

فيمكن وضع الكود في في تايمير يقوم بمسح الشئ المنسوخ من الذاكرة قبل لصقه .... وبهذا نكون قدحققنا أكثر من فائدة ....

1- لصناعة فيروس مثلاَ وإرفاقه بملف ويكون الفورم شفاف فتكون قد عطلت ميزة النسخ واللصق في الجهاز ....

2- لقد أفادتني في أكثر من برنامج صنعته وهو بأني لاأريد أن سنسخ المعلومات من البرنامج بل أردي قراءة المعلومات فقط من برنامجي ::

كيف ؟.؟؟؟؟؟؟؟؟؟؟؟؟؟شلوني معكم ....

الكود

Private Sub Timer1_Timer()

Clipboard.Clear

End Sub

ولاتنسى أن تضع قيمة للتايمير

(gift)(f)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

الله يوفقك أخ/ موفق

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

فما السبب فى ذلك ؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم :

أخي جرب تحديد الكتابة ... وغير نوع الخط إلى الخط العربي من الوورد ...

إذا لم تحل المشكلة جرب لصقة في الفيجوال وانظر ماذا ترى ...

لكي نتوصل إلى حل المشكلة ...........

أخوك موفق

(gift)(f)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

أخ / موفق ..

عند النسخ فى Word لا يتم النسخ بشكل مفهوم ( حروف غريبة ) مهما تم تغيير الخط ..

ولكن عند النسخ فى الVB فى نافذة الكود مثلا يتم النسخ بشكل صحيح ..؟؟!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

ألا يوجد حل لمثل هذه المشكلة ؟؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي يمكن أن تكوزن مشكلة في خطوط الجهاز عندك أو في نسخة الوورد ولايمكن ان نتبئ بذلك أعد تنصيب الأوفيس ..............

(gift)(f)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لكم علي هذه الأفادة الكبيرة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

ليست المشكلة فى الWord بل فى الVB حيث عند النسخ فى المفكرة تحدث نفس المشكلة ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

كيف حلك يا موفق جمال زكريا

لدي سؤال مهم جدا بالنسبة لي أرجو الاجابة بأسرع وقت

السؤال :

كيف يمكنني نسخ كل ما أكتبه إلى الحافظة

فمثلا كتبت سالم فكلمة سالم ينتسخ إلى الذاكرة فورا

أو بعبارة أخرى ينسخ كل ما أضغط على مفتاح معين

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي الكريم يجب عليك أستخدام

Clipboard.GetText

مع وضع الكود في التايمير ......

ويجب عليك وضع كود لنسخ ماتكتبة في التيكست بأن تحدد من البداية إلى النهاية وتسخدم الدالة setText .......

(gift)(f)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لو تكرمت بوضع مثال مرفق لأكون لك من الشاكرين

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
السلام عليكم

أخ / موفق ..

عند النسخ فى Word لا يتم النسخ بشكل مفهوم ( حروف غريبة ) مهما تم تغيير الخط ..

ولكن عند النسخ فى الVB فى نافذة الكود مثلا يتم النسخ بشكل صحيح ..؟؟!!

عندى نفس هذه المشكلة الان

ولكن لم يحلها احد من الساده الاعضاء

المشكلة باختصار :

عندما يتم نسخ اي كتابة عربية من الفيجوال بيسك ( وتكون اللغة المستخدمة فى تلك اللحظة هى الانجليزية ) يكون ناتج النسخ حروف غريبة وليست بالعربية

لكن اذا كانت اللغة المستخدمة ( فى الويندوز نفسه ) فى تلك اللحظة هى العربية ، فيتم النسخ بشكل صحيح ..

الا يوجد حل لتلك المشكلة ؟؟ :wacko:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم :

اولا شكرا يا اخي موفق على هذا الموضوع .

ثانيا عندي سؤال او استيضاح معينهو :

في حاله وضعت الايعاز clipboard.clear في التايمر كما قلت سابقا هل سينفع في تخليصي من الفايروسات التي تستنسخ نفسها مثلا.

شكرا مره اخرى على موضوعك :rolleyes:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ....

نعم أخي الفاروق معه حق فالنسخ من الفيجوال بيزك يعطي هذه المشكلة ...

ربما نلقي بعض اللوم على ضعف الدالة settext لكننا ننشد الحل ا.... المكشلة هي فعلاً كما قال الإخوة في الويندوز بأننا إذا أرسلنا نص إلى الحافظة وكانت اللغة في شريط المهام - شريط اللغة - عربي نسخ النص بنجاح وإلا فستظهر كتابة غير مفهومة ولذلك يجب تغير اللغة قبل إرسال أمر النسخ كالتالي :

Dim s As Long
If GetKeyboardLayout(0) = 67699721 Then
s = ActivateKeyboardLayout(1, 0)
End If

Clipboard.Clear
Clipboard.SetText Label1.Caption, 1

وطبعاً يجب تعريف ActivateKeyboardLayout وGetKeyboardLayout في موديل البرنامج كالتالي :

Public Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
Public Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .