2010-11-26, 20:44
  #1
Medlem
Bigtimepommess avatar
Har glåmat runt ett tag nu på både google och här, men finner tyvärr inga svar. Så jag tänkte fråga er om saken då.

Jag har ett fullt fungerande program som heter "program.exe". Jag byter ut filändelsen till något annat, som t.ex "program.avi".

Grejen är att nu vill jag starta denna "program.avi" som en *.exe och inte som *.avi via mitt program skrivet i C#. När jag kör programmet från mitt C# program, så startas mitt "program.avi" i min mediaspelare och inte körs som en exe. Frågan är nu, går det köra denna avi som en exe från mitt program?

Tacksam för svar
Citera
2010-11-26, 20:59
  #2
Medlem
gadzooxs avatar
Om program.avi är ett .NET-assembly, kanske du kan ladda in det till en separat AppDomain och köra den vägen?

Generellt funkar ju annars Windows som så att det kör saker på olika sätt beroende på filtypen, som ju avgörs av filändelsen.. En .avi-fil är en .avi-fil är en .avi-fil i Windows ögon, om det egentligen är en .exe som gömmer sig bakom .avi-ändelsen så är det en korrupt .avi-fil, vilket den associerade mediaspelaren lär upptäcka när Windows startat den.
Citera
2010-11-26, 21:05
  #3
Medlem
Bigtimepommess avatar
Citat:
Ursprungligen postat av gadzoox
Om program.avi är ett .NET-assembly, kanske du kan ladda in det till en separat AppDomain och köra den vägen?

Generellt funkar ju annars Windows som så att det kör saker på olika sätt beroende på filtypen, som ju avgörs av filändelsen.. En .avi-fil är en .avi-fil är en .avi-fil i Windows ögon, om det egentligen är en .exe som gömmer sig bakom .avi-ändelsen så är det en korrupt .avi-fil, vilket den associerade mediaspelaren lär upptäcka när Windows startat den.

Program.avi är tyvärr inte det vad jag vet. Grejen är att jag vill att mitt egna C# program ska starta en annan exe som helt enkelt är omdöpt till någotoskyldigt.pak eller vad som hellst. Så att ingen ser att någotoskyldigt.pak är en .exe.

Går det inte göra en fuling som byter namn på filen till program.exe, kör den, sedan döper om den igen? Eller går det inte att byta filändelse sådär på det viset?
Citera
2010-11-27, 08:48
  #4
Medlem
bleaFs avatar
http://msdn.microsoft.com/en-us/library/system.io.file.move.aspx

Vet inte om det finns en bättre lösning, Men du kan flytta filen till samma path som filen ligger i fast med ett nytt namn.
Citera
2010-11-27, 09:47
  #5
Medlem
xobxs avatar
Citat:
Ursprungligen postat av Bigtimepommes
Program.avi är tyvärr inte det vad jag vet. Grejen är att jag vill att mitt egna C# program ska starta en annan exe som helt enkelt är omdöpt till någotoskyldigt.pak eller vad som hellst. Så att ingen ser att någotoskyldigt.pak är en .exe.

Går det inte göra en fuling som byter namn på filen till program.exe, kör den, sedan döper om den igen? Eller går det inte att byta filändelse sådär på det viset?

Hmm.. detta kanske funkar?

Kod:
string file = @"C:\\program.avi";
string dir = @"C:\\";
Directory.Move(file, dir + "program.exe");

System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo();
psi.FileName = "C:\\program.exe";
psi.WorkingDirectory = "C:\\";
psi.WindowStyle = System.Diagnostics.
System.Diagnostics.Process p =
System.Diagnostics.Process.Start(psi);
p.WaitForExit();

string file = @"C:\\program.exe";
string dir = @"C:\\";
Directory.Move(file, dir + "program.avi");
Citera
2010-11-27, 11:12
  #6
Medlem
Bigtimepommess avatar
Citat:
Ursprungligen postat av xobx
Hmm.. detta kanske funkar?

Kod:
string file = @"C:\\program.avi";
string dir = @"C:\\";
Directory.Move(file, dir + "program.exe");

System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo();
psi.FileName = "C:\\program.exe";
psi.WorkingDirectory = "C:\\";
psi.WindowStyle = System.Diagnostics.
System.Diagnostics.Process p =
System.Diagnostics.Process.Start(psi);
p.WaitForExit();

string file = @"C:\\program.exe";
string dir = @"C:\\";
Directory.Move(file, dir + "program.avi");

Bra! Mkt bra! Funkar prima! Bugar och bockar och tackar så mycket!
Citera
2010-11-27, 23:15
  #7
Bannlyst
Ifall du gör en Windows Form, finns i toolboxen, "ProcessStart". Antar att det gör vad du söker efter, men du har fått hjälp redan.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in