Gå til innhold

Mitt lille VB.net prog, får feil på "END"


Anbefalte innlegg

Hei allesammen... tenkte jeg skulle lære meg å programmere litt. så jeg nappet tak i Visual basic.Net

EDIT: Glemte å fortelle at jeg bruker Windows Application/form

EDIT2: Tror det kan ha noe med å gjøre at jeg kjører programmet via en nettverksstasjon. mistenker Det som årsaken til problemet.

 

Programmet jeg bruker for å skrive vb.net programmer er Sharpdevelop.

 

har laget et lite program nå som jeg har kalt The_first heh, uansett det er svært minimalt og gjør ikke mye.

 

legger ved programmet og kildekoden i en zip fil.

 

problemet mitt er:

 

jeg laget en knapp som heter "btnEnd"

 

kildekoden til knappen er som følger

 

  
Private Sub BtnKillClick(sender As System.Object, e As System.EventArgs)
 	
 	end
 	
End Sub

dette er jo _EN_ kommando da alt mesteparten av det som står der er autogenerert når man "dobbelklikker" på knappen i design modus. feilen som kommer er

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Security.SecurityException: Request for the permission of type System.Security.Permissions.SecurityPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 failed.
  at System.Security.CodeAccessSecurityEngine.CheckTokenBasedSetHelper(Boolean ignoreGrants, TokenBasedSet grants, TokenBasedSet denied, TokenBasedSet demands)
  at System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet grants, PermissionSet denied, PermissionSet demands)
  at Microsoft.VisualBasic.CompilerServices.ProjectData.EndApp()
  at The_first.MainForm.BtnKillClick(Object sender, EventArgs e)
  at System.Windows.Forms.Control.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
  at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  at System.Windows.Forms.Control.WndProc(Message& m)
  at System.Windows.Forms.ButtonBase.WndProc(Message& m)
  at System.Windows.Forms.Button.WndProc(Message& m)
  at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
   Assembly Version: 1.0.5000.0
   Win32 Version: 1.1.4322.573
   CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
System
   Assembly Version: 1.0.5000.0
   Win32 Version: 1.1.4322.573
   CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
   Assembly Version: 1.0.5000.0
   Win32 Version: 1.1.4322.573
   CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
The_first
   Assembly Version: 1.0.1923.22267
   Win32 Version: 1.0.1923.22267
   CodeBase: file:///H:/Programmer%20jeg%20har%20laget%20i%20.net/The_first%20(%20vise%20ei%20kake%20)/The_first.exe
----------------------------------------
System.Windows.Forms
   Assembly Version: 1.0.5000.0
   Win32 Version: 1.1.4322.573
   CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
Microsoft.VisualBasic
   Assembly Version: 7.0.5000.0
   Win32 Version: 7.10.3052.4
   CodeBase: file:///c:/windows/assembly/gac/microsoft.visualbasic/7.0.5000.0__b03f5f7f11d50a3a/microsoft.visualbasic.dll
----------------------------------------

************** JIT Debugging **************
To enable just in time (JIT) debugging, the config file for this
application or machine (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
   <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the machine
rather than being handled by this dialog.


Selve_programmet_med_koden___alt.zip

Endret av Dwagon
Lenke til kommentar
Videoannonse
Annonse

Heisan.. Testet den kommandoen du ga jorn79. fikk enda feil. merkelig at den får feil på nettverk når den funker lokalt ... får lese litt mer i boken.

 

takk for hjelpen jorn79, nå har jeg lært enda en kommando :D

 

et lite spørsmål. er det Stor forskjell på VB.net og "vanlig" VB ?

Lenke til kommentar

For å bruke System.Environment.Exit fra nettverket må du har SecurityPermission.UnmanagedCode rettigheter:

 

1) Control Panel --> Administrative Tools

2) Velg "Microsoft .Net Framework 1.1 Configuration"

3) Velg "Runtime Security Policy"

4) Velg "Adjust Zone Security" til høyre

5) Velg "Local Intranet"

6) Velg "Full Trust"

 

Dersom du ikke vil dette kan du bruke System.Application.Exit eller rett og slett Close på formen din (du bør strengt tatt ikke bruke Environment.Exit dersom programmet ditt ikke er console-basert).

 

Øyvind.

Endret av oyvind_b
Lenke til kommentar

Ok, kjekt å vite. Funket når jeg satt "full trust" på Intranettet.

 

