Avatar billede fagpoler Novice
16. januar 2006 - 13:25 Der er 15 kommentarer og
1 løsning

Fjern knappen til at lukke og maksemere i højre hjørne

Er det mugligt at fjerne eller deaktivere kmapperne  til at lukke (X) eller Maksimere/Minimere i højre øverste hjørne, eller fjerne hele linjen (ligesom når der er fuld skærm), men det skal bare stadig en vindue.
Avatar billede brynil Nybegynder
16. januar 2006 - 18:47 #1
Se om der er noget du kan bruge hér:

http://www.mrexcel.com/archive2/58700/68005.htm

Har ikke selv prøvet det.
Avatar billede fagpoler Novice
16. januar 2006 - 19:20 #2
Desværre er jeg ikke så god til Engelsk, at jeg kan forstå det.
Avatar billede bak Forsker
16. januar 2006 - 22:48 #3
Prøv at sætte dette her ind i et nyt modul
og kør Sub HideX

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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



Sub HideX()

Dim hWnd As Long, a As Long
hWnd = FindWindow(vbNullString, Application.Caption)
a = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong hWnd, GWL_STYLE, a And Not WS_SYSMENU

End Sub
Avatar billede bak Forsker
16. januar 2006 - 23:19 #4
Glem lige den. Der mangler et par konstanter.
Testede ikke da jeg er ved at forsøge mig med Linux :-)
Avatar billede brynil Nybegynder
17. januar 2006 - 06:12 #5
Const GWL_STYLE = -16
Const WS_SYSMENU = &H80000

De skal placeres efter Private Declare... funktionerne.
Avatar billede bak Forsker
17. januar 2006 - 07:52 #6
Bravo brynil, så funker det :-)
Avatar billede fagpoler Novice
17. januar 2006 - 08:16 #7
Tusind tak, det virker, hvis i ligger et svar får i jeres point. (hvordan giver jeg jer begge to point?)
Avatar billede bak Forsker
17. januar 2006 - 09:58 #8
Denne her skal gå til brynil. Han har både fundet den og rettet den :-)
Avatar billede fagpoler Novice
17. januar 2006 - 12:38 #9
Ok brynil, hvis du ligger et svar, får du dine point.
Men mange tak til jer bægge to
Avatar billede brynil Nybegynder
17. januar 2006 - 13:50 #10
Alså.., tak for det :))
Avatar billede brynil Nybegynder
17. januar 2006 - 13:55 #11
Men tøv lige en kende. Hvis nu bak kan forklare hvordan (hvis man kan) få den til at fungere ved åbning af en mappe, det kunne jeg nemlig ikke få den til igår, så synes jeg vi skal dele points.
Avatar billede brynil Nybegynder
17. januar 2006 - 20:16 #12
Tak skal du have faqpoler, men har du fået makroen til at virke ved åbning af Excel, så vil jeg gerne vide hvordan? Det undrer mig lidt, at jeg kan kalde andre makroer, men ikke lige denne!
Avatar billede bak Forsker
17. januar 2006 - 21:00 #13
Det gør du ved at kalde makroen fra workbook_open eller fra sub auto_open
og samtidig tvinge en skærmopdatering igennem med screenupdating

Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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
Const GWL_STYLE = -16
Const WS_SYSMENU = &H80000


Sub HideX()

Dim hWnd As Long, a As Long
hWnd = FindWindow(vbNullString, Application.Caption)
a = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong hWnd, GWL_STYLE, a And Not WS_SYSMENU
Application.ScreenUpdating = True

End Sub
Avatar billede brynil Nybegynder
17. januar 2006 - 21:02 #14
Ahh - ok. Det tænkte jeg jo slet ikke på. Tak skal du ha' og points skal du også ha'.
Jeg opretter.
Avatar billede fagpoler Novice
17. januar 2006 - 21:18 #15
Prøv at sætte dette her ind i et nyt modul

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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
Const GWL_STYLE = -16
Const WS_SYSMENU = &H80000

Sub Auto_Open()
HideX
End Sub


Sub HideX()

Dim hWnd As Long, a As Long
hWnd = FindWindow(vbNullString, Application.Caption)
a = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong hWnd, GWL_STYLE, a And Not WS_SYSMENU
End Sub
Avatar billede fagpoler Novice
17. januar 2006 - 21:21 #16
Undskyl Bak jeg så ikke at du havde svaret,
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester