السلام عليكم ورحمة الله وبركاتة
كيف الحال شباب
ان شاء الله بخير
زي ما فى العنوان
انا عندي كود
وهوا
كود :
Dim T As New Threading.Thread(Sub()
While True
Try
If Clipboard.GetText().Length = 34 Then
Clipboard.SetText("النص البديل")
End If
Threading.Thread.Sleep(50)
Catch aa As Exception
MsgBox(aa.Message)
End Try
End While
End Sub) With {.IsBackground = True} : T.SetApartmentState(Threading.ApartmentState.STA) : T.Start()
الكود يقوم بتعديل اى عمليه نسخ مكونة من 34 حرف الى نص بديل
المشكله
لما بعمل نسخ يظهر رساله مكتوب فيها
Requested clipboard operation not succeed
انا لا اريد ظهور الرساله دي
جربت اشيل
MsgBox(aa.Message)
الكود مش بيشتغل
دي اول مشكله
الطلب الثاني عاوز اضيف اكثر من نص
Clipboard.SetText("النص البديل")
فى كل مره اعمل بيست يتغير النص
اتمنا الاقي حل
السلام عليكم
قمت بتجربة الكود وهو يعمل جيداً، ولكن يبدو أنك لم تقم بتنفيذة مرة واحدة، ضعه في الحدث Form1_Load
ألغ سطر الرسالة.
الطلب الثاني يحتاج شرح حول كيفية تغيير النص.
(16-02-17, 08:53 PM)مساعدة كتب : [ -> ]السلام عليكم
قمت بتجربة الكود وهو يعمل جيداً، ولكن يبدو أنك لم تقم بتنفيذة مرة واحدة، ضعه في الحدث Form1_Load
ألغ سطر الرسالة.
الطلب الثاني يحتاج شرح حول كيفية تغيير النص.
لا يا اخي بنفذ الامر مرة واحدة
لما بسيب MsgBox(aa.Message)
الكود بيشتغل بس بيظهر الرساله دي
Requested clipboard operation not succeed
لما بحذف MsgBox(aa.Message) الكود بيتوقف
مش بيقبل البيست اصلا
يعني بعمل كوبي واجى اعمل بيست مش بيشتغل اصلا
وده الكود كامل من الفروم
كود :
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim T As New Threading.Thread(Sub()
While True
Try
If Clipboard.GetText().Length = 34 Then
Clipboard.SetText("النص البديل")
End If
Threading.Thread.Sleep(50)
Catch aa As Exception
MsgBox(aa.Message) '>>>>>ده سبب المشكله
End Try
End While
End Sub) With {.IsBackground = True} : T.SetApartmentState(Threading.ApartmentState.STA) : T.Start()
End Sub
End Class
الطلب الثاني يحتاج شرح حول كيفية تغيير النص.
تغير النص اقصد كل مره اعمل فيها كوبي للنص المكون من 34 يتغير فيها بكود اخر يعني مثلا لما اعمل كوبي لى If Clipboard.GetText().Length = 34 Then
فى كل مره اعمل بيست يظهر
النص البديل بس كل مره اعمل بيست النص الي هنا Clipboard.SetText("النص البديل") يتغير
يعني مثلا يبقي
Clipboard.SetText("1 البديل")
Clipboard.SetText("2 البديل")
Clipboard.SetText("3 البديل")
Clipboard.SetText("4 البديل")
كل بيست بنص مختلف
بخصوص رسالة الخطأ لم تظهر لدي،
ولكن في بعض المواقع اتجهوا الى استخدام SetDataObject بدل SetText
جرب هذا الكود
كود :
Clipboard.SetDataObject("النص البديل", True, 1, 1)
(17-02-17, 12:09 AM)مساعدة كتب : [ -> ]بخصوص رسالة الخطأ لم تظهر لدي،
ولكن في بعض المواقع اتجهوا الى استخدام SetDataObject بدل SetText
جرب هذا الكود
كود :
Clipboard.SetDataObject("النص البديل", True, 1, 1)
للاسف عند تغير الكود تظهر الرساله ولا يعمل الكود
طيب ممكن ترفق لي المشروع
ليس عندي مشروع، فقط استخدمت الكود الذي منك في المشاركة #3 على مشروع جديد فاضي فقط وضعت الكود كما هو واشتغل عندي بدون مشكلة،
لا أدري هل يكون السبب برنامج الحماية مثلا، لا أستطيع التأكد!
أعتذر منك استاذ
احمد مهران،
اتمنى من بقية الأعضاء أن يجربوا الكود، فقد تظهر لهم الرسالة ويعرفوا سببها ويضعوا الحل.
[attachment=13189]
(17-02-17, 02:51 AM)مساعدة كتب : [ -> ]ليس عندي مشروع، فقط استخدمت الكود الذي منك في المشاركة #3 على مشروع جديد فاضي فقط وضعت الكود كما هو واشتغل عندي بدون مشكلة،
لا أدري هل يكون السبب برنامج الحماية مثلا، لا أستطيع التأكد!
أعتذر منك استاذ احمد مهران،
اتمنى من بقية الأعضاء أن يجربوا الكود، فقد تظهر لهم الرسالة ويعرفوا سببها ويضعوا الحل.
اشكرك اخى على المساعده
(17-02-17, 07:21 PM)أسامة السالمي كتب : [ -> ]الكود يعمل بشكل جيد،
أما بالنسبة لطلبك بتغيير النص البديل عند كل مره، فهذا الكود بعد التعديل :
PHP كود :
Public Class Form1
Dim o As Integer = 1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim T As New Threading.Thread(Sub()
While True
Try
If Clipboard.GetText().Length = 34 Then
If o = 1 Then
Clipboard.SetText("النص البديل 1")
o = 2
ElseIf o = 2 Then
Clipboard.SetText("النص البديل 2")
o = 3
ElseIf o = 3 Then
Clipboard.SetText("النص البديل 3")
o = 4
ElseIf o = 4 Then
Clipboard.SetText("النص البديل 4")
o = 5
ElseIf o = 5 Then
Clipboard.SetText("النص البديل 5")
o = 1
End If
End If
Threading.Thread.Sleep(50)
Catch aa As Exception
MsgBox(aa.Message)
End Try
End While
End Sub) With {.IsBackground = True} : T.SetApartmentState(Threading.ApartmentState.STA) : T.Start()
End Sub
End Class
اشكرك اخى على المساعده
لاكن عند التطبيق وعمل كوبي يظهر الرساله التاليه
ودي صوره الكود كامل
جرب :
1- إغلاق جوجل كروم (اذا نجح الأمر فإن إعادة تشغيل جوجل كروم ستعيد المشكلة)
2- فتح إدارة المهام، والبحث عن (rdpclip.exe) تحت (Processes) وإيقافه. ثم، فتح مهمة جديدة وتشغيله مرة أخرى.
* الحلول من الانترنت ولا أعلم ان كانت قد تتسبب ببعض المشاكل