Imports mshtml Imports System.Text. Module Module1. Public ChildWindowsList As New List(Of WINDOW) Public HTMLDoc As mshtml.htmldocument = Nothing
|
|
- Kimberly Richards
- 5 years ago
- Views:
Transcription
1 'WinControl example by Robert Berlinski. Copyright (c) 2016 Robert Berlinski. All rights reserved. 'Compile in Visual Studio Express 2015 for Windows (add mshtml to the project) 'It is only a simple illustration without fancy bells and whistles, e.g. it writes output to system console. 'It requires.net and has been tested with Win 7 and 8.1 'Included examples: ' 1. RunKeys with notepad ' 2. RunKeys with calculator ' 3. GUI with calculator ' 4. IE OLE (it assumes only one IE instance with one tab is opened) 'The program waits after each example until the current windows will be closed. 'Legal note 'The author hereby grand copy, publish, modification and recompile rights ' to http//ptaq.org/ their affiliates and friends for non commercial use. 'The author provides the code as it is without any guarantee. 'The author should not be liable for how the code will be used and how it will or will not work. Imports mshtml Imports System.Text Module Module1 Public ChildWindowsList As New List(Of WINDOW) Public HTMLDoc As mshtml.htmldocument = Nothing Public Declare Sub Sleep Lib "kernel32.dll" ( ByVal Milliseconds As Integer) Public Declare Function GetWindowRect Lib "user32.dll" ( ByVal hwnd As IntPtr, ByRef lprect As RECT) As Boolean Public Declare Function SetForegroundWindow Lib "user32.dll" ( ByVal hwnd As IntPtr) As Boolean Public Declare Function SetActiveWindow Lib "user32.dll" ( ByVal hwnd As IntPtr) As IntPtr Public Declare Function MoveWindow Lib "user32.dll" ( ByVal hwnd As IntPtr, ByVal x As Int32, ByVal y As Int32, ByVal nwidth As Int32, ByVal nheight As Int32, ByVal brepaint As Boolean) As Boolean 'GUI
2 Public Const BM_CLICK As Integer = &H00F5 Public Const GWL_STYLE As Integer = (-16) Public Const GWL_EXSTYLE As Integer = (-20) Public Const GWL_ID As Integer = (-12) Public Const EM_GETFIRSTVISIBLELINE = &HCE Public Const EM_GETLINE As Integer = &HC4 Public Const EM_LINEINDEX As Integer = &HBB Public Const EM_LINELENGTH As Integer = &HC1 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( ByVal hwnd As IntPtr, ByVal wmsg As UInteger, ByVal wparam As IntPtr, ByVal lparam As IntPtr) As IntPtr Public Declare Function SendMessage2 Lib "user32" Alias "SendMessageA" ( ByVal hwnd As IntPtr, ByVal wmsg As UInteger, ByVal wparam As UInteger, ByVal lparam As StringBuilder) As Integer Public Declare Function GetParent Lib "user32" ( ByVal hwnd As IntPtr) As IntPtr Declare Ansi Function GetClassName Lib "user32" Alias "GetClassNameA" ( ByVal hwnd As IntPtr, ByVal lpclassname As StringBuilder, ByVal nmaxcount As Int32) As Int32 Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( ByVal hwnd As System.IntPtr, ByVal nindex As Integer) As Integer Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( ByVal hwnd As IntPtr, ByVal lpstring As StringBuilder, ByVal cch As Integer) As Integer Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" ( ByVal hwnd As IntPtr, ByVal lpstring As StringBuilder) As Integer Public Declare Function InvalidateRect Lib "user32" ( ByVal hwnd As IntPtr,
3 ByVal rect As IntPtr, ByVal clear As Boolean) As Boolean Public Declare Function UpdateWindow Lib "user32" ( ByVal hwnd As IntPtr) As Boolean Public Declare Function EnumChildWindows Lib "user32" ( ByVal hwnd As IntPtr, ByVal lpenumfunc As EnumChildProcDelegate, ByVal lparam As IntPtr) As Boolean Public Delegate Function EnumChildProcDelegate( ByVal lhwnd As IntPtr, ByVal lparam As IntPtr) As Boolean Delegate Function EnumChildProc( ByVal hwnd As IntPtr, ByRef lparam As IntPtr) As Int32 'IE Public Const SMTO_ABORTIFHUNG As Int32 = &H2 Declare Ansi Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" ( ByVal lpstring As String) As Int32 Declare Ansi Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" ( ByVal hwnd As IntPtr, ByVal msg As Int32, ByVal wparam As Int32, ByVal lparam As Int32, ByVal fuflags As Int32, ByVal utimeout As Int32, ByRef lpdwresult As Int32) As Int32 Declare Function ObjectFromLresult Lib "oleacc" ( ByVal lresult As Int32, ByRef riid As System.Guid, ByVal wparam As Int32, ByRef ppvobject As IHTMLDocument) As Int32 Public Structure RECT Dim Left As Integer Dim Top As Integer Dim Right As Integer Dim Bottom As Integer End Structure 'x position Of upper-left corner 'y position Of upper-left corner 'x position Of lower-right corner 'y position Of lower-right corner
4 Public Function GetWindowRect(ByVal hwnd As IntPtr) As RECT Dim Rect As RECT ActiveWindowRect(hWnd) GetWindowRect(hWnd, Rect) Return Rect Public Sub MoveWindow(ByVal hwnd As IntPtr, ByVal x As Int32, ByVal y As Int32, ByVal nwidth As Int32, ByVal nheight As Int32) ActiveWindowRect(hWnd) MoveWindow(hWnd, x, y, nwidth, nheight, True) Public Sub MoveWindowTo(ByVal hwnd As IntPtr, ByVal x As Int32, ByVal y As Int32) Dim WinRect As RECT = GetWindowRect(hWnd) MoveWindow(hWnd, x, y, WinRect.Right - WinRect.Left, WinRect.Bottom - WinRect.Top) Public Structure WINDOW Public lhwnd As IntPtr Public lhwndparent As IntPtr Public WinRect As RECT Public ClassName As String Public Title As String Public ID As Integer End Structure Public Sub ActiveWindowRect(ByVal hwnd As IntPtr) SetForegroundWindow(hWnd) SetActiveWindow(hWnd) Public Function StartApp(ByVal name As String) As System.Diagnostics.Process Dim IEProcess As System.Diagnostics.Process Dim AppHandle As IntPtr IEProcess = System.Diagnostics.Process.Start(name) Sleep(1000) AppHandle = IEProcess.MainWindowHandle ActiveWindowRect(AppHandle) Console.WriteLine("Running " + IEProcess.ProcessName) Return IEProcess
5 Sub SendKeys(ByVal hwnd As IntPtr, ByVal keys As String, ByVal msec As Integer) ActiveWindowRect(hWnd) ' My.Computer.Keyboard.SendKeys(keys, True) Sleep(msec) 'GUI Public Function StripNulls(OriginalStr As String) As String ' This removes the extra Nulls so String comparisons will work If (InStr(OriginalStr, Chr(0)) > 0) Then OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1) StripNulls = OriginalStr Private Function GetClassName(ByVal lhwnd As IntPtr) As String Dim StrBuf As StringBuilder = New StringBuilder(256) Dim RetVal As Integer = GetClassName(lhWnd, StrBuf, StrBuf.Capacity - 2) GetClassName = StripNulls(StrBuf.ToString) Public Function GetButtonID(ByVal lhwnd As IntPtr) As UInteger Dim Ret As UInteger = GetWindowLong(lhWnd, GWL_ID) GetButtonID = Ret Private Function GetWindowText(ByVal lhwnd As IntPtr) As String Dim StrBuf As StringBuilder = New StringBuilder(256) Dim RetVal As Integer = GetWindowText(lhWnd, StrBuf, StrBuf.Capacity - 2) GetWindowText = StripNulls(StrBuf.ToString) Public Function GetHtmlDocument(ByVal hwnd As IntPtr) As IHTMLDocument Dim IID_IHTMLDocument As System.Guid = New System.Guid("626FC520-A41E-11CF-A731-00A0C ") Dim lres As Int32 Dim lmsg As Int32 Dim hr As Int32 Console.WriteLine("Will send WM_HTML_GETOBJECT to hwnd={0}", hwnd) lmsg = RegisterWindowMessage("WM_HTML_GETOBJECT") Call SendMessageTimeout(hWnd, lmsg, 0, 0, SMTO_ABORTIFHUNG, 1000, lres) If lres = 0 Then Throw New Exception("Expected non zero return") hr = ObjectFromLresult(lRes, IID_IHTMLDocument, 0, GetHtmlDocument) If hr Then Throw New Exception(hr)
6 Public Function GetElement(ByVal lhwnd As IntPtr) As WINDOW Dim Window As WINDOW Window.lhWnd = lhwnd Window.lhWndParent = GetParent(lhWnd) Window.ClassName = GetClassName(lhWnd) Window.ID = GetButtonID(lhWnd) Window.Title = "" ' If Window.ClassName = "Edit" Then Console.WriteLine(CStr(lhWnd)) Dim LineIndex As Integer = SendMessage(lhWnd, EM_GETFIRSTVISIBLELINE, 0, 0) Console.WriteLine("EM_GETFIRSTVISIBLELINE={0}", LineIndex) Dim CharIndex As Integer = SendMessage(lhWnd, EM_LINEINDEX, LineIndex, 0) Console.WriteLine("EM_LINEINDEX={0}", CharIndex) Dim LineTextLen As Integer = SendMessage(lhWnd, EM_LINELENGTH, CharIndex, 0) Console.WriteLine("EM_LINELENGTH={0}", LineTextLen) If LineTextLen > 0 Then Dim Text As StringBuilder = New StringBuilder(10000) Text.Insert(0, Chr(32), 99) Dim Retval = SendMessage2(lhWnd, EM_GETLINE, LineIndex, Text) If Retval > 0 Then Window.Title = Text.ToString.Substring(0, Retval) Console.WriteLine("Retrived={0} '{1}'", Retval, Window.Title) Else Window.Title = GetWindowText(lhWnd) Window.WinRect = GetWindowRect(lhWnd) If Window.ClassName = "Internet Explorer_Server" Then HTMLDoc = GetHtmlDocument(lhWnd) GetElement = Window Public Function ParentToString(ByVal Parent As WINDOW) As String Dim MsgText As String = String.Format("Parent Window id={0}, class='{1}', title='{2}'", CStr(Parent.lhWnd), Parent.ClassName, Parent.Title) ParentToString = MsgText Public Function GetWidth(ByVal Rect As RECT) As Integer GetWidth = Rect.Right - Rect.Left
7 Public Function GetHeight(ByVal Rect As RECT) As Integer GetHeight = Rect.Bottom - Rect.Top Public Function WindowToString(ByVal Element As WINDOW, ByVal count As Integer) As String Dim MsgText As String = String.Format("{0:D4};{1};{2};'{3}';'{4}';{5};{6};{7};{8};{9}", count, CStr(Element.lhWnd), CStr(Element.lhWndParent), Element.ID, Element.ClassName, Element.Title, CStr(Element.WinRect.Left), CStr(Element.WinRect.Top), CStr(GetWidth(Element.WinRect)), CStr(GetHeight(Element.WinRect))) WindowToString = MsgText Public Function TheEnumChildProc(ByVal lhwnd As IntPtr, ByVal lparent As IntPtr) As Boolean Dim Element As WINDOW = GetElement(lhWnd) Dim MsgText As String = "" ChildWindowsList.Add(Element) Console.WriteLine(WindowToString(Element, ChildWindowsList.Count), 0) TheEnumChildProc = True 'continue enumeration Public Function GetChildWindows(ByVal lhwnd As IntPtr) As List(Of WINDOW) Dim Parent As WINDOW = GetElement(lhWnd) Console.WriteLine(ParentToString(Parent), 0) Console.WriteLine("count;handler;parent;id;class;title;x;y;width;height;id/msg", 0) ChildWindowsList.Clear() Try EnumChildWindows(lhWnd, AddressOf TheEnumChildProc, Parent.lhWnd) Catch e As AccessViolationException Console.WriteLine(e.Message) End Try GetChildWindows = ChildWindowsList Public Sub EnumChildButtons() Dim Window As WINDOW Dim TextBuf = New StringBuilder(100) For Each Window In ChildWindowsList If Window.ClassName = "Button" Then TextBuf.Clear()
8 TextBuf.Append(CStr(Window.ID)) SetWindowText(Window.lhWnd, TextBuf) InvalidateRect(Window.lhWnd, IntPtr.Zero, True) UpdateWindow(Window.lhWnd) Next Public Sub ClickChildButton(ByVal lhwnd As IntPtr, ByVal ID As Integer) Dim Window As WINDOW Dim MsgRet As UInteger For Each Window In ChildWindowsList If Window.ID = ID Then ActiveWindowRect(lhWnd) MsgRet = SendMessage(Window.lhWnd, BM_CLICK, 0, 0) Next 'IE Sub IEOpenURL(ByVal lhwnd As IntPtr, ByVal keys As String) ActiveWindowRect(lhWnd) My.Computer.Keyboard.SendKeys("%{D}{DEL}", True) Sleep(100) My.Computer.Keyboard.SendKeys(keys, True) Sleep(100) My.Computer.Keyboard.SendKeys("{ENTER}", True) Public Sub SetIEHTMLInput(ByVal id As String, ByVal Text As String) If HTMLDoc Is Nothing Then Console.WriteLine("HTMLDoc is null", 0) Dim HTMLElement As mshtml.ihtmlinputelement = HTMLDoc.getElementById(id) HTMLElement.value = Text + Chr(0) Public Sub ClickIEHTMLButton(ByVal name As String) If HTMLDoc Is Nothing Then Console.WriteLine("HTMLDoc is null", 0) 'It assumes that one and only one button with the given name exists Dim HTMLElement As mshtml.htmlbuttonelement = HTMLDoc.getElementsByName(name).item(0) Console.WriteLine("Click on ", HTMLElement.name) HTMLElement.click() Console.WriteLine("Done")
9 Public Function gethtmlrectangle(byref Rect As IHTMLRect) As String gethtmlrectangle = String.Format("at {0}.{1} {2}.{3}", Rect.left, Rect.top, Rect.right - Rect.left, Rect.bottom - Rect.top) Public Sub EnumIEHTMLELement(ByVal HTMLElement As mshtml.ihtmlelement, ByVal level As Integer) Dim name As String = "" Dim value As String = "" Dim place As String = "" If TypeOf HTMLElement Is HTMLInputElement Then Dim element As HTMLInputElement = HTMLElement name = element.name value = element.value place = gethtmlrectangle(element.getboundingclientrect()) If TypeOf HTMLElement Is HTMLAnchorElement Then Dim element As HTMLAnchorElement = HTMLElement name = element.name value = element.tostring place = gethtmlrectangle(element.getboundingclientrect()) If TypeOf HTMLElement Is HTMLDivElement Then Dim element As HTMLDivElement = HTMLElement name = "id=" + element.uniqueid If element.innertext IsNot Nothing Then value = element.innertext.substring(0, Math.Min(element.innerText.Length, 20)) place = gethtmlrectangle(element.getboundingclientrect()) If TypeOf HTMLElement Is HTMLTableCell Then Dim element As HTMLTableCell = HTMLElement name = element.title If element.innertext IsNot Nothing Then value = element.innertext.substring(0, Math.Min(element.innerText.Length, 20)) value = value + " cl=" + CStr(element.clientLeft) + " ol=" + CStr(element.offsetLeft) place = gethtmlrectangle(element.getboundingclientrect()) Console.WriteLine(String.Format("{0} type='{1}' tag='{2}' class='{3}' id='{4}' name='{5}' value='{6}' place='{7}' parent={8}", Space(level * 2), HTMLElement.GetType, HTMLElement.tagName, HTMLElement.className, HTMLElement.id, name, value, place, HTMLElement.parentElement), 0)
10 Dim HTMLElementChild As mshtml.ihtmlelement For Each HTMLElementChild In HTMLElement.children EnumIEHTMLELement(HTMLElementChild, level + 1) Next Public Sub EnumIEHTML() If HTMLDoc.Equals(Nothing) Then Console.WriteLine("HTMLDoc is null", 0) Console.WriteLine(String.Format("HTML Elements {0}", HTMLDoc.all.length), 0) Dim HTMLElement As mshtml.ihtmlelement Dim index As Integer Dim length As Integer = HTMLDoc.getElementsByTagName("HTML").length For index = 0 To length - 1 Console.WriteLine(String.Format("HTML Element #{0}", index), 0) HTMLElement = HTMLDoc.getElementsByTagName("HTML").item(index) EnumIEHTMLELement(HTMLElement, 0) Next Sub Notepad() Dim Process As System.Diagnostics.Process = StartApp("C:\Windows\System32\notepad.exe") Dim hwnd As IntPtr = Process.MainWindowHandle MoveWindowTo(hWnd, 100, 100) Sleep(500) SendKeys(hWnd, "Lorem ipsum dolor sit amet", 100) Process.WaitForExit() Sub Calc() Dim Process As System.Diagnostics.Process = StartApp("C:\Windows\System32\calc.exe") Dim hwnd As IntPtr = Process.MainWindowHandle MoveWindowTo(hWnd, 100, 100) Sleep(1000) ' SendKeys(hWnd, "%3", 500) SendKeys(hWnd, "{F8}", 500) SendKeys(hWnd, "10", 200) SendKeys(hWnd, "{+}", 200) SendKeys(hWnd, "10", 200) SendKeys(hWnd, "{ENTER}", 200) SendKeys(hWnd, "{F6}", 200) Process.WaitForExit() 'C,81 EQL,121 DIV,91 MUL,92 MIN,94 PLU,93 POINT,84
11 'D1,131 D2,132 D3,133 D4,134 D5,135 D6,136 D7,137 D8,138 D9,139 D0,130 Sub CalcGUI() Dim Process As System.Diagnostics.Process = StartApp("C:\Windows\System32\calc.exe") Dim hwnd As IntPtr = Process.MainWindowHandle MoveWindowTo(hWnd, 100, 100) Sleep(1000) GetChildWindows(hWnd) Sleep(500) EnumChildButtons() Sleep(500) ClickChildButton(hWnd, 81) 'Clear ClickChildButton(hWnd, 132) '2 ClickChildButton(hWnd, 92) '* ClickChildButton(hWnd, 133) '3 ClickChildButton(hWnd, 121) '= ClickChildButton(hWnd, 93) '+ ClickChildButton(hWnd, 134) '4 ClickChildButton(hWnd, 121) '= Process.WaitForExit() Sub IE() Dim Process As System.Diagnostics.Process = StartApp("C:\Program Files\Internet Explorer\iexplore.exe") Dim hwnd As IntPtr = Process.MainWindowHandle MoveWindowTo(hWnd, 100, 100) Sleep(500) IEOpenURL(hWnd, " Sleep(500) GetChildWindows(hWnd) Sleep(200) EnumIEHTML() Sleep(200) SetIEHTMLInput("search-searchword", "GUI") Sleep(500) ClickIEHTMLButton("Search") Process.WaitForExit() Sub Main() Console.WriteLine("Start " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")) Notepad() Sleep(1000) Calc() Sleep(1000) CalcGUI() Sleep(1000) IE() ' make sure that IE opens only one tab, the code assumes no other tabs are opend
12 Console.WriteLine("Finish " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")) Console.WriteLine("Press eny key to exit") Console.ReadKey() End Module
Interacting with External Applications
Interacting with External Applications DLLs - dynamic linked libraries: Libraries of compiled procedures/functions that applications link to at run time DLL can be updated independently of apps using them
More informationReplaying ADK Files for Testing Blaise Applications
Replaying ADK Files for Testing Blaise Applications Jason Ostergren and Rhonda Ash, Health and Retirement Study, Institute for Social Research, University of Michigan 1. INTRODUCTION The Health and Retirement
More informationKey Switch Control Software Windows driver software for Touch Panel Classembly Devices
IFKSMGR.WIN Key Switch Control Software Windows driver software for Touch Panel Classembly Devices Help for Windows www.interface.co.jp Contents Chapter 1 Introduction 3 1.1 Overview... 3 1.2 Features...
More informationCC Pilot XS. Video interface description
CC Pilot XS Video interface description Table of Contents Introduction... 3 Purpose... 3 References... 3 History... 3 Introdution... 4 Starting CCVideoXS... 4 Controlling CCVideoXS... 5 Windows messages...
More informationPROGRAMMING TECHNIQUES
Subclassing? Class modules aren t just for business rules. by Karl E. Peterson f all the innovations Visual Basic 4.0 introduced, the most revolutionary is probably the new Class module. By now, you ve
More information// handle of dialog box
GetDlgItemText / GetDlgItemTextA / GetDlgItemTextW Hàm GetDlgItemText có nhiệm vụ tìm title hoặc text kết hợp với control trong dialog box UINT GetDlgItemText( HWND hdlg, int niddlgitem, LPTSTR lpstring,
More informationLSN 4 GUI Programming Using The WIN32 API
LSN 4 GUI Programming Using The WIN32 API ECT362 Operating Systems Department of Engineering Technology LSN 4 Why program GUIs? This application will help introduce you to using the Win32 API Gain familiarity
More informationUnit 4. Lesson 4.1. Managing Data. Data types. Introduction. Data type. Visual Basic 2008 Data types
Managing Data Unit 4 Managing Data Introduction Lesson 4.1 Data types We come across many types of information and data in our daily life. For example, we need to handle data such as name, address, money,
More informationCall DLL from Limnor Applications
Call DLL from Limnor Applications There is a lot of computer software in the format of dynamic link libraries (DLL). DLLCaller performer allows your applications to call DLL functions directly. Here we
More informationWindows Programming. 1 st Week, 2011
Windows Programming 1 st Week, 2011 시작하기 Visual Studio 2008 새프로젝트 파일 새로만들기 프로젝트 Visual C++ 프로젝트 Win32 프로젝트 빈프로젝트 응용프로그램설정 Prac01 솔루션 새항목추가 C++ 파일 main.cpp main0.cpp cpp 다운로드 솔루션빌드 오류 Unicode vs. Multi-Byte
More informationVISUAL BASIC SERVER INTERFACE CODE. Visual Basic 6 Graphical Interface 103. Visual Basic Module rtsscomm.bas Code.115
APPENDIX E VISUAL BASIC SERVER INTERFACE CODE Page E.1: E.2: E.3: E.4: E.5: Visual Basic 6 Graphical Interface 103 Visual Basic Form gyrofront.frm Code.....104 Visual Basic Module mydatatypes.bas Code..114
More informationLevel 3 Computing Year 2 Lecturer: Phil Smith
Level 3 Computing Year 2 Lecturer: Phil Smith Previously We started to build a GUI program using visual studio 2010 and vb.net. We have a form designed. We have started to write the code to provided the
More informationCustomizable Toolbar: Implementing a toolbar combo button
Customizable Toolbar: Implementing a toolbar combo button Problem How do I implement a Combo Button on my toolbar? I'm having trouble getting notifications, filling the list, adding to the list, or handling
More informationSystem Monitoring Library Windows Driver Software for Industrial Controllers
IFPMGR.WIN System Monitoring Library Windows Driver Software for Industrial ontrollers Help for Windows www.interface.co.jp ontents hapter 1 Introduction...4 1.1 Overview... 4 1.2 Features... 4 hapter
More informationPASSTCERT QUESTION & ANSWER
PASSTCERT QUESTION & ANSWER Higher Quality Better Service! Weofferfreeupdateserviceforoneyear HTTP://WWW.PASSTCERT.COM Exam : 070-540VB Title : TS: MS.NET Frmewk 3.5, Workflow Foundation App Dev Version
More informationUniversitas Sumatera Utara
Option Explicit DefLng A-Z '--------------------------------------------------------------------------------------------- #Const Test = False '---------------------------------------------------------------------------------------------
More information2. A GUI A. uses buttons, menus, and icons B. should be easy for a user to manipulate C. both (a) and (b) D. stands for Graphic Use Interaction
1. Which language is not a true object-oriented programming language? A. VB 6 B. VB.NET C. JAVA D. C++ 2. A GUI A. uses buttons, menus, and icons B. should be easy for a user to manipulate C. both (a)
More informationFunction: function procedures and sub procedures share the same characteristics, with
Function: function procedures and sub procedures share the same characteristics, with one important difference- function procedures return a value (e.g., give a value back) to the caller, whereas sub procedures
More informationPI Event Frames for Corrosion Coupon Data. By: Randy Esposito & Rick Davin Nalco Energy Services Automation Center of Excellence
PI Event Frames for Corrosion Coupon Data By: Randy Esposito & Rick Davin Nalco Energy Services Automation Center of Excellence Agenda Who is Nalco, what do we do What is a Corrosion Coupon and why do
More informationQuick Reference Guide
SOFTWARE AND HARDWARE SOLUTIONS FOR THE EMBEDDED WORLD mikroelektronika Development tools - Books - Compilers Quick Reference Quick Reference Guide with EXAMPLES for Basic language This reference guide
More informationSyntax. Table of Contents
Syntax Table of Contents First Edition2 Conventions Used In This Book / Way Of Writing..2 KBasic-Syntax..3 Variable.4 Declaration4 Dim4 Public..4 Private.4 Protected.4 Static.4 As..4 Assignment4 User Defined
More informationProgramming in graphical environment. Introduction
Programming in graphical environment Introduction The lecture Additional resources available at: http://www.mini.pw.edu.pl/~maczewsk/windows_2004 Recommended books: Programming Windows - Charles Petzold
More informationThe following are required to duplicate the process outlined in this document.
Technical Note ClientAce WPF Project Example 1. Introduction Traditional Windows forms are being replaced by Windows Presentation Foundation 1 (WPF) forms. WPF forms are fundamentally different and designed
More informationGetting Started. 1 st Week, Sun-Jeong Kim. Computer Graphics Applications
OpenGL Programming Getting Started 1 st Week, 2008 Sun-Jeong Kim Visual Studio 2005 Windows Programming 2 Visual C++ Win32 Application New Project 3 Empty project Application Settings 4 Solution Prac01
More informationHands-On Lab. Lab Manual HOLDEV083 Advanced Language Features in Visual Basic
Hands-On Lab Lab Manual HOLDEV083 Advanced Language Features in Visual Basic Please do not remove this manual from the lab The lab manual will be available from CommNet Release Date: May 2005 m Information
More informationC:\homeworks\PenAttention_v13_src\PenAttention_v13_src\PenAttention4\PenAttention\PenAttention.cs 1 using System; 2 using System.Diagnostics; 3 using
1 using System; 2 using System.Diagnostics; 3 using System.Collections.Generic; 4 using System.ComponentModel; 5 using System.Data; 6 using System.Drawing; 7 using System.Text; 8 using System.Windows.Forms;
More informationInput and Interaction
Input and Interaction 5 th Week, 2011 Graphical Input Devices Mouse Trackball Light Pen Data Tablet Joy Stick Space Ball Input Modes Input devices contain a trigger which can be used to send a signal to
More informationAdvantech Windows CE.net Application Hand on Lab
Advantech Windows CE.net Application Hand on Lab Lab : Serial Port Communication Objectives After completing this lab, you will be able to: Create an application to open, initialize the serial port, and
More informationCIDARMT. Reference Manual VERSION NET Assembly. Sep-11
CIDARMT.NET Assembly Reference Manual VERSION 3.4 Sep-11 Contents CONTENTS... 2 INTRODUCTION... 3 CONFIGURATION... 4 CONFIGURATION... 4 INITIALISATION / FINALISATION... 6 INIT... 6 QUERYEND... 8 CONTAINER
More informationWindows Programming in C++
Windows Programming in C++ You must use special libraries (aka APIs application programming interfaces) to make something other than a text-based program. The C++ choices are: The original Windows SDK
More information(Subroutines in Visual Basic)
Ch 7 Procedures (Subroutines in Visual Basic) Visual Basic Procedures Structured Programs To simplify writing complex programs, most Programmers (Designers/Developers) choose to split the problem into
More informationsoftmc Servotronix Motion API Reference Manual Revision 1.0
Servotronix Motion API Reference Manual Revision 1.0 Revision History Document Revision Date 1.0 Nov. 2014 Initial release Copyright Notice Disclaimer Trademarks 2014 Servotronix Motion Control Ltd. All
More informationTest iz programskog jezika C# - ASP Izaberite tačan odgovor. Student's name : Programiranje ASP C# 1) A local variable
Student's name : E-mail: Test štampajte i skeniranog ga vratite na e-mail office@e-univerzitet.com U slučaju da nemate tehničke mogućnosti, prihvata se i da na datu e-mail adresu pošaljete odgovore sa
More informationبسن اهلل الزمحن الزحين اكواد الفيجوال بيسك تأليف : أمحد صادق
بسن اهلل الزمحن الزحين اكواد الفيجوال بيسك تأليف : أمحد صادق مقذمح : يضم هذا انكرية انصغيز اكثز اكىاد انثيسك اهميح تانىسثح نهمثرذئيه وانهغاخ انثسيطح انر قذ يصعة انحصىل عهيها نرشرد مىضىعاذها وقذ قمد تجمعها
More informationChapter 15 Programming Paradigm
Chapter 15 Programming Paradigm A Windows program, like any other interactive program, is for the most part inputdriven. However, the input of a Windows program is conveniently predigested by the operating
More informationUSB-1608G CSharp (C#) External Trigger Auto Retrigger
The following example demonstrates how to set the API to automatically re-arm the trigger after an acquisition has completed. This program uses the External Trigger input and once received, a fixed amount
More informationLecture 4 DLLs and Custom Hardware Programming
Lecture 4 DLLs and Custom Hardware Programming Dynamically Link Libraries (DLL) Generating EXE file involves: (1) Compile source, which generates object/libraries files (.OBJ,.LIB), and (2) Linking object
More informationWindows Event Binding Made Easy Doug Hennig
Windows Event Binding Made Easy Doug Hennig A feature available in other development environments but missing in VFP is the ability to capture Windows events. VFP 9 extends the BINDEVENT() function to
More informationAspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial. Part V Examples. Examples V/1
Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial Part V V/1 AspectC++ in Practice - Applying the observer protocol Example: a typical scenario for the widely used observer pattern
More informationDarshan Institute of Engineering & Technology for Diploma Studies
Dialog Box: There are many built-in dialog boxes to be used in Windows forms for various tasks like opening and saving files, printing a page, providing choices for colors, fonts, page setup, etc., to
More informationEWF Management Software Windows driver software for Classembly Devices /Industrial Controller
IFEWF.WIN EWF Management Software Windows driver software for Classembly Devices /Industrial Controller Help for Windows www.interface.co.jp Contents Chapter 1 Introduction...3 1.1 Overview... 3 1.2 Features...
More informationFoxit Reader SDK. Programming Guide
Foxit Reader SDK For Windows and Linux Programming Guide Revision 1.4 Foxit Software Company 2005.12 Overview Features Tutorials Calling from Different Programming Languages Reference Redistribution Overview
More informationHands-On Lab. Multitouch Gestures - Native. Lab version: Last updated: 12/3/2010
Hands-On Lab Multitouch Gestures - Native Lab version: 1.0.0 Last updated: 12/3/2010 CONTENTS OVERVIEW... 3 EXERCISE 1: BUILD A MULTITOUCH APPLICATION... 7 Task 1 Create the Win32 Application... 7 Task
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationAsynchronous Programming Model (APM) 1 Calling Asynchronous Methods Using IAsyncResult 4 Blocking Application Execution by Ending an Async Operation
Asynchronous Programming Model (APM) 1 Calling Asynchronous Methods Using IAsyncResult 4 Blocking Application Execution by Ending an Async Operation 5 Blocking Application Execution Using an AsyncWaitHandle
More informationIntroduction to C# Applications
1 2 3 Introduction to C# Applications OBJECTIVES To write simple C# applications To write statements that input and output data to the screen. To declare and use data of various types. To write decision-making
More informationWe display some text in the middle of a window, and see how the text remains there whenever the window is re-sized or moved.
1 Programming Windows Terry Marris January 2013 2 Hello Windows We display some text in the middle of a window, and see how the text remains there whenever the window is re-sized or moved. 2.1 Hello Windows
More informationUsing the CFindReplaceDialog class By Tibor Blazko
Page 1 of 7 All Topics, MFC / C++ >> Dialog and Windows >> Windows Common dialogs Using the CFindReplaceDialog class By Tibor Blazko How to use the CFindReplaceDialog dialog for text searching Beginner
More informationAdvanced Language Features. by Christian Schmitz
Advanced Language Features by Christian Schmitz Advanced Language Features Delegate Declare Variant Operator Methods Pair Static Dictionary RBScript Class Interfaces Exception Delegate Delegate Data Type
More informationUnit 4 Advanced Features of VB.Net
Dialog Boxes There are many built-in dialog boxes to be used in Windows forms for various tasks like opening and saving files, printing a page, providing choices for colors, fonts, page setup, etc., to
More informationVB.NET MOCK TEST VB.NET MOCK TEST III
http://www.tutorialspoint.com VB.NET MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to VB.Net. You can download these sample mock tests at your local
More informationIndustrial Strength Add-Ins: Creating Commands in Autodesk Inventor
Industrial Strength Add-Ins: Creating Commands in Autodesk Inventor Brian Ekins Autodesk, Inc. DE211-4 This session focuses on techniques that will help you produce an industrial strength add-in application.
More informationMBS ComputerControl Plugin Documentation
MBS ComputerControl Plugin Documentation Christian Schmitz March 4, 2018 2 0.1 Introduction This is the PDF version of the documentation for the Xojo (Real Studio) Plug-in from Monkeybread Software Germany.
More informationFirewing Language Reference.
Firewing Language Reference www.firewing.info February 12, 2013 Contents 1 Basic Concepts 2 Identifiers and Reserved Words............................... 2 Comments...........................................
More informationException Handling. Sometimes when the computer tries to execute a statement something goes wrong:
Exception Handling Run-time errors The exception concept Throwing exceptions Handling exceptions Declaring exceptions Creating your own exception Ariel Shamir 1 Run-time Errors Sometimes when the computer
More informationCSC Java Programming, Fall Java Data Types and Control Constructs
CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference
More informationException Handling. Run-time Errors. Methods Failure. Sometimes when the computer tries to execute a statement something goes wrong:
Exception Handling Run-time errors The exception concept Throwing exceptions Handling exceptions Declaring exceptions Creating your own exception 22 November 2007 Ariel Shamir 1 Run-time Errors Sometimes
More informationJoseph Hernandez 7/31/2011 Project Paper for CS 6910
Joseph Hernandez 7/31/2011 Project Paper for CS 6910 For my project this semester I chose to try and implement the Voting System created by Brett Wilson for his Masters Project, IMPLEMENTING A PAILLIER
More informationPASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year
PASS4TEST IT Certification Guaranteed, The Easy Way! \ http://www.pass4test.com We offer free update service for one year Exam : 070-536-VB Title : TS:MS.NET Framework 2.0- Application Develop Foundation
More informationTokens, Expressions and Control Structures
3 Tokens, Expressions and Control Structures Tokens Keywords Identifiers Data types User-defined types Derived types Symbolic constants Declaration of variables Initialization Reference variables Type
More informationReverse Engineering & Memory patching
Reverse Engineering & Memory patching Author Richard Davy Email rd@secureyour.it Sage Line 50 Version 2010 Fully updated and patched http://www.sage.co.uk/ Attack tools Softice, IDA Pro, Excel 2003 After
More informationWriting a Windows Form Application For.NET Framework Using C# By Naveen K Kohli
Page 1 of 7 Writing a Windows Form Application For.NET Framework Using C# By Naveen K Kohli A tutorial on writing Windows Forms application using C# Beginner VC7,.NET SDK,.NET,.NET SDK Posted 25 Nov 2000
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationWhat goes inside when you declare a variable?
Stack, heap, value types, reference types, boxing, and unboxing Introduction This article will explain six important concepts: stack, heap, value types, reference types, boxing, and unboxing. This article
More informationUniFinger Engine SDK Reference Manual Version 3.0.0
UniFinger Engine SDK Reference Manual Version 3.0.0 Copyright (C) 2007 Suprema Inc. Table of Contents Table of Contents... 1 Chapter 1. Introduction... 8 Modules... 8 Products... 8 Licensing... 8 Supported
More informationIS 320 Spring 96 Page 1 Exam 1. Please use your own paper to answer the following questions. Point values are shown in parentheses.
IS 320 Spring 96 Page 1 Please use your own paper to answer the following questions. Point values are shown in parentheses. 1. (10) Consider the following segment of code: If txtansicode.text < "0" Or
More informationProtection Levels and Constructors The 'const' Keyword
Protection Levels and Constructors The 'const' Keyword Review: const Keyword Generally, the keyword const is applied to an identifier (variable) by a programmer to express an intent that the identifier
More informationGenerics in VB.net. Generic Class: The following example shows a skeleton definition of a generic class.
1 Generics in VB.net A generic type is a single programming element that adapts to perform the same functionality for a variety of data types. When you define a generic class or procedure, you do not have
More informationUsing Windows XP Visual Styles
Using Microsoft Windows XP, you can now define the visual style or appearance of controls and windows from simple colors to textures and shapes. You can control each defined part of a control as well as
More informationCreating a Transacted Resource Using System.Transactions (Lab 2) (Visual C#, Visual Basic)
1 System.Transactions in Whidbey Creating a Transacted Resource Using System.Transactions (Lab 2) (Visual C#, Visual Basic) For the Visual Basic lab, go to page 17. Objectives After completing this lab,
More informationHELP - VB TIPS. ANIMATE AN IMAGE BOX Insert a module. In this module, create a global variable: Global x
HELP - VB TIPS Load an image to an image box from a certain folder If you use this method, won t work on N:\ To load an image to a image control Image1.Picture = LoadPicture("H:\MyVBfolder\stop.gif") Load
More informationWindows and Messages. Creating the Window
Windows and Messages In the first two chapters, the sample programs used the MessageBox function to deliver text output to the user. The MessageBox function creates a "window." In Windows, the word "window"
More informationUser Guide for Sign Language Video Chat for Deaf People. User Guide. For End Users ( or Deaf people) For Developers ( or Programmers) FAQs
User Guide For End Users (or Deaf people) For Developers ( or Programmers) FAQs For End Users ( or Deaf people) 1. Introduction This application allows two or more Deaf people to communicate with each
More informationMechatronics Laboratory Assignment 2 Serial Communication DSP Time-Keeping, Visual Basic, LCD Screens, and Wireless Networks
Mechatronics Laboratory Assignment 2 Serial Communication DSP Time-Keeping, Visual Basic, LCD Screens, and Wireless Networks Goals for this Lab Assignment: 1. Introduce the VB environment for PC-based
More informationWindows Communication Library Description
Windows Communication Library Description Paint Mixing Windows Data Communication Library for PMA7200 & PMA7500 technology PMA7501 series ECOMIX-Terminals EM01-* SpeedMix PMC7500-* Version 5.2.2 Windows
More informationWhat is it? CMSC 433 Programming Language Technologies and Paradigms Spring Approach 1. Disadvantage of Approach 1
CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Singleton Pattern Mar. 13, 2007 What is it? If you need to make sure that there can be one and only one instance of a class. For example,
More informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationWindows Programming. Krzysztof Mossakowski, MSc
, MSc k.mossakowski@mini.pw.edu.pl Contents 1. Windows, messages, time, errors 2. Types, structures, macros, the mouse, the keyboard, versions 3. GDI 4. Resources, dialog boxes, controls, scrolling 5.
More informationVB.NET MOCK TEST VB.NET MOCK TEST I
http://www.tutorialspoint.com VB.NET MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to VB.Net. You can download these sample mock tests at your local
More informationSome client code. output. subtype polymorphism As dynamic binding occurs the behavior (i.e., methods) follow the objects. Squarer
public class Base { protected int theint = 100; System.out.println( theint ); public class Doubler extends Base { System.out.println( theint*2 ); public class Tripler extends Base { System.out.println(
More informationFlow Control. CSC215 Lecture
Flow Control CSC215 Lecture Outline Blocks and compound statements Conditional statements if - statement if-else - statement switch - statement? : opertator Nested conditional statements Repetitive statements
More informationChapter 12: How to Create and Use Classes
CIS 260 C# Chapter 12: How to Create and Use Classes 1. An Introduction to Classes 1.1. How classes can be used to structure an application A class is a template to define objects with their properties
More informationSystem Monitoring Library Windows driver software for Classembly Devices
IFCPMGR.WIN System Monitoring Library Windows driver software for Classembly Devices www.interface.co.jp Contents Chapter 1 Introduction 3 1.1 Overview...3 1.2 Features...3 Chapter 2 Product Specifications
More informationChapter 10 Pointers and Dynamic Arrays. GEDB030 Computer Programming for Engineers Fall 2017 Euiseong Seo
Chapter 10 Pointers and Dynamic Arrays 1 Learning Objectives Pointers Pointer variables Memory management Dynamic Arrays Creating and using Pointer arithmetic Classes, Pointers, Dynamic Arrays The this
More informationDeclarations and Access Control SCJP tips
Declarations and Access Control www.techfaq360.com SCJP tips Write code that declares, constructs, and initializes arrays of any base type using any of the permitted forms both for declaration and for
More informationDATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6)
Technology & Information Management Instructor: Michael Kremer, Ph.D. Database Program: Microsoft Access Series DATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6) AGENDA 3. Executing VBA
More informationCSC 112 :: Test #2 Study Guide with Answers April 25, 2012 Short Answer Questions
CSC 112 :: Test #2 Study Guide with Answers April 25, 2012 Short Answer Questions (1-6) Regarding the code for Lab #7: Private Const NUMLABELS As Integer = 5 Private lblelement(numlabels) As Label ' Array
More informationProgramming in C++ 4. The lexical basis of C++
Programming in C++ 4. The lexical basis of C++! Characters and tokens! Permissible characters! Comments & white spaces! Identifiers! Keywords! Constants! Operators! Summary 1 Characters and tokens A C++
More information.Net Technologies. Components of.net Framework
.Net Technologies Components of.net Framework There are many articles are available in the web on this topic; I just want to add one more article over the web by explaining Components of.net Framework.
More informationDiscover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs.
Java SE11 Development Java is the most widely-used development language in the world today. It allows programmers to create objects that can interact with other objects to solve a problem. Explore Java
More informationHierarchical inheritance: Contains one base class and multiple derived classes of the same base class.
1. What is C#? C# (pronounced "C sharp") is a simple, modern, object oriented, and type safe programming language. It will immediately be familiar to C and C++ programmers. C# combines the high productivity
More informationBria 3 for Windows API
CounterPath Corporation Suite 300, Bentall One Centre 505 Burrard Street Box 95 Vancouver BC V7X 1M3 Canada V6B1R8 Telephone: +1.604.320.3344 www.counterpath.com Bria 3 for Windows API Developer Guide
More informationJava for Non Majors Spring 2018
Java for Non Majors Spring 2018 Final Study Guide The test consists of 1. Multiple choice questions - 15 x 2 = 30 points 2. Given code, find the output - 3 x 5 = 15 points 3. Short answer questions - 3
More informationCreate a custom tab using Visual Basic
tutorials COM programming Create a custom tab using Visual Basic 1/5 Related files vb_tab.zip Description Visual basic files related to this tutorial Introduction This tutorial explains how to create and
More informationWindowsCE.NET. Guide For Software Development. CASIO Computer Co., Ltd. (Version 1.00) Copyright All rights reserved.
WindowsCE.NET Guide For Software Development (Version 1.00) CASIO Computer Co., Ltd. Copyright 2004. All rights reserved. June 2004 Table of Contents Editorial Record 3 Preface 4 Chapter 1 Development
More informationint result; int waitstat; int stat = PmcaAsyncGetGain(&result); // stat receives request id
PMCA COM API Programmer's Guide PMCA COM is an Application Programming Interface Library for the Amptek Pocket Multichannel Analyzers MCA8000 and MCA8000A. PMCA COM runs on personal computers under any
More informationCS365 Midterm -- Spring 2019
CS365 Midterm -- Spring 2019 1. This exam is closed-note, closed-book. 2. You must answer all of the questions. 3. The exam has 120 points and you will be scored out of 120 points. For example, if you
More informationHow to Create a MindManager Add-in With Visual Studio in 7 Steps
How to Create a MindManager Add-in With Visual Studio in 7 Steps Prerequisites: MindManager 7, 8 or 9 installed Visual Studio 2005, 2008 or 2010 installed Step One The first thing to do is download this
More informationChapter 3 Syntax, Errors, and Debugging. Fundamentals of Java
Chapter 3 Syntax, Errors, and Debugging Objectives Construct and use numeric and string literals. Name and use variables and constants. Create arithmetic expressions. Understand the precedence of different
More informationProfessor Peter Cheung EEE, Imperial College
1/1 1/2 Professor Peter Cheung EEE, Imperial College In this lecture, we take an overview of the course, and briefly review the programming language. The rough guide is not very complete. You should use
More information