سلام من نمی دونم چطور در ویژوال بیسیک 2008 کلید capslock را روشن کنم می تونم بفهمم که روشن هست یا نه ولی نمی تونم روشنش کنم
با این کد می فهمم روشن هست یا نه
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام من نمی دونم چطور در ویژوال بیسیک 2008 کلید capslock را روشن کنم می تونم بفهمم که روشن هست یا نه ولی نمی تونم روشنش کنم
با این کد می فهمم روشن هست یا نه
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر می شود یک کمی در باره این قسمت و کاربرد کارهای آن توضیح دهید
آیا می شود در بین کدهای VB.NET از اسمبلی و C++ هم استفاده کرد یا حداقل یک کدام راIf Not System.Console.CapsLock Then
keybd_event(20, 0, 0, 0)
keybd_event(20, 0, 2, 0)
End If
Last edited by ahsanjan; 05-07-2008 at 17:03.
سلام
دستور System.Console.CapsLock با My.Computer.Keyboard.CapsLock برابر است!
کلاسسهای فضای نام My معمولاً مختص VB.Net هستند و برای راحتی برنامه نویسان قدیمی VB6 در نظر گرفته شده اند، یعنی در بقیه زبانهای دات نتی این گزینه ها در دسترس نیستند، تقریباً همه این کلاسها و توابع معادلهای رسمی در کلاسهای اصلی فریم ورک دارند.
و به نظر من بهتر است با توابع عمومی کار کرد تا به جای VB.Net کار بودن، دات نت کار باشید! و بتوانید در زبانهای دیگر هم به راحتی کار کنید.
تابع keybd_event هم رویدادهای کیبور را شبیه سازی میکند، و پارامتر اول و سومش مهم است.
-پارامتر اول کد کلید است، که کد CapsLock عدد 20 است. میتوانید از کدهای موجود در System.Windows.Forms.Keys استفاده کنید.
-پارامتر سوم هم مشخص کننده رویداد است، صفر به معنی فشرده شدن کلید و 2 به معنی رها شدن کلید است.
در کل ما چک میکنیم و اگر CapsLock خاموش باشد یک بار فشرده شدن و رها شدن آنرا شبیه سازی میکنیم.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مستقیماً قابلانجام نیست ولی راههایی دارد، اصلی ترین راه ساخت dll در زبان دیگر و فراخانی از داخل VB.Net است.
همین keybd_event در واقع کدی به زبان ++VC است که در کتابخانه user32.dll در محل system32 مستقر است.
خود شما هم میتوانید با ++VC و یا VAsm یک dll بسازید، که البته بسته به نوع dll استفاده از ان هم فرق میکند.
user32.dll یک Dynamic-Link Library است (یعنی نوع پایه ای و ابتدایی dll ها) ولی الآن dll ها انواع مختلف دارند و دیگر در عبارت Dynamic-Link Library نمیگنجند.
اگر زبان دیگر دات نتی باشد مثل VC++.Net و یا C#.Net با کمی دردسر و دقت و کمی پیچیدگی با کامپایلهای خط فرمانی میتوان بدون ساخت یک dll دیگر هم از کدهای هم استفاده کرد.
ولی در کل لزومی این کارها نیست، شما در برنامه های مرسوم با دات نت کم نخواهید آورد که محتاج به دیگر زبانها شوید...
اگر هم میبینید ما الآن از user32.dll استفاده کردیم به خاطر این است که در ویندوز این فایل مدیر تمام بخش های رابط کاربری میباشد، و تا زمانی که در ویندوز هستید باید بالاجبار تمام فرامینی که به نوعی با رابط کاربری سروکار دارند، به این dll ارجاع شوند.
خیلی ممنون ولی آیا در msdn جایی هست که این api ها را توضیح دهد مثل همین لطفا یک کلمه بگویید تا من در msdn مکان آموزش api ها را پیدا کنم
Last edited by ahsanjan; 05-07-2008 at 21:42.
با سلام آقای h2 یا هر کس دیگری که می تواند جواب من را بدهد من رفتم تو سایت مایکروسافت مثال های vb.net را دانلود کردم به یک مشکل برخورد کردم یک اینکه در این کد متد invalidate به چدر د می خورد و اصلا کارش چیست
دو اینکه در این عکس چرا imports microsoft.ink زیرش خط می کشد ویرایشگرPublicProperty BeadColor() As System.Drawing.Color
Get
Return privateBeadColor
EndGet
Set(ByVal value As System.Drawing.Color)
privateBeadColor = value
Me.Invalidate()
EndSet
EndProperty
PublicProperty BeadOutlineColor() As System.Drawing.Color
Get
Return outlineColor
EndGet
Set(ByVal value As System.Drawing.Color)
outlineColor = value
Me.Invalidate()
EndSet
EndProperty
![]()
Last edited by ahsanjan; 07-07-2008 at 11:03.
سلام
api های ویندوز یکی و دو تا نیست که بتوان آنها را در یک نقطه مجتمع کرد، البته مجتمع است ولی آن محل اجتماع خود msdn است.
شما میتوانید با برنامه هایی مثل depends.exe لیست api های یک dll را در اورید و اگر آن dll جزء اجزای اصلی ویندوز مایکروسافت باشد میتوانید نام api را در msdn بزنید تا توضیحاتش را پیدا کنید. مثلاً keybd_event را بزنید تا توضیحات و پارامترها و... را پیدا کنید.
البته اگر انگلیسی تان قوی تر باشد میتوانید از سرچ msdn هم برای یافتن api مورد نظر استفاده کنید.
تصویر کنترل را نا معتبر میکند و در پیغام رسم مجدد را به کنترلر صادر میکند، یک چیز تو مایه های Refresh تصویر کنترلر که برروی مانیتور دیده میشود.
شما dll مربوطه را به Refrence ها اضافه نکرده اید، در اصل VS از محل و موقعیت فایل مربوطه آگاه نیست.
Project->Add Refrence->Browse
شاید بتوانید در یکی از مسیرهای زیر و یا زیر پوشه هایشان فایل مربوطه را مییابید.
C:\Program Files\Common Files\microsoft shared\ink
C:\Program Files\Reference Assemblies\Microsoft\Tablet PC
ببخشید این کلمه را که وارد می کنم نمی آید عکس را ببینید
![]()
سلام
عزیز جان، شما Filter تایین کرده اید، گزینه Visual Basic را به unfiltered تغییر دهید، تا msdn شرطی برای نمایش نگذارد.
چون این مطالب فراتر از آن است که مربوط به یک زبان خاص شود و توضیحات api ها، هم فقط بر پایه مبنای C++ Native است.
من می خواستم برنامه ای بنویسم که وقتی اجرامی شود متن درون textbox الون انتخاب شود و با استفاده از فشرده شدن همزمان دو کنترول ctrl و c کپی شود بدون دخالت من و فقط باکد و این کدها را نوشتم ولی نمی دانم چرا کپی نمی شود مشکلشان چیست
PrivateDeclareSub keybd_event Lib"user32" (ByVal bVk AsByte, ByVal bScan AsByte, ByVal dwFlags AsInteger, ByVal dwExtraInfo AsInteger)
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
TextBox1.SelectAll()
keybd_event(Keys.ControlKey, 0, 0, 0)
keybd_event(Keys.C, 0, 0, 0)
keybd_event(Keys.C, 0, 2, 0)
keybd_event(Keys.ControlKey, 0, 2, 0)
EndSub
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)