Dwagon Skrevet 7. april 2005 Del Skrevet 7. april 2005 (endret) 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 7. april 2005 av Dwagon Lenke til kommentar
j000rn Skrevet 8. april 2005 Del Skrevet 8. april 2005 Jeg syntes dette virket rart, men det kan nå se ut som om VB.Net prøver å gjøre noe den ikke får lov til på nettverkstasjonen når den skal avslutte. Prøv med dette isteden: System.Environment.Exit(0) Lenke til kommentar
Dwagon Skrevet 8. april 2005 Forfatter Del Skrevet 8. april 2005 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 et lite spørsmål. er det Stor forskjell på VB.net og "vanlig" VB ? Lenke til kommentar
oyvind_b Skrevet 8. april 2005 Del Skrevet 8. april 2005 (endret) 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 8. april 2005 av oyvind_b Lenke til kommentar
Dwagon Skrevet 8. april 2005 Forfatter Del Skrevet 8. april 2005 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
oyvind_b Skrevet 8. april 2005 Del Skrevet 8. april 2005 Forskjellene på VB og VB.NET er svært mange og store som er diskutert rundt omkring og opp og i mente. Ta et søk på google eller ta en titt her. Det beste tipset er vel å skaffe seg en bok på VB.NET Øyvind Lenke til kommentar
cyberpet Skrevet 8. april 2005 Del Skrevet 8. april 2005 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
j000rn Skrevet 8. april 2005 Del Skrevet 8. april 2005 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
oyvind_b Skrevet 8. april 2005 Del Skrevet 8. april 2005 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 Øyvind Lenke til kommentar
j000rn Skrevet 8. april 2005 Del Skrevet 8. april 2005 Hørtes fornuftig ut Microsoft.VisualBasic.CompilerServices.ProjectData.EndApp() var det som ble kjørt da han kalte End() fra VB.Net. Det var denne funksjonen som kræsjet... Lenke til kommentar
Dwagon Skrevet 9. april 2005 Forfatter Del Skrevet 9. april 2005 (endret) 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 9. april 2005 av Dwagon Lenke til kommentar
Moskus Skrevet 17. april 2005 Del Skrevet 17. april 2005 (endret) [..]så fikk jeg det til at VB.net er en Forenklet form for vbeller 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 17. april 2005 av moskus Lenke til kommentar
Zic0 Skrevet 18. april 2005 Del Skrevet 18. april 2005 Private Sub BtnKill_Click(sender As System.Object, e As System.EventArgs) Handles BtnKill.Click end End Sub Prøvd dette her? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå