講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所.

Slides:



Advertisements
Similar presentations
第2章 Visual Basic 6.0编程基础 (第一部分)
Advertisements

題目:徽章之記憶 南台科技大學 機械系 車輛一乙 學號:4A 姓名:黃冠嘉 教師:謝慶存
第 1 章 公共基础知识 第 2 章 Visual Basic程序开发环境 第 3 章 对象及其操作 第 4 章 数据类型及其运算
計算機程式及實習 期末報告 題目:超級猜一猜
計算機程式及實習 期末報告 題目:商店結帳系統
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
客户端用Net-Library和SQL SERVER连接
課程名稱:程式設計 授課老師:________
VB教学中游戏化教学案例设计.
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
CH10.
Visual Basic程序设计.
程式語言Visual Basic 變數的可視範圍
CH11.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第5章 数组 Visual Basic程序设计.
程式語言 -Visual Basic 變數、常數與資料型態.
Visual Basic程序设计 第八章 过程 -子程序和函数
过程 第 7 章.
初识Visual Basic.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第4章 程序控制结构与算法基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
Visual Basic 程序设计 教师:王 杨 电话:
第十二章 多模組與多專案.
程式語言Visual Basic 傳址與傳值
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
新觀念的 VB6 教本 第 6 章 資料型別.
PCR300 (13.56MHz) Reader RS232/USB.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
算法与程序设计 周少品.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
金融資訊管理 撰寫VBA的基本事項.
VB语言程序设计教程.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
DEV342 Visual Basic 2005: 应用程序框架 和高级语言特性
动态链接库 主讲人:孙鑫
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
函數應用(二)與自定函數.
1位选手参加了歌唱比赛,评委们的评分如下:
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
解析算法与枚举算法.
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
程序调试与错误处理.
Presentation transcript:

講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所

第十八章 呼叫Windows API

Windows API 一堆以C語言寫成的函式庫, 功能強大, 應有盡有 Windows作業系統的一部份 透過API與O.S 溝通

Application Programming Interface 應用程式 Application Programming Interface O.S Hardware

Where is Windows API 在作業系統的動態連結程式庫 (*.DLL) EX: Gdi32.dll 圖形周邊設備介面 API Netapi32.dll 32位元網路 API Winmm.dll Windows多媒體 API

宣告 API 函式 Declare Function VB函式 Lib “DLL名” [Alias “API函式名”] (參數列) As 傳回值型態 Declare Sub VB函式 Lib “DLL名” [Alias “API函式名”] (參數列)

宣告 API 函式(cont’d) Declare Function HideCaret Lib “user32” Alias “HideCaret” (ByVal hwnd as Long) As Long Dim x as Integer x=HideCaret(text1.hwnd)

宣告 API 函式(cont’d) 使用API檢視員 檔案/載入文字檔, 選取WIN32API.TXT (加快)將文字檔轉換成資料庫格式 API 類型宣告(Declares) 型態(Types) 常數(Constants)

範例一:取消關閉視窗功能 GetSystemMenu DeleteMenu

範例一:取消關閉視窗功能(cont’d) Public Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Public Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

範例一:取消關閉視窗功能(cont’d) Private Const MF_BYCOMMAND = &H0& Public Const MF_BYPOSITION = &H400&  Private Const SC_MAXIMIZE = &HF030  Private Const SC_RESTORE = &HF120 Private Const SC_SIZE = &HF000 Private Const SC_MOVE = &HF010 Private Const SC_MINIMIZE = &HF020 Private Const SC_CLOSE = &HF060

範例一:取消關閉視窗功能(cont’d) Dim hMenu As Long, Success As Long  hMenu = GetSystemMenu(Me.hWnd, 0)  '禁止還原按鈕 Success = DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND)  '禁止改變大小 Success = DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND)  '禁止最大化 Success = DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND)  '禁止最小化 Success = DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND)  '禁止關閉 Success = DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)  '禁止移動 Success = DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND) 

範例二:圖形介面功能表 利用API檢視員加入GetMenu, GetSubMenu, GetMenuItemId, SetMenuItemBitMaps, MF_BITMAP, and MF_BYPOSITION

範例二:圖形介面功能表(cont’d) Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long Private Const MF_BITMAP = &H4& Private Const MF_BYPOSITION = &H400&

範例二:圖形介面功能表(cont’d) Dim hMenu, hSubMenu, MenuId As Long Dim Pic(3) As Picture Private Sub Form_Load() Set Pic(0) = LoadPicture(App.Path & "\01.bmp") Set Pic(1) = LoadPicture(App.Path & "\02.bmp") hMenu = GetMenu(Me.hwnd) hSubMenu = GetSubMenu(hMenu, 0) SetMenuItemBitmaps hSubMenu, 2, MF_BYPOSITION, Pic(0).Handle, 0 SetMenuItemBitmaps hSubMenu, 3, MF_BYPOSITION, Pic(0).Handle, Pic(1).Handle End Sub

範例二:圖形介面功能表 Private Sub mm3_Click() mm3.Checked = True End Sub

範例三:得知已開機時間 GetTickCount Private Declare Function GetTickCount Lib "kernel32" () As Long Private Sub Command1_Click() MymSec = GetTickCount() MyDay = MymSec \ 86400000 MyHour = MymSec \ 3600000 Mod 24 MyMin = MymSec \ 60000 Mod 60 MySec = MymSec \ 1000 Mod 60 MsgBox "已經開機:" & MyDay & "天 " & MyHour & "小時 " & MyMin & "分 " & MySec & "秒" End Sub

範例四:清除資源回收桶 SHEmptyRecycleBinA SHEmptyRecycleBin 0, vbNullstring, 0 Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hWnd As Long, ByVal pszRootPath As String, ByVal flags As Long) As Long SHEmptyRecycleBin 0, vbNullstring, 0 SHEmptyRecycleBin 0, "E:\", 0

範例四:清除資源回收桶(cont’d) Flags 1:不要清除的對話框 2:不顯示刪除進行對畫框 4:不發出資源回收統刪除事件的聲音。