må vist sette full trust på nettverket for å få lov å stenge programmet uten problem. Alle kommandoer/koder jeg har prøvd så langt gir meg ca samme feil, alle baseres på den samme -ikke-lov-og-kjøre-kommando-for-dette-kan-være-skummelt eller.no sånt

 

får bare sette full trust på nettverket da.

 

lurer enda på om vb.net er forskjellig fra vb uten .net

 

Takk for hjelpen Øyvind.

Lenke til kommentar

Selve koden, syntax og slikt er ganske likt, forskjellen er at .Net er ment for utvikling for Web, og du har da en rekke komponenter som er ment kun for dette. Du kan da programmere med ASP og .Net Framework som det heter. Dette skiller seg litt fra å skrive vanlige windows programmer, men fordelen er at du vil kjenne deg igjen.

 

Dersom du tenker på forskjellen fra VB 6, er det nok gjort noen endringer, du får nesten lete litt på nett eller finne en bok dersom du vil ha flere detaljer.

Lenke til kommentar

Lurer litt på hvor du har funnet fram til at ".Net er ment for utvikling på web"... ? Dette er jo helt feil. .Net er ment som et helt rammeverk for all utvikling. At det finnes mange komponenter som er ment for web er ganske naturlig da vi lever i år 2005 (okay, .Net kom vel i 2000) og "alt" dreier seg om web og internett på en eller annen måte.

 

Og å si "ASP og .Net framework" er også feil mener jeg. Det heter ASP.Net og er etterfølgeren til ASP.

 

Den viktigste forskjellen fra VB6 rent programmeringsmessig er at man nå bruker .Net framework. Det finnes også mange andre forskjeller (som du har merket ang. sikkerhet f.eks.)

 

Syntes det er rart du sier at System.Environment.Exit ikke bør brukes i annet enn console apps. Å returnere errorcode er jo ganske standard ting å gjøre både i console og windows apps...?

 

 

Men back on topic her;

Noen som vet akuratt hva VB.Net gjør i Microsoft.VisualBasic.CompilerServices.ProjectData.EndApp() som skal kreve mer tilgang enn det kreves for å kjøre programmet? Og hvorfor denne ikke blir kjørt når form'n closes på vanlig vis?

Lenke til kommentar

Jeg skal prøve å svare på de spørsmålene som var tiltenkt meg:

 

Syntes det er rart du sier at System.Environment.Exit ikke bør brukes i annet enn console apps. Å returnere errorcode er jo ganske standard ting å gjøre både i console og windows apps...?

 

Jeg tenkte at det var en sammenheng mellom System.Windows.Forms.Application.Run (som jo oftest brukes til å starte en Windows Forms applikasjon) og System.Windows.Forms.Application.Exit (som jo får Run-metoden til å returnere).

 

Noen som vet akuratt hva VB.Net gjør i Microsoft.VisualBasic.CompilerServices.ProjectData.EndApp() som skal kreve mer tilgang enn det kreves for å kjøre programmet? Og hvorfor denne ikke blir kjørt når form'n closes på vanlig vis?

 

Nå kjenner ikke jeg til disse namespacene du henviser til, men Environment.Exit trenger ekstra rettigheter fordi den stopper processen selv, og det å stoppe en prosess regnes som en priviligert operasjon, i motsetning til det å starte en prosess. Når form-en closes på vanlig vis stoppes ikke prosessen av koden, men indirekte når det ikke er flere åpne forms.

 

Håper dette ble riktig. Uansett er dette en artig diskusjon :yes:

 

Øyvind

Lenke til kommentar

Oi.. nå var det kommet mye informasjon...

 

jeg har en bok om VB.net

den heter

"Visual Basic .NET i teori og praksis"

den er skrevet av Bernt Bertheussen

(edb kunnskap forskningsparken tromsø)

isbn : 82-7585-145-9

 

jeg leste litt på denlink en som ble gitt lenger opp

så fikk jeg det til at VB.net er en Forenklet form for vb

Simplify the language and make it more consistent.

 

eller er jeg helt på jordet nå?

 

edit:leif

Endret av Dwagon
Lenke til kommentar
  • 2 uker senere...
[..]så fikk jeg det til at VB.net er en Forenklet form for vb

eller er jeg helt på jordet nå?

Vil nå heller si at VB.net er en mer utfyllende versjon en 6.0. Nyere, flere valgmuligheter og lettere å veksle mellom f.eks. C# og VB.

 

Og det kan være at jeg er heeeelt på tur, men burde det kanskje være slik?

Private Sub BtnKillClick(sender As System.Object, e As System.EventArgs)

 Application.Exit

End Sub

Endret av moskus
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...