praegune kellaaeg 19.06.2025 04:12:56
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
sirius4k
HV veteran

liitunud: 25.09.2005
|
09.03.2015 23:00:40
VB.NET Me.Close() viskab veateate |
|
|
Tervist
Mul praegu miskit sellist:
If File.Exists(appfolder & appexec) Then
sbp_app_check.Text = "Programm on olemas"
Else
Dim AppWebSite As DialogResult = MsgBox("Programmi ei leitud asukohast: " & appfolder & appexec & Chr(13) & "Kas tahad programmi alla laadida ?", MsgBoxStyle.YesNo, "Programmi ei leitud")
If AppWebSite = Windows.Forms.DialogResult.Yes Then
Process.Start("http://üksprogramm.ee/")
Me.Close()
End If
End If |
Nagu näha tahaks ma, et programm sulguks kohe peale seda, kui kasutaja on vajutanud Yes nuppu ja läinud veebilehele.
Programm avab veebilehe, mis on hea ja viskab seejärel veateate:
tsitaat: |
An unhandled exception of type 'System.Security.SecurityException' occurred in mscorlib.dll
Additional information: Requested registry access is not allowed. |
Kui ma Me.Close ära võtan, töötab programm normaalselt.
Minu soov on, et programm ikka sulguks peale veebilehe käivitamist. Või kui saaks teada, miks Me.Close nii käitub.
Ideid
PS Igaks proovisin tühja projektiga ja kirjutasin nupu külge Me.Close() ning seal toimis.
---
Uus info
Eelnevast koodijupist järgmine blokk on selline:
Kui ma selle välja kommenteerisin, kadus eelmine probleem ära.
Dim envpath As String = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Machine)
If envpath.Contains("Programm") Then
sbp_envpath_check.Text = "Env. Path olemas"
Else
Dim ProgramPath As DialogResult = MsgBox("Programm ei ole Environment Pathis" & Chr(13) & "Kas tahad Programmi lisada sinna ?" & Chr(13) & "Programmi normaalseks tööks on vajalik, et Programmi asukoht on Environment Pathis", MsgBoxStyle.YesNo, "Program Environment Path Check")
If ProgramPath = Windows.Forms.DialogResult.Yes Then
Environment.SetEnvironmentVariable("Path", envpath & ";C:\myProgram\bin", EnvironmentVariableTarget.Machine)
End If
End If |
Mida tegema peaks, et kui ma eelnevas blokis Yes vajutan ja veebilehele lähen, siis programm täielikult mättasse löödaks Praegu tundub, et kui ma Me.Close() kutsun, siis see üritab veel järgmist blokki läbi käia ja ilma sisendit saamata viskab veateate.
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
55 |
|
tagasi üles |
|
 |
alfreedo
HV vaatleja
liitunud: 20.06.2010
|
09.03.2015 23:22:57
|
|
|
Me.Close()
Kas sul programmi nimi on: Me?
Kas sbp_app_check on kasutajaformi checkbox?
Lootes, et VBNet on sarnane VBA-ga pakun:
Kasutajaformi sulgemiseks kasutatakse: Me.close.
Programmi sulgemiseks siis äkki kõlbab midagi sellist: Application.quit
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
sirius4k
HV veteran

liitunud: 25.09.2005
|
09.03.2015 23:35:11
|
|
|
Me on nö. instantsi nimi. Programmi poole ei saa pöörduda selle nime kasutades. Ütleb, et tuleb Me'd kasutada.
sbp_app_check on staatuse label, kuhu kirjutatakse, kas programm on olemas, või mitte.
Mainimata jäi eelmises postis, et VS Express 2013 on keskkond, kus ma oma programmikäkki trein. Juhuks, kui see oluliseks peaks osutuma.
---
Panin VS Expressi korra adminina käima ja töötas normaalselt. Panin kinni ja panin selle nö. tavaliselt käima jälle ja endiselt töötab
Enne, kui ma sellega hakkama sain, jõudsin jälile täpsemalt, mis programmi vaevas.
Viimasest blokist see If tsükkel:
If ProgramPath = Windows.Forms.DialogResult.Yes Then
Environment.SetEnvironmentVariable("Path", envpath & ";C:\myProgram\bin", EnvironmentVariableTarget.Machine)
End If |
Ma saan aru, et admini õiguste ja/või admin elevationi tõttu ei olnud programmil õigusi env. pathi midagi kirjutada, aga niiviisi, nagu mina tahaks, et mu programm toimiks, ei oleks see tohtinud nii kaugele üldse jõudagi.
Igatahes praegu see toimib, pean leiutama miskisuguse õiguste kontrolli vajaminevatele toimingutele.
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
55 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|