Avatar billede jesper2003 Nybegynder
17. august 2006 - 16:26 Der er 46 kommentarer og
1 løsning

Mini problem med Process Start

Hej der ude jeg har et lille bitte problem med denne kode

Process.Start("Update.exe")
Jeg vil gerne ha så den selv finder ud af hvor programmet ligger.
Eks vis mit program der skal starte Update.exe ligger sådan her C:\Programmer\GoA\Update.exe eller C:\GoA\Update.exe eller et andet sted
Avatar billede jesper2003 Nybegynder
17. august 2006 - 16:27 #1
Update.exe ligger i samme mappe som den fil den skal starte den. Vis i forstår
Avatar billede arne_v Ekspert
17. august 2006 - 16:31 #2
proev:

Process.Start(Path.GetDirectoryName(Environment.GetCommandLineArgs()[0])+"Update.exe")
Avatar billede jesper2003 Nybegynder
17. august 2006 - 16:49 #3
Får disse 2 fejl

Error    1    Value of type '1-dimensional array of String' cannot be converted to 'String'.    I:\C4\C4-Goa\C4-Goa\Update_GoA.vb    56    49    GoA
Error    2    Identifier expected.    I:\C4\C4-Goa\C4-Goa\Update_GoA.vb    56    82    GoA
Avatar billede mcgoat Nybegynder
17. august 2006 - 16:50 #4
Process.Start(Path.GetDirectoryName(Environment.GetCommandLineArgs()[0].ToString())+"Update.exe") ?
Avatar billede jesper2003 Nybegynder
17. august 2006 - 16:51 #5
Stadig den

Error    1    Value of type '1-dimensional array of String' cannot be converted to 'String'.    I:\C4\C4-Goa\C4-Goa\Update_GoA.vb    56    49    GoA
Error    2    Identifier expected.    I:\C4\C4-Goa\C4-Goa\Update_GoA.vb    56    82    GoA
Avatar billede mcgoat Nybegynder
17. august 2006 - 16:53 #6
hvad med Process.Start(".\\Update.exe"); ville jeg da mene skulle virke.

Har du prøvet dette både i debug, og også bare at køre exefilen normalt?
Avatar billede mcgoat Nybegynder
17. august 2006 - 16:54 #7
sorry... sigh.. blander altid sprogene sammen. fjern lige ;
Avatar billede arne_v Ekspert
17. august 2006 - 16:56 #8
er parenteser sat rigtigt ?
Avatar billede jesper2003 Nybegynder
17. august 2006 - 16:57 #9
Virker kun vis jeg køre den via den mappe filen ligger i men vis jeg køre programmet fra en genvej på skrivebordet så virker det ikke så kan den ikke finde filen
Avatar billede jesper2003 Nybegynder
17. august 2006 - 16:58 #10
Fik denne til at køre sådan her
Process.Start(Path.GetDirectoryName(Environment.GetCommandLineArgs().ToString()) + "Update.exe")
Men den kan stadig ikke finde filen vis man køre den fra en genvej
Avatar billede jesper2003 Nybegynder
17. august 2006 - 17:00 #11
Mener eks min fil ligger i I:\C4\C4-Goa\C4-Goa\bin\Release når jeg køre GoA.exe der fra og går ind og opdatere virker det fint men vis jeg køre GoA.exe fra en genvej på skrivebordet skriver den at Den angivende fil ikke kan findes..
Avatar billede arne_v Ekspert
17. august 2006 - 17:01 #12
. er current dir for processen

den kode jeg angav giver det dir som EXE ligger i

de to kan vaere ens eller de kan vaere forskellige
Avatar billede jesper2003 Nybegynder
17. august 2006 - 17:03 #13
Hvad mener du Arne? Forstår det ikke helt
Avatar billede arne_v Ekspert
17. august 2006 - 17:16 #14
jeg kan ikke lide den ToString

Process.Start(Path.GetDirectoryName(Environment.GetCommandLineArgs()(0))&"Update.exe")

maa vaere korrekt VB.NET

