473,659 Members | 2,602 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Fun with the API...

Last night I was feeling a little bored and I happend to come across a
bit of code I wrote way back in the VB5 days. This code, was a simple
little windows application - but was created strictly using the windows
API. In other words, no forms. Just a module with a sub main. If your
interested in looking at it, you can find the code here:

http://www.mtogden.com/~tom/backup/code.html

Anyway, I thought it might be kind of interesting to convert this to
VB.NET. So, here you go. A simple windows application - with no forms:

Option Strict On
Option Explicit On

Imports System.Runtime. InteropServices

Public Class Window
Private Const CLASS_NAME As String = "VB_NET_WIN DOW"
Private Const APP_TITLE As String = "API Window from VB.NET"

' API Constants
Private Const WS_CAPTION As Integer = &HC00000
Private Const WS_MAXIMIZEBOX As Integer = &H10000
Private Const WS_MINIMIZEBOX As Integer = &H20000
Private Const WS_OVERLAPPED As Integer = &H0
Private Const WS_SYSMENU As Integer = &H80000
Private Const WS_THICKFRAME As Integer = &H40000
Private Const WS_OVERLAPPEDWI NDOW As Integer = _
(WS_OVERLAPPED Or _
WS_CAPTION Or _
WS_SYSMENU Or _
WS_THICKFRAME Or _
WS_MINIMIZEBOX Or _
WS_MAXIMIZEBOX)

Private Const CS_HREDRAW As Integer = &H2
Private Const CS_VREDRAW As Integer = &H1
Private Const IDI_APPLICATION As Integer = 32512
Private Const IDC_ARROW As Integer = 32512
Private Const LTGRAY_BRUSH As Integer = 1
Private Const SW_SHOWNORMAL As Integer = 1
Private Const WM_DESTROY As Integer = &H2
Private Const WM_LBUTTONDOWN As Integer = &H201
Private Const WM_RBUTTONDOWN As Integer = &H204
Private Const MB_OK As Integer = &H0

' Delegate instance for our window procedure...
Private Delegate Function WndProcDelgate _
(ByVal hWnd As IntPtr, _
ByVal Message As Integer, _
ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As IntPtr

' API Defined Types
<StructLayout(L ayoutKind.Seque ntial, CharSet:=CharSe t.Auto)> _
Private Structure WNDCLASSEX
Public cbSize As Integer ' Size in bytes of the WNDCLASSEX structure
Public style As Integer ' Class style
Public lpfnWndProc As WndProcDelgate ' Pointer to the classes Window Procedure
Public cbClsExtra As Integer ' Number of extra bytes to allocate for class
Public cbWndExtra As Integer ' Number of extra bytes to allocate for window
Public hInstance As IntPtr ' Applications instance handle Class
Public hIcon As IntPtr ' Handle to the classes icon
Public hCursor As IntPtr ' Handle to the classes cursor
Public hbrBackground As IntPtr ' Handle to the classes background brush
Public lpszMenuName As String ' Resource name of class menu
Public lpszClassName As String ' Name of the Window Class
Public hIconSm As IntPtr ' Handle to the classes small icon
End Structure

<StructLayout(L ayoutKind.Seque ntial)> _
Private Structure POINTAPI
Public x As Integer ' X-Coordinate in pixels
Public y As Integer ' Y-Coordinate in pixels
End Structure

<StructLayout(L ayoutKind.Seque ntial, CharSet:=CharSe t.Auto)> _
Private Structure MSG
Public hWnd As IntPtr ' Window handle of the associated window
Public Message As Integer ' Message identifier
Public wParam As IntPtr ' Additional message info
Public lParam As IntPtr ' Additional message info
Public time As Integer ' Time message was posted
Public pt As POINTAPI ' Cursor position when message was posted
End Structure

' API Declare Statements
Private Declare Auto Function LoadCursor Lib "user32" _
(ByVal hInstance As IntPtr, _
ByVal lpCursorName As IntPtr) As IntPtr

Private Declare Auto Function LoadIcon Lib "user32" _
(ByVal hInstance As IntPtr, _
ByVal lpIconName As IntPtr) As IntPtr

Private Declare Auto Function RegisterClassEx Lib "user32" _
(ByRef pcWndClassEx As WNDCLASSEX) As Integer

Private Declare Auto Function CreateWindowEx Lib "user32" _
(ByVal dwExStyle As Integer, _
ByVal lpClassName As String, _
ByVal lpWindowName As String, _
ByVal dwStyle As Integer, _
ByVal x As Integer, _
ByVal y As Integer, _
ByVal nWidth As Integer, _
ByVal nHeight As Integer, _
ByVal hWndParent As IntPtr, _
ByVal hMenu As IntPtr, _
ByVal hInstance As IntPtr, _
ByVal lpParam As IntPtr) As IntPtr

Private Declare Function ShowWindow Lib "user32" _
(ByVal hWnd As IntPtr, _
ByVal nCmdShow As Integer) As Boolean

Private Declare Function UpdateWindow Lib "user32" _
(ByVal hWnd As IntPtr) As Boolean

Private Declare Auto Function GetMessage Lib "user32" _
(ByRef lpMsg As MSG, _
ByVal hWnd As IntPtr, _
ByVal wMsgFilterMin As Integer, _
ByVal wMsgFilterMax As Integer) As Boolean

Private Declare Function TranslateMessag e Lib "user32" _
(ByRef lpMsg As MSG) As Boolean

Private Declare Auto Function DispatchMessage Lib "user32" _
(ByRef lpMsg As MSG) As IntPtr

Private Declare Sub PostQuitMessage Lib "user32" _
(ByVal nExitCode As Integer)

Private Declare Function GetStockObject Lib "gdi32" _
(ByVal nIndex As Integer) As IntPtr

Private Declare Auto Function MessageBox Lib "user32" _
(ByVal hWnd As IntPtr, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As Integer) As Integer

Private Declare Function SetFocus Lib "user32" _
(ByVal hWnd As IntPtr) As IntPtr

Private Declare Auto Function DefWindowProc Lib "user32" _
(ByVal hWnd As IntPtr, _
ByVal wMsg As Integer, _
ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As IntPtr
Public Sub New()
Dim wndClass As WNDCLASSEX
Dim hWnd As IntPtr
Dim message As MSG
Dim hInstance As IntPtr = Marshal.GetHINS TANCE(GetType(W indow).Module)

With wndClass
.cbSize = Marshal.SizeOf( wndClass)
.style = CS_HREDRAW Or CS_VREDRAW
.lpfnWndProc = New WndProcDelgate( AddressOf WndProc)
.cbClsExtra = 0
.cbWndExtra = 0
.hInstance = hInstance
.hIcon = LoadIcon(hInsta nce, New IntPtr(IDI_APPL ICATION))
.hIconSm = LoadIcon(hInsta nce, New IntPtr(IDI_APPL ICATION))
.hCursor = LoadCursor(hIns tance, New IntPtr(IDC_ARRO W))
.hbrBackground = GetStockObject( LTGRAY_BRUSH)
.lpszMenuName = Nothing
.lpszClassName = CLASS_NAME
End With

' register the class
RegisterClassEx (wndClass)

' Create the window
hWnd = CreateWindowEx _
(0, _
CLASS_NAME, _
APP_TITLE, _
WS_OVERLAPPEDWI NDOW, _
0, _
0, _
640, _
480, _
IntPtr.Zero, _
IntPtr.Zero, _
hInstance, _
IntPtr.Zero)

ShowWindow(hWnd , SW_SHOWNORMAL)
UpdateWindow(hW nd)
SetFocus(hWnd)

Do While GetMessage(mess age, IntPtr.Zero, 0, 0)
TranslateMessag e(message)
DispatchMessage (message)
Loop

End Sub

Private Function WndProc(ByVal hWnd As IntPtr, _
ByVal Message As Integer, _
ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr

Select Case Message
Case WM_LBUTTONDOWN
MessageBox(hWnd , "Left Mouse Button Pressed", APP_TITLE, MB_OK)
Return IntPtr.Zero
Case WM_RBUTTONDOWN
MessageBox(hWnd , "Right Mouse Button Pressed", APP_TITLE, MB_OK)
Return IntPtr.Zero
Case WM_DESTROY
PostQuitMessage (0)
Return IntPtr.Zero
Case Else
Return DefWindowProc(h Wnd, Message, wParam, lParam)
End Select
End Function

Public Shared Sub Main()
Dim wnd As New Window
End Sub
End Class

It doesn't do anything - but it was sort of ammusing :)
--
Tom Shelton
MVP [Visual Basic]
Nov 20 '05 #1
11 4182
Hey! It's the ubiquitous "hello world" C Windows App! :-)
This is exactly the code that made me want to drop C and use VB!
I'm just teasin ya :-) Cool stuff Tom.

-Rob Teixeira [MVP]

"Tom Shelton" <to*@mtogden.co m> wrote in message
news:Os******** *****@TK2MSFTNG P11.phx.gbl...
Last night I was feeling a little bored and I happend to come across a
bit of code I wrote way back in the VB5 days. This code, was a simple
little windows application - but was created strictly using the windows
API. In other words, no forms. Just a module with a sub main. If your
interested in looking at it, you can find the code here:

http://www.mtogden.com/~tom/backup/code.html

Anyway, I thought it might be kind of interesting to convert this to
VB.NET. So, here you go. A simple windows application - with no forms:

Option Strict On
Option Explicit On

Imports System.Runtime. InteropServices

Public Class Window
Private Const CLASS_NAME As String = "VB_NET_WIN DOW"
Private Const APP_TITLE As String = "API Window from VB.NET"

' API Constants
Private Const WS_CAPTION As Integer = &HC00000
Private Const WS_MAXIMIZEBOX As Integer = &H10000
Private Const WS_MINIMIZEBOX As Integer = &H20000
Private Const WS_OVERLAPPED As Integer = &H0
Private Const WS_SYSMENU As Integer = &H80000
Private Const WS_THICKFRAME As Integer = &H40000
Private Const WS_OVERLAPPEDWI NDOW As Integer = _
(WS_OVERLAPPED Or _
WS_CAPTION Or _
WS_SYSMENU Or _
WS_THICKFRAME Or _
WS_MINIMIZEBOX Or _
WS_MAXIMIZEBOX)

Private Const CS_HREDRAW As Integer = &H2
Private Const CS_VREDRAW As Integer = &H1
Private Const IDI_APPLICATION As Integer = 32512
Private Const IDC_ARROW As Integer = 32512
Private Const LTGRAY_BRUSH As Integer = 1
Private Const SW_SHOWNORMAL As Integer = 1
Private Const WM_DESTROY As Integer = &H2
Private Const WM_LBUTTONDOWN As Integer = &H201
Private Const WM_RBUTTONDOWN As Integer = &H204
Private Const MB_OK As Integer = &H0

' Delegate instance for our window procedure...
Private Delegate Function WndProcDelgate _
(ByVal hWnd As IntPtr, _
ByVal Message As Integer, _
ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As IntPtr

' API Defined Types
<StructLayout(L ayoutKind.Seque ntial, CharSet:=CharSe t.Auto)> _
Private Structure WNDCLASSEX
Public cbSize As Integer ' Size in bytes of the WNDCLASSEX structure Public style As Integer ' Class style
Public lpfnWndProc As WndProcDelgate ' Pointer to the classes Window Procedure Public cbClsExtra As Integer ' Number of extra bytes to allocate for class Public cbWndExtra As Integer ' Number of extra bytes to allocate for window Public hInstance As IntPtr ' Applications instance handle Class Public hIcon As IntPtr ' Handle to the classes icon Public hCursor As IntPtr ' Handle to the classes cursor Public hbrBackground As IntPtr ' Handle to the classes background brush Public lpszMenuName As String ' Resource name of class menu Public lpszClassName As String ' Name of the Window Class
Public hIconSm As IntPtr ' Handle to the classes small icon End Structure

<StructLayout(L ayoutKind.Seque ntial)> _
Private Structure POINTAPI
Public x As Integer ' X-Coordinate in pixels
Public y As Integer ' Y-Coordinate in pixels
End Structure

<StructLayout(L ayoutKind.Seque ntial, CharSet:=CharSe t.Auto)> _
Private Structure MSG
Public hWnd As IntPtr ' Window handle of the associated window Public Message As Integer ' Message identifier
Public wParam As IntPtr ' Additional message info
Public lParam As IntPtr ' Additional message info
Public time As Integer ' Time message was posted
Public pt As POINTAPI ' Cursor position when message was posted End Structure

' API Declare Statements
Private Declare Auto Function LoadCursor Lib "user32" _
(ByVal hInstance As IntPtr, _
ByVal lpCursorName As IntPtr) As IntPtr

Private Declare Auto Function LoadIcon Lib "user32" _
(ByVal hInstance As IntPtr, _
ByVal lpIconName As IntPtr) As IntPtr

Private Declare Auto Function RegisterClassEx Lib "user32" _
(ByRef pcWndClassEx As WNDCLASSEX) As Integer

Private Declare Auto Function CreateWindowEx Lib "user32" _
(ByVal dwExStyle As Integer, _
ByVal lpClassName As String, _
ByVal lpWindowName As String, _
ByVal dwStyle As Integer, _
ByVal x As Integer, _
ByVal y As Integer, _
ByVal nWidth As Integer, _
ByVal nHeight As Integer, _
ByVal hWndParent As IntPtr, _
ByVal hMenu As IntPtr, _
ByVal hInstance As IntPtr, _
ByVal lpParam As IntPtr) As IntPtr

Private Declare Function ShowWindow Lib "user32" _
(ByVal hWnd As IntPtr, _
ByVal nCmdShow As Integer) As Boolean

Private Declare Function UpdateWindow Lib "user32" _
(ByVal hWnd As IntPtr) As Boolean

Private Declare Auto Function GetMessage Lib "user32" _
(ByRef lpMsg As MSG, _
ByVal hWnd As IntPtr, _
ByVal wMsgFilterMin As Integer, _
ByVal wMsgFilterMax As Integer) As Boolean

Private Declare Function TranslateMessag e Lib "user32" _
(ByRef lpMsg As MSG) As Boolean

Private Declare Auto Function DispatchMessage Lib "user32" _
(ByRef lpMsg As MSG) As IntPtr

Private Declare Sub PostQuitMessage Lib "user32" _
(ByVal nExitCode As Integer)

Private Declare Function GetStockObject Lib "gdi32" _
(ByVal nIndex As Integer) As IntPtr

Private Declare Auto Function MessageBox Lib "user32" _
(ByVal hWnd As IntPtr, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As Integer) As Integer

Private Declare Function SetFocus Lib "user32" _
(ByVal hWnd As IntPtr) As IntPtr

Private Declare Auto Function DefWindowProc Lib "user32" _
(ByVal hWnd As IntPtr, _
ByVal wMsg As Integer, _
ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As IntPtr
Public Sub New()
Dim wndClass As WNDCLASSEX
Dim hWnd As IntPtr
Dim message As MSG
Dim hInstance As IntPtr = Marshal.GetHINS TANCE(GetType(W indow).Module)
With wndClass
.cbSize = Marshal.SizeOf( wndClass)
.style = CS_HREDRAW Or CS_VREDRAW
.lpfnWndProc = New WndProcDelgate( AddressOf WndProc)
.cbClsExtra = 0
.cbWndExtra = 0
.hInstance = hInstance
.hIcon = LoadIcon(hInsta nce, New IntPtr(IDI_APPL ICATION))
.hIconSm = LoadIcon(hInsta nce, New IntPtr(IDI_APPL ICATION))
.hCursor = LoadCursor(hIns tance, New IntPtr(IDC_ARRO W))
.hbrBackground = GetStockObject( LTGRAY_BRUSH)
.lpszMenuName = Nothing
.lpszClassName = CLASS_NAME
End With

' register the class
RegisterClassEx (wndClass)

' Create the window
hWnd = CreateWindowEx _
(0, _
CLASS_NAME, _
APP_TITLE, _
WS_OVERLAPPEDWI NDOW, _
0, _
0, _
640, _
480, _
IntPtr.Zero, _
IntPtr.Zero, _
hInstance, _
IntPtr.Zero)

ShowWindow(hWnd , SW_SHOWNORMAL)
UpdateWindow(hW nd)
SetFocus(hWnd)

Do While GetMessage(mess age, IntPtr.Zero, 0, 0)
TranslateMessag e(message)
DispatchMessage (message)
Loop

End Sub

Private Function WndProc(ByVal hWnd As IntPtr, _
ByVal Message As Integer, _
ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr

Select Case Message
Case WM_LBUTTONDOWN
MessageBox(hWnd , "Left Mouse Button Pressed", APP_TITLE, MB_OK) Return IntPtr.Zero
Case WM_RBUTTONDOWN
MessageBox(hWnd , "Right Mouse Button Pressed", APP_TITLE, MB_OK) Return IntPtr.Zero
Case WM_DESTROY
PostQuitMessage (0)
Return IntPtr.Zero
Case Else
Return DefWindowProc(h Wnd, Message, wParam, lParam)
End Select
End Function

Public Shared Sub Main()
Dim wnd As New Window
End Sub
End Class

It doesn't do anything - but it was sort of ammusing :)
--
Tom Shelton
MVP [Visual Basic]

Nov 20 '05 #2
In article <#t************ **@TK2MSFTNGP12 .phx.gbl>, Rob Teixeira [MVP] wrote:
Hey! It's the ubiquitous "hello world" C Windows App! :-)
This is exactly the code that made me want to drop C and use VB!
I'm just teasin ya :-) Cool stuff Tom.

-Rob Teixeira [MVP]


LOL! In fact, this code is a translation of some VB5 code I wrote that
was a translation of a tutorial on using the Win32 API in C++...

It's funny what a programmer will do when they're bored :)
--
Tom Shelton
MVP [Visual Basic]
Nov 20 '05 #3
Respect!

I have the same VB 5.0 app that I wrote once while bored, but never bothered
porting it to .NET.

hehe...When you end a sentence with ".NET" and then a period, it looks just
like a FORTRAN operator.

--
Peace & happy computing,

Mike Labosh, MCSD
Owner, vbSensei.Com
"Escriba coda ergo sum." -- vbSensei
Nov 20 '05 #4
In article <ee************ **@TK2MSFTNGP10 .phx.gbl>, Mike Labosh wrote:
Respect!

I have the same VB 5.0 app that I wrote once while bored, but never bothered
porting it to .NET.


I think every one must have done this back then... I think it was
really just a chance to give the new AddressOf operator a try :)

--
Tom Shelton
MVP [Visual Basic]
Nov 20 '05 #5
* Tom Shelton <to*@mtogden.co m> scripsit:
LOL! In fact, this code is a translation of some VB5 code I wrote that
was a translation of a tutorial on using the Win32 API in C++...

It's funny what a programmer will do when they're bored :)


But it's a nice, stable application.

;-)

--
Herfried K. Wagner [MVP]
<http://www.mvps.org/dotnet>
Nov 20 '05 #6
Hm, I must be the oddball that never tried this in VB :-)
I got so tired of writing it in C (in environments that didn't support the
standard window project templates - and pre-MFC). And, even with the
templates, you still had to write a ton of junk to handle the messages.
With VB, you click on New Project, add Windows App, and write one IF..ELSE..
statement to check for buttons and pop up a MsgBox. Can't beat that! :-)

Actually, the one time I did have to manage stuff at this level was in VB
5/6 dealing with custom controls that didn't use a UserControl. That was
painful - especially dealing with Tabbing behavior. :-(

One cool thing in .NET is that you can also inherit from the base Control
class, which does all the menial message handling and window creation stuff,
then override the bits you need. More MFC-ish, but definitely a lot more
flexible (or at the very least far simpler) than the old VB alternatives.

I think I need more "bored" time. Not getting enough of that these days :-)

-Rob Teixeira [MVP]

"Tom Shelton" <to*@mtogden.co m> wrote in message
news:ue******** *****@tk2msftng p13.phx.gbl...
In article <#t************ **@TK2MSFTNGP12 .phx.gbl>, Rob Teixeira [MVP]

wrote:
Hey! It's the ubiquitous "hello world" C Windows App! :-)
This is exactly the code that made me want to drop C and use VB!
I'm just teasin ya :-) Cool stuff Tom.

-Rob Teixeira [MVP]


LOL! In fact, this code is a translation of some VB5 code I wrote that
was a translation of a tutorial on using the Win32 API in C++...

It's funny what a programmer will do when they're bored :)
--
Tom Shelton
MVP [Visual Basic]

Nov 20 '05 #7
On 2003-12-24, Rob Teixeira [MVP] <RobTeixeira@ @> wrote:
Hm, I must be the oddball that never tried this in VB :-)
I got so tired of writing it in C (in environments that didn't support the
standard window project templates - and pre-MFC). And, even with the
templates, you still had to write a ton of junk to handle the messages.
With VB, you click on New Project, add Windows App, and write one IF..ELSE..
statement to check for buttons and pop up a MsgBox. Can't beat that! :-)

True. It was one the great attractors to VB...
Actually, the one time I did have to manage stuff at this level was in VB
5/6 dealing with custom controls that didn't use a UserControl. That was
painful - especially dealing with Tabbing behavior. :-(

Yikes... I had a DateTimePicker and an IP Address control that I wrote
for VB5 - and getting the tabbing working properly was a big headache...
In fact, I'm not sure if I ever did get it working 100% :) I'll have to
see if I can find that old code....
One cool thing in .NET is that you can also inherit from the base Control
class, which does all the menial message handling and window creation stuff,
then override the bits you need. More MFC-ish, but definitely a lot more
flexible (or at the very least far simpler) than the old VB alternatives.

I agree. Much simpler now. There really was no practicle purpose, just
found the old VB5 code and I couldn't resist.
I think I need more "bored" time. Not getting enough of that these days :-)


