Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / General 1 / May 2008

Tip: Looking for answers? Try searching our database.

Disable Maximize/Minimize/Restore in Access 2007

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
evenlater - 20 May 2008 18:37 GMT
Is there a way to disable the maximize, minimize and restore buttons
of the Access window in A2K7? I can't seem to find one. I am setting
up an application that will be launched via Terminal Services but
don't have seamless windows so I need to make sure the users can't get
to the desktop.

Thanks!
Tom van Stiphout - 22 May 2008 02:56 GMT
Have you tried to set some form-level properties such as AutoResize
and MinMaxButtons?

-Tom.

>Is there a way to disable the maximize, minimize and restore buttons
>of the Access window in A2K7? I can't seem to find one. I am setting
[quoted text clipped - 3 lines]
>
>Thanks!
evenlater - 23 May 2008 03:13 GMT
> Have you tried to set some form-level properties such as AutoResize
> and MinMaxButtons?

Yes, but that only applies to the form, not the Access window. I am
trying to prevent my users from getting to the desktop at all.
Tom van Stiphout - 23 May 2008 04:51 GMT
That requires a fairly advanced level of programming, including
subclassing of that window. You'll need a thorough understanding of
the Windows API.

-Tom.

>> Have you tried to set some form-level properties such as AutoResize
>> and MinMaxButtons?
>
>Yes, but that only applies to the form, not the Access window. I am
>trying to prevent my users from getting to the desktop at all.
Chuck Grimsby - 28 May 2008 00:04 GMT
Actually, the code for doing this was posted in the newsgroup a few
years back, and it doesn't take all that much in the way of API calls.

The real problem however, could be resolved by anyone competent in
setting up Terminal Server and applications that run on them.  The OP
should *really* look at hiring one of those to set this application
up.

(There are ways around the API calls that make it next to useless for
what the OP has stated as a requirement.)

>That requires a fairly advanced level of programming, including
>subclassing of that window. You'll need a thorough understanding of
[quoted text clipped - 7 lines]
>>Yes, but that only applies to the form, not the Access window. I am
>>trying to prevent my users from getting to the desktop at all.

Signature

Please Post Any Replies To This Message Back To the Newsgroup.
There are "Lurkers" around who can benefit by our exchange!

The Frog - 28 May 2008 08:38 GMT
Hi Chuck,

I did a quick skooch through the older posts but could not seem to
locate the specific discussion you mention. Do you per chance happen
to have a link you could post?

Cheers

The Frog
Arno R - 28 May 2008 12:18 GMT
> Hi Chuck,
>
[quoted text clipped - 5 lines]
>
> The Frog

Paste the following code into a module, then call it with
   Call Buttons(false)
To turn them off and
   Call Buttons(True)
to turn them on

********** Code Start *************
Option Explicit

Private Const GWL_STYLE = (-16)
Private Const WS_CAPTION = &HC00000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_SYSMENU = &H80000

Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOZORDER = &H4
Public Const SWP_FRAMECHANGED = &H20

Private Declare Function GetWindowLong _
Lib "user32" Alias "GetWindowLongA" ( _
 ByVal hwnd As Long, _
 ByVal nIndex As Long _
) As Long

Private Declare Function SetWindowLong _
Lib "user32" Alias "SetWindowLongA" ( _
 ByVal hwnd As Long, _
 ByVal nIndex As Long, _
 ByVal dwNewLong As Long _
) As Long

Private 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
' **************************************************
'

Function AccessTitleBar(Show As Boolean) As Long
 Dim hwnd As Long
 Dim nIndex As Long
 Dim dwNewLong As Long
 Dim dwLong As Long
 Dim wFlags As Long

 hwnd = hWndAccessApp
 nIndex = GWL_STYLE
 wFlags = SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED + SWP_NOMOVE

 dwLong = GetWindowLong(hwnd, nIndex)

 If Show Then
   dwNewLong = (dwLong Or WS_CAPTION)
 Else
   dwNewLong = (dwLong And Not WS_CAPTION)
 End If

 Call SetWindowLong(hwnd, nIndex, dwNewLong)
 Call SetWindowPos(hwnd, 0&, 0&, 0&, 0&, 0&, wFlags)
End Function

Function Buttons(Show As Boolean) As Long
 Dim hwnd As Long
 Dim nIndex As Long
 Dim dwNewLong As Long
 Dim dwLong As Long

 hwnd = hWndAccessApp
 nIndex = GWL_STYLE

 Const wFlags = SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED + SWP_NOMOVE
 Const FLAGS_COMBI = WS_MINIMIZEBOX Or WS_MAXIMIZEBOX Or WS_SYSMENU

 dwLong = GetWindowLong(hwnd, nIndex)

 If Show Then
   dwNewLong = (dwLong Or FLAGS_COMBI)
 Else
   dwNewLong = (dwLong And Not FLAGS_COMBI)
 End If

 Call SetWindowLong(hwnd, nIndex, dwNewLong)
 Call SetWindowPos(hwnd, 0&, 0&, 0&, 0&, 0&, wFlags)
End Function
' ********** Code End *************

BTW: I think this code originates fromTerry Kreft

Arno R
Chuck Grimsby - 29 May 2008 00:37 GMT
When I said "a few years back", I was serious. You'll have to go back
quite a few years to find the posts (1997-99 time frame).  Search for
"NoControlBox" at Google, and you'll probably find the thread.

I think that thread just discusses how to disable the controls,
however there was also another thread that discussed totally removing
the controls from the title bar, but I also remember we dropped the
thread fairly quickly when we "were made aware of" what we were
posting.  (That thread may have been over in one of the VB discussion
groups however....)

Yeah, it's cool and rather fun to do, but it just makes users jump
through hoops to overcome a "neat" little hack of yours.  And the
_last_ thing you want a user to do (especially in a database!) is to
find their own "neat" tricks.

>I did a quick skooch through the older posts but could not seem to
>locate the specific discussion you mention. Do you per chance happen
>to have a link you could post?

Signature

Please Post Any Replies To This Message Back To the Newsgroup.
There are "Lurkers" around who can benefit by our exchange!

The Frog - 29 May 2008 13:07 GMT
Thanks Arno and Chuck,

I will give this a crack with an MDE. Hopefully the code will work
happily in the MDE and not leave any permanent scars on the users
brains :-) It might just prove to be a bit of fun to tease some of the
IT guys 'upstairs' with (Tee hee hee).

Thanks Fellas

Cheers

The Frog
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.