• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Uruchomienie pliku EXE przez przycisk

Object Storage Arubacloud
0 głosów
903 wizyt
pytanie zadane 21 maja 2020 w C# przez zdridox Nowicjusz (210 p.)
zmienione kategorie 21 maja 2020 przez ScriptyChris

czy da się zrobić tak że jak mam jedną aplikacje Form1 to klikając przycisk odpala się plik 1.exe

a klikając inny przycisk odpala się plik 2.exe ale żeby wszystko było zawarte w jednym pliku

zastosowanie:

odpalasz plik przyklad.exe

i masz w nim 2 przyciski klikając jeden odpalasz 1.exe a klikając drugi odpalasz 2.exe 

to przyciski

tu musze wpisac kod

po kliknięciu przycisku chcę żeby to się odpalało 

Wszystko robię w visual studio 2017 

komentarz 21 maja 2020 przez zdridox Nowicjusz (210 p.)
chodzi mi o to że nie wiem jak to zrobić :(
komentarz 21 maja 2020 przez j23 Mędrzec (194,920 p.)

ale żeby wszystko było zawarte w jednym pliku

Wszystko, czyli co? Te dwa pliki wykonywalne?

komentarz 21 maja 2020 przez zdridox Nowicjusz (210 p.)
jak mam plik exe to chce żeby były w nim zawarte te 2 pliki wykonywalne
komentarz 21 maja 2020 przez j23 Mędrzec (194,920 p.)

Dodaj te aplikacje do zasobów aplikacji uruchamiającej. Przed uruchomieniem którejś z nich zapisz zasób w katalogu tymczasowym i uruchom np. funkcją ShellExecute.

Od razu mówię, że nie wiem, jak wygląda sprawa z dodawaniem czegokolwiek do zasobów w projektach C++/CLI.

komentarz 21 maja 2020 przez zdridox Nowicjusz (210 p.)
a jesteś w stanie podać mi przykład shellexecute w c#? proszę
komentarz 22 maja 2020 przez j23 Mędrzec (194,920 p.)
Nie.

2 odpowiedzi

+2 głosów
odpowiedź 22 maja 2020 przez Dorion300 Szeryf (90,250 p.)
edycja 22 maja 2020 przez Dorion300

Możesz plik .exe dodać do zasobów, ale nie znam sposobu na bezpośrednie i uniwersalne uruchomienie kodu z pliku zasobów.

Ale taki plik możesz bez problemu wypakować:

using(var fs = File.OpenWrite("hello.exe"))
    fs.Write(Resources.hello);

A następnie uruchomić:

var ps = new System.Diagnostics.Process();
ps.StartInfo.FileName = "hello.exe";
ps.StartInfo.Arguments = "";
ps.StartInfo.UseShellExecute = false;
ps.StartInfo.CreateNoWindow = false;
ps.Start();

W zależności jak chcesz proces uruchomić, tak ustawiasz "StartInfo".

Sprawdź czy w "Properties" nie masz już Pliku zasobów.
Jak nie masz utworzonego zasobu to możesz stworzyć nowy: Dodaj -> Nowy element -> Plik zasobów.
Następnie wchodzisz do Pliku zasobów (z listy plików) i tam dodajesz nowy plik.

Pamiętaj także o lokalizacji gdzie chcesz taki plik .exe wypakować, gdyż jak zrobisz dokładnie tak jak ci podałem, oraz uruchomisz program główny ale w innej lokalizacji, (np. poprzez terminal jednocześnie znajdując się w folderze innym niż plik wykonalny programu głównego) to plik zostanie wypakowany w folderze w którym się obecnie znajdujesz.

komentarz 22 maja 2020 przez JakSky Stary wyjadacz (14,770 p.)
Nie trzeba otwierać pliku i nie trzeba mieć go w zasobach z tego co wiem.
komentarz 22 maja 2020 przez zdridox Nowicjusz (210 p.)

@Dorion300, 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using (var fs = File.OpenWrite("WallHack.exe")) fs.Write(Resources.WallHack);

namespace cheatpack
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            var ps = new System.Diagnostics.Process();
            ps.StartInfo.FileName = "WallHack.exe";
            ps.StartInfo.Arguments = "";
            ps.StartInfo.UseShellExecute = false;
            ps.StartInfo.CreateNoWindow = false;
            ps.Start();


        }
    }

 

wyskakuje 10 błędów:

 

1: oczekiwano identyfikatora

2: oczekiwano średnika (;)

3: oczekiwano znaku )

4:   Oczekiwano definicji typu lub przestrzeni nazw albo znacznika końca pliku.   

5:Przestrzeń nazw nie może bezpośrednio zawierać składowych, takich jak pola lub metody

6: oczekiwano znaku )

7:Oczekiwano definicji typu lub przestrzeni nazw albo znacznika końca pliku.   

8:Przestrzeń nazw nie może bezpośrednio zawierać składowych, takich jak pola lub metody

9:Krotka musi zawierać co najmniej dwa elementy.

10:Oczekiwano definicji typu lub przestrzeni nazw albo znacznika końca pliku.

 

+ tutaj wyskakuje brak określonego pliku

 

Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

 

sory ale jestem początkującym i nie umiem prawie nic ale jak umiesz mi pomóc z tym będę bardzo wdzięczny

 

 

komentarz 22 maja 2020 przez Dorion300 Szeryf (90,250 p.)

@zdridox
Słowo "using" można używać dwojako:
1.Aby skracać i nie pisać za każdym razem przestrzeń nazw w którym dana klasa (lub inny obiekt) się znajduje.
2.Aby automatycznie zwolnił zasoby wskazanego obiektu w nawiasach. (wskazany obiekt musi dziedziczyć IDisposable)
Czyli nie będziesz musiał ręcznie zamykać, zwalniać. (np. fs.close())

Ten kod z using musisz wkleić do metody "button1_Click".

@JakSky
Tak, nie trzeba mieć go w zasobach.
Ale tego chciał użytkownik @zdridox.

jak mam plik exe to chce żeby były w nim zawarte te 2 pliki wykonywalne

+1 głos
odpowiedź 22 maja 2020 przez JakSky Stary wyjadacz (14,770 p.)

Użyj tego:

System.Diagnostics.Process.Start("app.exe");

 

komentarz 22 maja 2020 przez zdridox Nowicjusz (210 p.)
to by działało ale musiałbym dodać ten plik exe do systemu32 jak wiesz jak to zrobić i mógłbyś mi powiedzieć byłbym wdzięczny :)
komentarz 9 kwietnia 2023 przez Stanisław Juszczyk Nowicjusz (100 p.)

@JakSky, Dzięki, wszystko działa.

Podobne pytania

+1 głos
1 odpowiedź 140 wizyt
pytanie zadane 6 lutego 2017 w Systemy operacyjne, programy przez niko64 Użytkownik (630 p.)
0 głosów
1 odpowiedź 325 wizyt
pytanie zadane 6 grudnia 2016 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 652 wizyt
pytanie zadane 28 lipca 2016 w Sieci komputerowe, internet przez Dash Nałogowiec (29,650 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,955 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...