man kan godt staa i et dir og koere et program i et andet dir
Avatar billede jesper2003 Nybegynder
17. august 2006 - 17:22 #15
Den kan stadig ikke finde Update.exe Den skriver bare den angivende fil kan ikke findes
Avatar billede jesper2003 Nybegynder
17. august 2006 - 17:24 #16
Avatar billede mcgoat Nybegynder
17. august 2006 - 17:50 #17
GetDirectoryName returnerer jo f.eks sådan: C:\mitdir

skal der ikke lige en \ efter og inden update?
Avatar billede jesper2003 Nybegynder
17. august 2006 - 18:12 #18
Ja nu virker det men nu har jeg fået bøvl med en kode i Update.exe hvordan laver jeg noget lingene det på disse koder

        My.Computer.FileSystem.DeleteFile("Goa.exe", FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)
        My.Computer.FileSystem.CopyFile("C:\Update\Goa.exe", "Goa.exe")
Avatar billede mcgoat Nybegynder
17. august 2006 - 18:22 #19
My.Computer.FileSystem.CopyFile("C:\Update\Goa.exe", "Goa.exe")

er den der er fejl i?

Den skal vel også have en path på hvor den skal kopiere Goa.exe hen. DirTilUpdate.exe\Goa.exe istedet for bare Goa.exe?
Avatar billede mcgoat Nybegynder
17. august 2006 - 18:22 #20
og skal den vel også i den første linie vel
Avatar billede arne_v Ekspert
17. august 2006 - 18:28 #21
re \

ups jo
Avatar billede arne_v Ekspert
17. august 2006 - 18:28 #22
med hensyn til anden fejl

forsoeger du at lade goa.exe koere update.exe som opdaterer goa.exe ?

det tror jeg ikke du kan fordi goa.exe er i brug
Avatar billede mcgoat Nybegynder
17. august 2006 - 18:30 #23
ahh ja. du skal vel egentlig.

Starte Goa.exe
Den kører så Update.exe og lukker sig selv ned.
Update.exe venter så med at gøre noget før den kan se Goa.exe ikke kører mere.
Så updater den og lægger den nye Goa.exe ind.
Så starter den Goa.exe og lukker sig selv ned.

er vel egentlig det der skal ske?
Avatar billede jesper2003 Nybegynder
17. august 2006 - 18:33 #24
Problemer med denne kode My.Computer.FileSystem.DeleteFile("Goa.exe", FileIO.UIOption.OnlyErrorDialogs,  Er at den ikke kan finde GoA.exe det skal fungere lige som den til at starte update.exe med så den selv finder ud af af den skal slette GoA.exe i den rigtige mappe
Avatar billede jesper2003 Nybegynder
17. august 2006 - 18:34 #25
Yep og koden i GoA.exe virker også som den skal det er bare Update.exe der ikke fungere
Avatar billede mcgoat Nybegynder
17. august 2006 - 18:37 #26
TheFile = Path.GetDirectoryName(Environment.GetCommandLineArgs()(0))& "\Goa.exe"

My.Computer.FileSystem.DeleteFile(TheFile, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)

noget ala det?
Avatar billede jesper2003 Nybegynder
17. august 2006 - 18:39 #27
Error    1    Name 'TheFile' is not declared.    I:\C4\C4 Update\C4 Update\Form1.vb    18    9    GoA Update
Error    2    Name 'TheFile' is not declared.    I:\C4\C4 Update\C4 Update\Form1.vb    19    43    GoA Update
Avatar billede jesper2003 Nybegynder
17. august 2006 - 18:39 #28
Så sker der dette
Avatar billede mcgoat Nybegynder
17. august 2006 - 18:42 #29
skal selvfølgelig lige declare TheFile først :P
Avatar billede mcgoat Nybegynder
17. august 2006 - 18:43 #30
Dim TheFile As String()
Avatar billede jesper2003 Nybegynder
17. august 2006 - 18:43 #31
Hvordan er det nu lige man gør det? Er rimelig ny i VB.NET
Avatar billede jesper2003 Nybegynder
17. august 2006 - 18:45 #32
Nu får jeg denne fejl..

Error    1    Number of indices is less than the number of dimensions of the indexed array.    I:\C4\C4 Update\C4 Update\Form1.vb    19    73    GoA Update
Error    2    Value of type '1-dimensional array of String' cannot be converted to 'String'.    I:\C4\C4 Update\C4 Update\Form1.vb    20    43    GoA Update
Avatar billede mcgoat Nybegynder
17. august 2006 - 18:48 #33
Hvordan endte din linie til at starte update.exe fra goa.exe med at se ud?
Avatar billede jesper2003 Nybegynder
17. august 2006 - 20:03 #34
Process.Start(Path.GetDirectoryName(Environment.GetCommandLineArgs()(0)) & "\Update.exe")
Sådan
Avatar billede jesper2003 Nybegynder
19. august 2006 - 11:45 #35
Er du der??
Avatar billede arne_v Ekspert
19. august 2006 - 17:15 #36
jeg er her
Avatar billede jesper2003 Nybegynder
19. august 2006 - 18:57 #37
Heh kan du hjælpe med det sidste der??
Avatar billede arne_v Ekspert
19. august 2006 - 20:03 #38
det ser ud som 17/08-2006 20:03:33 ?

og du får hvilken fejl ?
Avatar billede jesper2003 Nybegynder
20. august 2006 - 00:08 #39
Får inden fejl i koden fra 17/08-2006 20:03:33
Det er dette jeg ikke ka får til at funge

      My.Computer.FileSystem.DeleteFile("Goa.exe", FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)

        My.Computer.FileSystem.CopyFile("C:\Update\Goa.exe", "Goa.exe")

Det skal være så den finder GoA.exe fra den mappe filen køres i også den sletter GoA.exe fra den mappe også vis du forstår
Avatar billede arne_v Ekspert
20. august 2006 - 01:12 #40
My.Computer.FileSystem.DeleteFile(Environment.GetCommandLineArgs()(0), FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)
My.Computer.FileSystem.CopyFile("C:\Update\Goa.exe", Environment.GetCommandLineArgs()(0))

vil jeg tro

men jeg er 99% sikker på at du ikek kan slette det program der kører !
Avatar billede jesper2003 Nybegynder
20. august 2006 - 15:47 #41
Det er heller ikk GoA.exe der køre denne kode det er Update.exe så denne kode er forkert

My.Computer.FileSystem.DeleteFile(Environment.GetCommandLineArgs()(0), FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)

Den skal slette GoA.exe istedet så den kan lægge den nye ind
Avatar billede jesper2003 Nybegynder
20. august 2006 - 15:50 #42
så denne kode er vist også forkert

My.Computer.FileSystem.CopyFile("C:\Update\Goa.exe", Environment.GetCommandLineArgs()(0))
Avatar billede arne_v Ekspert
20. august 2006 - 17:58 #43
Environment.GetCommandLineArgs()(0)  indeholder fuld navn på EXE der køres

Path.GetDirectoryName(Environment.GetCommandLineArgs()(0)) & "\xxxx.exe"  indeholder fuld navn på en xxxx.exe i samme dir
Avatar billede jesper2003 Nybegynder
20. august 2006 - 19:24 #44
Prøver lige forfra for er ikke helt med der..

Vil ha denne kode til at slette GoA.exe fra den mappe den ligger i. I dette tilfælde er det i samme mappe som Update.exe er i.

My.Computer.FileSystem.DeleteFile("Goa.exe", FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)

Og denne kode skal kunne kopyre den nye version af GoA.exe over i mappen

My.Computer.FileSystem.CopyFile("C:\Update\Goa.exe", "Goa.exe")
Avatar billede mcgoat Nybegynder
20. august 2006 - 21:41 #45
My.Computer.FileSystem.DeleteFile(Path.GetDirectoryName(Environment.GetCommandLineArgs()(0)) & "\goa.exe" , FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)



My.Computer.FileSystem.CopyFile("C:\Update\Goa.exe", Path.GetDirectoryName(Environment.GetCommandLineArgs()(0)) & "\goa.exe" )


burde vel virke så?
Avatar billede jesper2003 Nybegynder
23. august 2006 - 16:35 #46
Takker det virker nu. Skriv et svar Arne og mcgoat
Avatar billede arne_v Ekspert
24. august 2006 - 03:11 #47
ok
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
Kurser inden for grundlæggende programmering

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