 |
فهرست اصلی |
|
|
 |
آرشیو مطالب |
|
|
 |
لینکستان |
|
| اگر می خواهید با وبسایت ما تبادل لینک کنید لینک ما را با نام " خداي ويژوال بيسيك " قرار دهید و در بخش تماس با ما و یا نظرات لینک خود را قرار دهید. |
|
|
 |
نظرات مستقيم |
|
|
|
 |
برنامه نویسی با VB برای لینوکس |
|
 If you're looking for a fast, easy way to create graphical Linux applications, take a look at Gambas. It's a free Integrated Development Environmet (IDE) built on the BASIC programming language -- with added object-oriented extensions. Think of it as Visual Basic for Linux. According to the website: " ...you can quickly design your program GUI with QT or GTK+, access MySQL, PostgreSQL, Firebird, ODBC and SQLite databases, pilot KDE applications with DCOP, translate your program into any language, create network applications easily, make 3D OpenGL applications, make CGI web applications, and so on..."
If you've used other IDEs, Gambas will look pretty familiar. It's all there: form designer, properties viewer, toolbox, project viewer and integrated debugger...
Once your code is running and tested, you simply Make the project -- as an executable, source archive or installation package -- and it's ready to run on any other Linux machine with the Gambas runtime interpreter installed.
خداییش دیگه نظر داره ؟!!؟!!؟؟
|
|
| AHA.x92 -) Hamid Rezaei -) |
یکشنبه 2 تیر1387 |
 |
|
 |
VB Portable |
|
|
| AHA.x92 -) Hamid Rezaei -) |
یکشنبه 2 تیر1387 |
 |
|
|
سلام . بازم کوشان عزیز میخواستن رزولیشن صفحه رو تغییر بدن .
اره کوشان جان میشه البته با API اين 3 تا تابع اين كارو انجام ميدن :
1. ChangeDisplaySettings . كه همينو براي دانلود ميذارم .
2. ChangeDisplaySettingsEx
3. EnumDisplaySettings
اگه سوال ديگه اي هم داشتي و يا داشتين همه رو با هم بپرسين . ممنون
Change Display Settings 
كلمات كليدي : تغيير رزولوشن در vb ، تغيير resolution در vb |
|
| AHA.x92 -) Hamid Rezaei -) |
جمعه 17 خرداد1387 |
 |
|
 |
ْْGif و PNG در VB |
|
سلام .
کوشان عزیز دنبال کامپوننتي بودن واسه عکس های Gif توي VB كه بهش AnyGif ميگن البته رجيستر شده اش .منم اونو همراه با كامپوننت عكس هاي PNG رو ميزارم واسه دانلود .
Png In VB 
Any Gif 
کلمات کلیدی : استفاده از تصاویر png در vb ، استفاده از فايل هاي gif در vb ، ocx، any gif، anygif |
|
| AHA.x92 -) Hamid Rezaei -) |
پنجشنبه 16 خرداد1387 |
 |
|
 |
کلید میانبرهایی در VB |
|
سلام . این هم مجموعه ای از کلید میانبرها در ویژوال که میتونه سرعت عملتون رو بالا ببره . منتظر بقیه اش هم باشین
CTRL+Z or ALT+BACKSPACE = همان حالات undo خودمان است
ALT+F8 = برنامه را با حالت step over اجرا می کند. (این حالت برنامه را خط به خط اجرا کرده و در صورت فرخوانی روالی دیگر ، وارد آن روال نمی شود )
CTRL+C or CTRL+INS = کپی کردن متن انتخاب شده
CTRL+BACKSPACE = پاک کردن قسمت به قسمت کدها از سمت چپ
CTRL+DELETE = پاک کردن قسمت به قسمت کدها از سمت راست
CTRL+] = مخفی کردن اشاره گر ماوس در پنجره کد.
CTRL+END = انتقال دادن کرسر به اخرین خط از پنجره.
CTRL+F = پنجره جستجو را برای شما نمایش می دهد. در صورتی که متنی را برای جستجو انتخاب نکرده باشید کلمه قبل از کرسر برای جستجو انتخاب میشود .
CTRL+F3 = بدون نمایش پنجره ای به جستجو میپردازد و مانند CTRL+F عمل می نماید.
CTRL+H = وقتی ما بخواهیم کلمه خاصی را جایگزین کلمه دیگری کنیم .
مخلصیم . AHA.x92
|
|
| AHA.x92 -) Hamid Rezaei -) |
جمعه 27 اردیبهشت1387 |
 |
|
 |
تعريف متغيرها |
|
به اطمينان، قبلاً در برنامه نويسی (لااقل در Basic که پيش فرض بحث ما معرفی شده بود) از متغيرها زياد استفاده کرده ايد. در برخی زبانهای برنامه نويسی (مثل Basic) ، نوع متغيرهای بکار رفته در برنامه، لازم نيست از قبل تعريف شده باشد و در هنگام اجرا، کامپايلر، خود، آن را به نوع مورد نياز (مثل Integer برای برای داده های عددی صحيح، يا String برای نوع داده رشته ای و کاراکتری و ...) تعريف و اجرا خواهد کرد. اما در برخی ديگر (مانند زبان برنامه نويسی Pascal)لازم است، نوع داده متغيرهای بکار رفته، در جايی از برنامه (و عموماً قبل از استفاده از آن) تعريف شوند.
در VB، از آنجا که VB از Basic برای کدنويسی استفاده می شود، به طور معمول، نياز به تعريف نوع داده ها نيست. اما از آنجا که امروزه برنامه نويسان ترجيح می دهند که از کامپايلری برای برنامه نويسی استفاده کنند که او را به تعريف تمام متغيرها مجبور کند (زيرا اگر چنين نباشد، اگر او به اشتباه دستوری را غلط تايپ کند (مثلاً بجای then بنويسد Then) ، کامپايلر آن را به عنوان متغيری فرض می کند و در واقع بدون اينکه ما خطايی را دريافت کنيم، در روند برنامه مان مشکل پيدا می شود و خطايی رخ می دهد که شايد تشخيص علت آن سخت تر شود) ، می توانيم VB را موظف سازيم تا ما را مجبور به تعريف نوع داده متغيرها نمايد.
اگر در ابتدای هر يونيت (Unit) عبارت Option Explicit نوشته شود، VB ما را مظف می کند که در آن يونيت، هر متغيری که بخواهيم استفاده کنيم، آن را قبل از استفاده، تعريف نماييم (لذا بهتر است ابتدای همه Unitها عبارت مذکور باشد) . يونيت (Unit) ها، بخش هايی از برنامه اند که در آنها کدنويسی می شود. مثلاً هر فرم، دارای يک Unit مخصوص به خود است که تمام Event Procedureهايی که تا بحال می نوشتيم، در آن قرار می گرفت.
همچنين اگر از منوی Tools گزينه Options را اتنخاب کنيم، و از لبه General (Tab Sheet) ، گزينه Require Variable Declare را چک مارک بزنيم، از اين پس، VB هر فرمی که ايجاد می شود، به طور پيش فرض عبارت Option Explicit را در ابتدای آن خواهد نوشت و در واقع هميشه ما را موظف می سازد که متغيرها را تعريف نماييم.
برای تعريف متغيرها از دستور Dim به شکل کلی زير استفاده می شود:
Dim variableNames As variablsType
به عنوان مثال دستور Dim a,b As Integer متغيرهايی را به نام a,b از نوع داده Integer (نوع داده عددی صحيح) تعريف می کند و سپس از آن می توانيم متغير a را در برنامه مقداردهی نماييم.
متغيرها را می توان در سه سطح تعريف نمود (Space of Variables) :
1- سطح پروسيجر (procedure Level) :
اگر متغيری در يک Procedure (و معمولاً ابتدای آن) تعريف کنيم، آن متغير را فقط در همان Procedure می توان استفاده نمود و در واقع برای همان Procedure خاص تعريف شده است.
2- سصح فرم (Form Level) :در سطح فرم (يعنی در ابتدای Unit مربوط به فرم و پس از عبارت Option Explicit) ، متغيرها می توانند به دو نوع تعريف شوند:
2-1- تعريف به صورت Private (شخصی) :
اگر متغيری در سطح فرم به صورت Private و به شکل کلی:
Private variableNames As variableType
تعريف شود، آن متغير فقط در تمام Procedureهای فرم قابل استفاده است و در فرم های ديگر قابل دسترسی و استفاده نمی باشد (مگر اينکه در آنها هم جداگانه تعريف شده باشد) .
2-2- تعريف به صورت Public (عمومی) :
اگر متغيری در سطح فرم، به صورت Public و به شکل کلی:
Public variableNames As variableType
تعريف شود، در اين صورت آن متغير علاوه بر دسترسی در همان فرم (بوسيله نام آن متغير) ، در فرمهای ديگر (در واقع در کل پروژه) قابل دسترسی خواهد بود. فقط در صورت نياز به استفاده در فرمهای ديگر لازم است نام فرمی را که متغير در آن تعريف شده است ذکر شود (البته اگر آن فرم load باشد) و سپس پس از يک نقطه (Dot) نام آن متغير آورده شود. به عنوان مثال اگر در ابتدای يونيت مربوط به Form1 نوشته شده باشد:
Public Number As Integer
و بخواهيم در فرمی ديگر، به آن مقداردهی کنيم، لازم است چنين بنويسيم:
Form1.Number = 15
توجه: اگر در سطح فرم از Dim برای تعريف استفاده شود، به طور پيش فرض آن را Private در نظر خواهد گرفت.
3- سطح ماژول (Module Level) :
ماژولها بخشی از پروژه هستند که متغيرها، توابع و Procedureهای عمومی (Global) را در آن تعريف می کنيم. اگر تعريفی (مثل تعريف نوع داده متغير يا يک Procedure) با Private انجام گيرد، فقط در همان ماژول قابل استفاده می باشد و اگر با Public صورت گيرد، در هر فرمی و بدون نياز به نوشتن نام ماژول در ابتدای آن، قابل استفاده خواهد بود. نکته ای که بايد توجه داشت اينکه اگر بخواهيم از متغيريا Procedureای که در يک ماژول به صورت Public تعريف شده است، در ماژولی ديگر استفاذه کنيم، ذکر نام ماژول در ابتدای آن به همراه يک نقطه (Dot) ضروری است.
معمولاً از تعريف Public در ماژول زمانی استفاده می کنيم که بخواهيم متغير يا Procedureای به صورت Global (عمومی) در سراسر پروژه استفاده شود. شايد بگوييد می شود در هر فرمی که به آن نياز داريم، همانجا متغير را تعريف می کنيم، پس چه نيازی به ماژول داريم؟
هر چند اين کار باعث می شود که برنامه خطای دستوری از ما نگيرد اما در اينصورت وقتی از فرمی به فرم ديگر می رويم مقدار موجود در آن متغير، پس از تعريف مجدد، دوباره Null (تهی) می شود، در حاليکه اگر از يکبار تعريف Public در ماژول استفاده کنيم، پس از مقدار دهی در جايی از پروژه، تا مقداردهی مجدد، اين مقدار در تمام پروژه قابل دسترسی است.
برای افزودن يک ماژول به پروژه کافی است از منوی Project گزينه Add Module را انتخاب کنيد و آن را (با پسوند .BAS) save نماييم.
همانطور که ملاحظه می فرماييد، ماژولها تنها بخش کدنويسی (Unit) دارند بر خلاف فرمها که يک بخش Interface (ظاهری) داشتند که کنترلها را به صورت Visual روی آن قرار می داديم و يک بخش کدنويسی (Unit) که کدهای مربوط به Event Procedureها را در آن می نوشتيم. همچنين ملاحظه می فرماييد که با توجه به وظيفه ماژولها، معمولاً در کل پروژه اولاً به يک ماژول نيازمنديم ثانياً به بيش از يک ماژول احتياجی پيدا نمی کنيم.
نکته: علاوه بر متغيرها می توانيم از ثوابت (Constants) نيز در پروژه استفاده کنيم. ثوابت، بخشی از پرونده اند که هنگام تعريف، مقداردهی می شوند و تا پايان پروژه مقدارشان ثابت می ماند. برای تعريف ثوابت از دستور Constant استفاده می شود به عنوان مثال:
Const PI As single = 3.14 |
|
| AHA.x92 -) Hamid Rezaei -) |
دوشنبه 5 فروردین1387 |
 |
|
 |
اضافه كردن DialogBox به برنامه: |
|
مطمئنا تا بحال در ويندوز از كادرهاي محاورهاي زيادي مثل پنجره هاي Open، Save، نمايش خصوصيات چاپگر (Printer)، كادر انتخاب رنگ، كادر انتخاب Font و پنجره Help ويندوز استفاده كرده ايد.
در VBبراي نمايش اينگونه پنجرههاي محاورهاي از كنترل DialogBox استفاده ميكنيم. اين كنترل يكي از كنترلهاي Non - Visual ويژوال بيسيك ميباشد. Non-Visual Controls همانطور كه قبلا هم آمده است، انواعي از كنترلها هستند كه فقط در زمان طراحي (Design Time) بر روي فرم ديده ميشوند و در Run Run Time فقط ميتوان از اثر آنها بهره برد.
كنترل مذكور بطور پيش فرض در ToolBar وجود ندارد. براي اضافه كردن آن به ToolBar بايد از منوي Project گزينه Components را انتخاب كنيم و در ليست Componentها، گزينه Microsoft Common Dialog Control 6 را چك مارك بزنيم و آن را تاييد (OK) نماييم. در اينصورت يك كنترل به ToolBoxزوده خواهد شد كه مي توانيد آن را با دابل كليك بر روي فرم قرار دهيد. توجه داريم كه كنترل مذكور Non-Visual است و لذا نيازي به تنظيم مكان اين كنترل بر روي فرم نداريد.
كنترل Dialog Box داراي متدهاي زير مي باشد:
 |
ShowColor براي نمايش پنجره محاورهاي تعيين رنگ در زمان فراخواني اين متد. |
 |
ShowFont براي نمايش پنجره محاورهاي تعيين فونت در زمان فراخواني اين متد. |
 |
ShowHelp براي نمايش پنجره محاورهاي راهنماي ويندوز در زمان فراخواني اين متد. |
 |
ShowOpen براي نمايش پنجره محاورهاي باز كردن يك فايل در زمان فراخواني اين متد. |
 |
ShowPrinter براي نمايش پنجره محاورهاي تعيين خصوصيات چاپگر در زمان فراخواني اين متد. |
 |
ShowSave براي نمايش پنجره محاورهاي ذخيره كردن در يك فايل در زمان فراخواني اين متد. |

Private Sub cmd_Click ( )
cdb.ShowColor
lbl.ForeColor = cdb.Color
End Sub

يا اگر بخواهيم توسط دکمهای ديگر به نام cmd2، پنجره Open باز شود، و هر فايلی از هر مسيری را که کار بر انتخاب کرد، در lbl نمايش داده شود، مینويسيم:

Private Sub cmd2_Click ( )
cdb.ShowOpen
lbl.Caption = cdb.FileName
End Sub |
|
| AHA.x92 -) Hamid Rezaei -) |
دوشنبه 5 فروردین1387 |
 |
|
 |
ProgressBar |
|
این هم یک ProgressBar خیلی قشنگ و جالب .

Download |
|
| AHA.x92 -) Hamid Rezaei -) |
دوشنبه 5 فروردین1387 |
 |
|
 |
دانلود |
|
|
| AHA.x92 -) Hamid Rezaei -) |
شنبه 1 دی1386 |
 |
|
|
سلام اين هم دانلود نرم افزاري كه شبيه سازيش كردم البته زياد روش كار نكردم چون زياد مالي نبود
ولي موقعه اي كه اينو بردم مدرسه عمو والي نيا معلممون باور نكرد كه اينو خودم نوشتم ايتكارا رو ميكنن بعد ميگن واسه چي مغزها از كشور فرار ميكنن بابا
به جوانان مان بايد ايمان داشته باشيم و گرنه فرار مغزها پيش مي آيد حضرت حميد
http://www.mediafire.com/?81n1dzmmpm3 |
|
| AHA.x92 -) Hamid Rezaei -) |
شنبه 1 دی1386 |
 |
|
 |
مجمو عه ای از توابع API |
|
با اجازه از علی جون ( مدیا )
API شماره 1 : API اول درمورد تغییر برچسب درایو هاست . یعنی شما می تونید با این تابع برچسب درایوهارو عوض کنید.
تعریف تابع توی یک ماژول.
Public Declare Function SetVolumeLabelA Lib "kernel32.dll" (ByVal lpRootName As String, ByVal lpVolumeName As String) As Long
lpRootName : مسیر درایو ریشه مثل "C:\" میشه.
lpVolumeName : برچسب جدید درایو مثل "VisualBasic"
نحوه استفاده تو برنامه :شما اول یک متغییر از نوع Long البته با توجه به نوع خروجی تابع تعریف می کنید بعد به صورت زیر استفاده می کنید :
Dim A As Long
()Private Sub Commad1_Click
("A = SetVolumeLabelA("C:\", "VisualBasic
End Sub
>> اگه تابع درست کار کند مقدار A عددی غیر صفر ، در غیر این صورت A=0 خواهد بود.
َ API شماره 2 : API دوم در مورد محاسبه زمان سپری شده از روشن شدن سیستم شماست . البته بر حسب میلی ثانیه.
--> تعریف تابع توی یک ماژول :
Public Declare Function timeGetTime Lib "winmm.dll" () As Long
این تابع فقط یک خروجی دارد که زمان سپری شده سیستم است:
نحوه استفاده در برنامه : مانند تابع قبل یه منغییر از نوع Long تعریف میکنید و به صورت زیر استفاده می کنید :
Dim A as Long
()Private Sub Command1_Click
A = timeGetTime
Text1.Text = A
End Sub
>> اگر تابع درست کار کند A برابر با زمان سپری شده و در غیر این صورت A=0 خواهد بود.
َ API شماره 3 : سومی درمورد کپی گرفتن از یک فایله .
تعریف تابع توی یک ماژول :
Public Declare Function CopyFileA Lib "kernel32.dll" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
lpExistingFileName : آدرس فایل مبدا مثل "C:\VB6.txt"
lpNewFileName : آدرس فایل مقصد مثل "D:\VB6.txt"
bFailIfExist : اين متغير مشخص مي کند در صورت وجود فايل مقصد عمليات کپي ادامه يابد يا نه. اگر صفر باشد انجام ميشود و اگر يک باشد انجام نميشود .
نحوه استفاده در برنامه : مانند تابع قبل یه منغییر از نوع Long تعریف میکنید و به صورت زیر استفاده می کنید :
Dim A as Long
()Private Sub Command1_Click
(A=CopyFileA( "C:\VB6.txt","D:\VB6.txt",0
End Sub
>> اگه تابع درست کار کند مقدار A عددی غیر صفر ، در غیر این صورت A=0 خواهد بود.البته میتونید نام فایل رو هم توی مقصد عوض کنید.
َ API شماره 4 : چهارمی درمورد انتقال یک فایله . اين تابع براي انتقال يک فايل يا پوشه از محلي به محل ديگر مورد استفاده قرار مي گيرد ( توانايي تغيير نام فايل ها و پوشه ها را نيز دارد ).
تعریف تابع توی یک ماژول :
Private Declare Function MoveFile Lib "kernel32.dll" (ByVal lpExistingName As String, ByVal lpNewFileName As String) As Long
lpExistingName : مسير فايل مبدا
lpNewFileName : مسير فايل مقصد( اگر نام فايل متفاوت باشد درحين انتقال نام فايل نيز تغيير خواهدکرد )
نحوه استفاده در برنامه : مانند تابع قبل یه منغییر از نوع Long تعریف میکنید و به صورت زیر استفاده می کنید :
Dim A as Long
()Private Sub Command1_Click
("A=MoveFile( "C:\VB6.txt","D:\VB6.txt
End Sub
>> اگه تابع درست کار کند مقدار A عددی غیر صفر ، در غیر این صورت A=0 خواهد بود.
َ API شماره 5 : برای باز و بسته کردن CDROM . این تابع از دستور متنی استفاده میکنه.با این تابع کارهای زیادی میشه کرد.
باز هم مثل همیشه کد تابع رو توی یه ماژول تعریف کنید :
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
برای باز شدن CDROM این کد رو بنویسید:
(&)Private Sub OpenCD_Click
&mciSendString "Set CDAudio Door Open Wait", 0&, 0&, 0
End Sub
برای بسته شدن CDROM هم کد زیر رو بنویسید :
()Private Sub CloseCD_Click
&mciSendString "Set CDAudio Door Closed Wait", 0&, 0&, 0
End Sub
همینطور که می بینید این تابع از دستورات ساده چند رسانه ای برای باز کردن سی دی رام استفاده می کنه.
َ API شماره 6 : برای مخفی کردن نوار TaskBar ویندوز. حال میده برا سر کار گذاشتن .
تعریف تابع و ثابتهای برنامه توی یه ماژول :
Public Hwnd1 As Long
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_SHOWWINDOW = &H40
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
همینطور که می بینید باید با تابع FindWindow اول هندل نوار TaskBar رو پیدا کنیم بعدش با تابع SetWindowPos کار اصلی رو انجام بدیم.
کد مخفی کردن نوار توی یه Button :
()Private Sub HideTask_Click
("" ,"Hwnd1 = FindWindow("Shell_Traywnd
(Call SetWindowPos(Hwnd1, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
End Sub
کد نمایش نوار هم توی یه Button دیگه:
()Private Sub ShowTask_Click
(Call SetWindowPos(Hwnd1, 0, 0, 0, 0, 0, SWP_SHOWWINDOW
End Sub
َ API شماره 7 : این API برای مخفی کردن دکمه Start ویندوز.این یکی از تابع قبلی باحالتره.
مثل همیشه تعریف تابع توی یه ماژول.تو این برنامه سه تا تابع لازمه:
Public OP As Long
Public OH As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Const SW_HIDE = 0
Public Const SW_SHOW = 5
از تابع FindWindow برای پیدا کردن هندل TaskBar و از تابع FindWindowEx برای پیدا کردن هندل دکمه Start که در واقع فرم فرزند (ChildForm) TaskBar ویندوزه استفاده می کنیم.از تابع ShowWindow هم برای کار اصلی استفاده می کنیم.
حالا برای مخفی کردن دکمه Start کد زیر رو مینویسیم:
()Private Sub HideStart_Click
("" ,"OP& = FindWindow("Shell_TrayWnd
(OH& = FindWindowEx(OP&, 0, "Button", vbNullString
ShowWindow OH&, SW_HIDE
End Sub
این کد هم برای نمایش دوباره دکمه Start :
()Private Sub ShowStart_Click
("" ,"OP& = FindWindow("Shell_TrayWnd
(OH& = FindWindowEx(OP&, 0, "Button", vbNullString
ShowWindow OH&, SW_SHOW
End Sub
َ API شماره 8 : از این تابع برای پیدا کردن مسیر پوشه ویندوز استفاده میشه که خیلی هم به درد می خوره.
کد تابع توی یه ماژول :
Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
lpBuffer : مقدار اين بافر توسط تابع مقدار دهي مي شود و مقدار بر گشتي آن مسير نصب ويندوز خواهد بود.
nSize : طول بافر lpBuffer است.
کد اجرایی هم توی Form_Load برنامه :
()Private Sub Form_Load
Dim WINPath As String
Dim StrBuffer As String
((StrBuffer = String(255, Chr$(0
(((WINPath = Left$(StrBuffer, GetWindowsDirectory(StrBuffer, Len(StrBuffer
MsgBox "Windows Folder : " & WINPath
End Sub
API شماره 9 : این تابع لیست همه درایو های سیستم رو برای شما تهیه میکنه.
کد تابع توی یه ماژول :
Public Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
توی این برنامه هم نقش اصلی رو بافر و طول بافر هر درایو که مشخص کننده اون درایوه بازی میکنه.
کد اصلی برنامه هم توی Form_Load :
()Private Sub Form_Load
Dim StrBuffer As String
Me.AutoRedraw = True
((StrBuffer = String(255, Chr$(0
(ret& = GetLogicalDriveStrings(255, StrBuffer
For I = 1 To 100
If Left$(StrBuffer, InStr(1, StrBuffer, Chr$(0))) = Chr$(0) Then Exit For
(Me.Print Left$(StrBuffer, InStr(1, StrBuffer, Chr$(0)) - 1
(((StrBuffer = Right$(StrBuffer, Len(StrBuffer) - InStr(1, StrBuffer, Chr$(0
Next I
End Sub
API شماره 10 : از این تابع برای جستجوی یک فایل استفاده می شه . این تابع برای پیدا کردن فایل مورد نظر همه قسمت های درایو رو جستجو میکنه و اگه فایل پیدا شد مسیر دقیق اون رو برای شما نمایش میده.
تعریف تابع توی ماژول :
Public Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) As Long
Public Const MAX_PATH = 260
RootPath : مسیر محلی که باید جستجو بشه. مثل " C:\ "
InputPathName : اسم فایل با پسوند. مثل " Ali.TXT "
OutputPathBuffer : بافر مسیر خروجی.
ثابت MAX_PATH هم که حداکثر بافر مسیر مورد جستجو رو مشخص میکنه.
کد اصلی باز هم توی Form_Load برنامه :
()Private Sub Form_Load
Dim TempStr As String
Dim Result As Long
(TempStr = String(MAX_PATH, 0
(Result = SearchTreeForFile("C:\", "Ali.txt", TempStr
If Result <> 0 Then
(MsgBox "Located file at " + Left$(TempStr, InStr(1, TempStr, Chr$(0)) - 1
Else
"!MsgBox "File not found
End If
End Sub
از متغییر TempStr برای مقدار دهی به بافر خروجی استفاده شده.
خروجی تابع عددی خواهد شد که در متغییر Result قرارخواهد گرفت.اگر Result=0 باشد بیانگر این است که فایل مورد نظر یافت نشده و اگر Result عددی غیر صفر باشد فایل مورد نظر پیدا شده است.
|
|
| AHA.x92 -) Hamid Rezaei -) |
شنبه 1 دی1386 |
 |
|
 |
اکتیو ایکس |
|
این کامپوننت ها و اکتیو ایکس های با حال بازهم دلت میاد نظر ندی ؟ ! ! !
به من میگن خدای ویژوال بیسیک کم کسی که نیستم نه
|
نام کنترل |
توضيح |
ظرفيت (KB) |
فايل |
|
ListKillProcess |
اين اکتيوايکس قابليت اين را دارد که ليست برنامه هاي در حال پردازش توسط CPU را در اختيار ما قرار دهد و به ما امکان خارج کردن هر کدام از برنامه ها را از ليست پردازش ميدهد . |
18 |
دانلود |
|
VFMp3Player |
با اين کنترل ميتوان فايلهاي MP3 را پخش کرد . حتي اين کنترل داراي صفحه حساس به شدت و تغييرات صدا مي باشد . |
94 |
دانلود |
|
3dabm7u |
اين کنترل داراي توانايي تبديل به بسياري کنترل هاي ديگر مانند ( دکمه ، فريم ، Check Box ، Option Button ، Picture Box ) مي باشد . ولي بيشترين کاربرد آن در طراحي دکمه هاي بسيار جالب و متنوع با گرافيک بالا مي باشد . |
378 |
دانلود |
|
MediaButton |
اين کنترل دکمه اي تقريبا شبيه به دکمه هاي Windows XP بوده و يکي از ويژگي هاي خوب آن کارآمد بودن در عين سادگي بودن آن است . |
11 |
دانلود |
|
OfficeButton |
اين کنترل دکمه اي تقريبا شبيه به دکمه هاي Office 2003 بوده و يکي از ويژگي هاي ساده بودن آن است . |
8 |
دانلود |
|
LHButton |
اين کنترل دکمه اي تقريبا شبيه به دکمه هاي Windows Langhorn بوده و يکي از ويژگي هاي خوب آن ساده بودن آن است . |
17 |
دانلود |
|
PBXPButton |
اين کنترل يکي از بهترين کنترل ها براي طراحي دکمه است . کنترل قابليت نمايش يک آيکون کوچک در کنار نوشته را دارد و علاوه بر ظرفيت کم آن داراي جذابيت بسياري است . |
22 |
دانلود |
|
RegControl |
با استفاده از کنترل به راحتي مي توان کارهايي از قبيل ساخت ، حذف و ويرايش کليد در رجيستري ويندوز را انجام داد . |
17 |
دانلود |
|
PicScroll |
اين کنترل نيز يکي از بهترين کنترلهاي طراحي شده مي باشد . با استفاده از اين کنترل مي توان کارهايي از قبيل Zoom کردن ، مشاهده تصويرهاي بزرگ در حالت اسکرول و حتي ذخيره کردن تصوير و کارهاي بسيار ديگر را انجام داد . |
13 |
دانلود |
|
CalcCombo |
اين کنترل يک ماشين حساب کشويي را در اختيار کابر قرار ميدهد که در عين سادگي مي تواند کاربرد بسياري داشته باشد . |
47 |
دانلود |
|
CSFontPicker |
اين کنترل قادر است تا ليست Font ها و رنگهاي سيستمي را به صورت کشويي يا ليست در اختيار ما قرار دهد . |
59 |
دانلود |
|
ColorCombo |
اين کنترل به گونه اي طراحي شده که کشوي تمام رنگها را در اختيار ما قرار مي دهد و اين قابليت را دارد که خود ما رنگهاي کشو را تنظيم کنيم . |
65 |
دانلود |
|
ArielColor |
اين کنترل نيز همانند کنترل قبلي بوده با اين تفاوت که ساده تر است و رنگهاي انتخابي آن محدودتر مي باشد . |
36 |
دانلود |
|
SkinControl |
با استفاده از اين کنترل ميتوان به راحتي فرم خود را به شکل تصوير مورد نظر در آورد . |
7 |
دانلود |
|
URLLabel |
اين کنترل هم در ايجاد لينک هايي مانند لينکهاي موجود در اينترنت کاربرد دارد . |
12 |
دانلود |
|
PopUpMenu |
با اين کنترل به راحتي مي تواند منوهاي شناور طراحي کرد . |
44 |
دانلود |
|
TreeFolder |
اين کنترل مي تواند ليست دايرکتوريهاي سيستم را به صورت درختي و با دسترسي آسان در اختيار شما قرار دهد . |
20 |
دانلود |
|
ToolTipControl |
با استفاده از کنترل شما قادر خواهيد بود تا پيغامهاي حبابي ( Tooltip ) همانند پيغام هاي خود ويندوز طراحي کنيد . |
23 |
دانلود |
|
TrayIcon |
با استفاده از کنترل شما قادر خواهيد بود آيکون برنامه خود را در کنار ساعت سيستم قرار دهيد . حتي آن را به صورت انيميشن چرخشي يا روشن خاموش تنظيم کنيد . |
37 |
دانلود |
|
MsgBoxCtrl |
اين کنترل نيز براي طراحي پيغام هايي ( MsgBox ) با تصاوير و تنظيمات دلخواه استفاده مي شود . |
24 |
دانلود |
|
HardWareInfo |
از اين کنترل مي تواند بسياري از اطلاعات سخت افزاري سيستم را در اختيار قرار دهد . |
24 |
دانلود |
|
SinusControl |
با استفاده از اين کنترل ميتوان متني را به صورت موج سينوسي شکل با سرعت و اندازه دلخواه حرکت داد . |
14 |
دانلود | |
|
| AHA.x92 -) Hamid Rezaei -) |
سه شنبه 29 آبان1386 |
 |
|
 |
دانلود سورس یک ویروس باحال از خودم |
|
این هم لینک دانلود سورس ویروس ساخته شده از خودم فقط اجرایش نکنید البته سیخ کاریش کنین ویروس باحالیه
دانلود برو حالشو یکن |
|
| AHA.x92 -) Hamid Rezaei -) |
سه شنبه 22 آبان1386 |
 |
|
|
استفاده از شی File System Object در ویژوال بیسیک
امروز می خوام درباره شی (File Sysytem Object ) که به FSO هم معروف است مطالبی را خدمت شما دوستان ارائه بدم ,این شی قابلیت کار با Drive , Folder , File , TestStream را دارد یعنی شما می توانید پوشه و یا فایلی را از مسیری به مسیر دیگر کپی و حذف و یا منتقل کنید و هم چنین می توانید پو شه ای را در مسیر مورد نظر ایجاد کنید
برای افزودن این شی به برنامه از منوی Project آیتم Refrencese را انتخاب کنید و از آن آیتم Microsoft Script Runtime را تیک می زنید . اکنون نوبت به تعریف یک متغیر از نوع ّFso می باشد
Dim Fso As New FileSystemObject
در ضمن لازم به ذکر است که App.path مسیر جاری را که برنامه اجرایی در آن قرار دارد را بر می گر داند .
Fso.CopyFile App.Path & "\text.txt", "C:\", True ' True For Ovwerwrite fso.MoveFile App.Path & "\text.txt", "C:\" ' For Move File Of Current Path to "C:\" Path fso.DeleteFile "c:\text.txt"
همین عملیات بالا را می توان برای Folder هم اجرا کرد . همان طور که متوجه شده اید این شیء بسیار مهم است و می تواند کاربرد های زیادی برایتان داشته باشد مثلاً من در زیر برنامه ای می نویسم که بتواند فایلی را در پو شه System32 ویندوز کپی کند خوب بر ای اینکه بتوان پوشه ویندوز را پیدا کنیم از یک API استفاده می کنم چون امکان داره ویندوز داخل پوشه هایی غیر از نام Windows باشد این کار بر ای بر نامه هایی که می خواهید فایلی را در پوشه ویندوز کپی کنی دکاربرد دارد مثلاً شما می خواهید فونتی را در پوشه font ویندوز کپی کنید.
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _ "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long _ ) As Long
Dim fso As New FileSystemObject Public S As String Public SysDirectory As Long
Private Sub Command1_Click() fso.CopyFile App.Path & "\vb.txt", S + "\System32\", True End Sub
Private Sub Form_Load() S = Space(255) 'Get the Windows directory WinDirectory = GetWindowsDirectory(S, 255) S = Left$(S, WinDirectory)
'#######################################
LblSource.Caption = "Source : " & App.Path & "\vb.txt" LblDestination.Caption = "Destination : " & S & "\System32\" End Sub
دانلود برنامه نمونه https://www.sharemation.com/vbcoder/vb/Copy.zip?uniq=-buiawi
*****************************
چگونه از اجراي مجدد يک برنامه در ويژوال بيسيک جلوگيري کنیم؟ خوب با استفاده از کد زير در فرم اصلي برنامه تان مي توانيد از اجراي مجدد (Duplicate) برنامه جلوگيري کنيد
Private Sub Form_Load() If App.PrevInstance = True Then Dim Result As Integer Result = MsgBox("برنامه در حال اجراست", vbInformation, "Warnnig") Unload Me End If End Sub
******************************
برنامه خاموش کردن Windows با يک کليک در اين برنامه يک پروژه ساده رو به شما معرفی ميکنم که در اون با يک کليک ساده دکمه ميتوانيد ويندوز رو خاموش کنيد . برای ساخت اين پروژه مراحل زير را طی کنيد : ۱ - ويژوال بيسيک را باز کنيد ۲ - يک فرم جديد ايجاد کنيد ۳ - از جعبه ابزار ويژوال يک دکمه روی فرم قرار دهيد ۴ - روی دکمه دو بار کليک کرده و دستور زير را در رويداد کليک دکمه تایپ کنيد
Shell ("Shutdown ") ' Shuts computer down
همانطور که ديده ميشود در صورت اجرای و فشار دکمه ويندوز خاموش ميشود. اين دستور دارای سويچ های خاص ميباشد که ميتوانيد در برنامه خود استفاده کنيد . در زير اين سويچ ها ارائه شده اند :
' Switches: l Log off profile s Shut down computer r Restart computer f Force applications to close t Set a timeout for shutdown m \\computer name Shut down remote computer i Show the Shutdown GUI
مثال :
Shell ("Shutdown -s -t 5") ' Shuts computer down after timeout of 5
بعنوان مثال در صورت استفاده از فرمان فوق سيستم بعد از 5 ثانيه خاموش ميشود. دقيقا مطابق کدی که در ويروس ام اس بلستر استفاده شده با اين تفاوت که مدت انتظار برای خاموش شدن سيستم در اين ويروس 30 ثانيه است
**************************************
چگونه وقفه ايجاد کنيم : مثلا برای بارگذاری فرم
Sub Pause(interval) Dim Current Current = Timer Do While Timer - Current < Val(interval) DoEvents Loop End Sub
******************************* بيل گيتس : جهاني فكر كنيد؟ محلي عمل كنيد! *******************************
|
|
| AHA.x92 -) Hamid Rezaei -) |
جمعه 4 آبان1386 |
 |
|
|
تشخیص فشرده شدن کليدهای کيبرد
یکی از دوستان سوال کرده بودند که چگونه می توان کلیدهای کیبرد را حتی وقتی فوکوس روی برنامه ما نیست تشخیص داد مانند دیکشنری ها که مثلاً با CTRL+F12 فعال می شوند و یا Keylogger ها که کلیدهای فشرده شده را ثبت می کنند من دو روش زیر را برای اینکار پيشنهاد می کنم :
1 - استفاده از یک تابع کتابخانه ای به اسم GetAsyncKeyState موجود در کتابخانه user32.dll . این تابع ، فشرده شدن یا رها شدن یک کلید را تشخیص می دهد . نحوه declare کردن این تابع بصورت زیر است :
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
حال در برنامه تان یک timer قرار داده و در event آن کد زیر را قرار دهید :
For i = 1 To 255 results = 0 results = GetAsyncKeyState(i) If results <> 0 Then Msgbox(Chr(i)) End If Next
برای مشاهده یک برنامه نمونه به این آدرس مراجعه کنید . http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=36078&lngWId=1
2 - استفاده از قلاب یا Hook : قلاب ، یک ابزار در مکانیزم مدیریت پیغام سیستم ویندوز است که توسط آن برنامه ها می توانند یک روتین را برای مدیریت و پردازش پیغامهای خاصی قبل از اینکه آن پیغامها به برنامه مقصد برسند نصب نمایند . قلابها باعث کندی سیستم می شوند زیرا حجم پردازشی سیستم روی هر پیغام را افزایش می دهند بنابراین بایستی زمانیکه واقعاً به قلاب نیاز دارید آنرا نصب نموده و هر چه زودتر آنرا حذف نمایید . سیستم ویندوز از انواع زیادی از قلابها پشتیبانی می کند که هر کدام امکان دستیابی به پیغامهای خاصی را مهیا می نمایند برای مثال یک برنامه کاربردی می تواند با استفاده از قلاب کیبرد برای مدیریت و پردازش پیغامهای مربوط به آن ( مثل فشرده شدن یک کلید خاص یا رها شدن آن ) استفاده کند . برای نصب یک قلاب در برنامه از یک تابع کتابخانه ای به اسم SetWindowsHookEx استفاده می شود . این تابع یک قلاب را به زنجیره قلابهای سیستم اضافه می کند . نحوه declare کردن این تابع بصورت زیر است :
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
همچنین برای آزاد کردن یک قلاب و حذف آن از زنجیره قلابها از تابع کتابخانه ای UnhookWindowsHookEx استفاده می گردد . نحوه declare کردن این تابع بصورت زیر است :
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
برای ایجاد قلاب کیبرد همچنین نیاز به تعریف یک ثابت است که شماره قلاب کیبرد در آن قرار دارد :
Public Const WH_KEYBOARD = 2
حال بایستی یک تابع پس زمینه یا Callback Function نوشت که به ازای فشرده شدن کیبرد اجرا شود و آدرس آنرا ( با استفاده از کلمه کلیدی Address Of ) بهمراه ثابت فوق به تابع SetWindowsHookEx فرستاد .
|
|
| AHA.x92 -) Hamid Rezaei -) |
جمعه 4 آبان1386 |
 |
|
 |
آخرین مطالب |
|
|
|
 |
عضويت سريع در وب |
|
|
 |
لینک دوستان |
|
|
 |
بخش ویژه |
|
|
|