My problem is I stay up to late...

--
Tom Shelton
MVP [Visual Basic]
Nov 20 '05 #8
> I think every one must have done this back then... I think it was
really just a chance to give the new AddressOf operator a try :)


That's precisely what it was, now that I think of it. I wrote wrapper
classes for every Enum- callback function I could find and really went off
the deep end. And then maybe only ever used like two of them.
--
Peace & happy computing,

Mike Labosh, MCSD
Owner, vbSensei.Com
"Escriba coda ergo sum." -- vbSensei
Nov 20 '05 #9
> But it's a nice, stable application.

And user friendly, too. I bet my wife (Dr. Kevorkian of software) couldn't
even screw it up.
--
Peace & happy computing,

Mike Labosh, MCSD
Owner, vbSensei.Com
"Escriba coda ergo sum." -- vbSensei
Nov 20 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
11207
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL) on the server because of that. Our site will have an SSL certificate next week, so I would like to use AIM instead of SIM, however, I don't know how to send data via POST over https and recieve data from the Authorize.net server over an https...
2
5802
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues to execute the code until the browser send his reply to the header instruction. So an exit(); after each redirection won't hurt at all
3
22995
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which field is completed.
0
8460
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. 354 roberto@ausone:Build/php-4.3.2> ldd /opt/php4/bin/php libsablot.so.0 => /usr/local/lib/libsablot.so.0 libstdc++.so.5 => /usr/local/lib/libstdc++.so.5 libm.so.1 => /usr/lib/libm.so.1
1
8564
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the column below. The viewer can select states from the drop down lists above the other two columns as well. If the viewer selects only one, only one column fills. If the viewer selects two states, two columns fill. Etc. I could, if appropriate, have...
4
18253
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the user comes back to a page where he had a submitted POST data the browser keeps telling that the data has expired and asks if repost. How to avoid that? I tried registering all POST and GET vars as SESSION vars but
1
6810
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url http://www.mis.gla.ac.uk/biquery/training/ but each of the courses held have maximum of 8 people that could be
2
31394
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value to :parameter I dont like the idea of making the SQL statement on the fly without binding parameters as I dont want a highly polluted SQL cache.
3
23564
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the results of the picture half the size. The PHP I have installed support 1.62 or higher. And all I would like to do is take and image and make it fit a 3x3. Any suggestions to where I should read or look would be appreciated.
0
8341
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8751
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8539
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8630
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7360
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5650
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4176
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
2759
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
1982
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.