Oppure

Loading
09/08/21 6:08
Valcars92
Salve a tutti e buongiorno.... Non so se il titolo è corretto così ma non mi veniva in mente nulla di meglio per descrivere il problema xD.....
Comunqua ho un errore se si può chiamare così... in pratica creando un programmino che non fa altro che avviare dei programmi esterni non capisco perchè mi salva i file che sono nella cartella del processo nella cartella del programma che ho creato....

Non credo che sia normale xke altrimenti andrà ad occupare solo spazio inutile visto che quei file sono nella cartella del processo e non capisco xke li copia nella cartella del progetto per funzionare...
comunque provo a postare il codice per farvi capire meglio che sicuramente avrò sbagliato qualcosa

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace NovaRO
{
    public partial class f_MainForm : Form
    {
        public f_MainForm()
        {
            InitializeComponent();
        }

        private void btn_novaPatcher_Click(object sender, EventArgs e)
        {
            Process[] processPatcherbyName = Process.GetProcessesByName("NovaRO Patcher");

            if(processPatcherbyName.Count() == 0)
            {
                string patPatcher = @"C:\NovaRO\NovaRO Patcher.exe";
                Process patcherProcess = Process.Start(patPatcher);
                //processPatcherbyName[0] = patcherProcess;
            }
            else if(processPatcherbyName.Count() == 1)
            {
                MessageBox.Show("NovaRO Patcher è gia aperto!");
                return;
            }
            

        }

        private void btn_NovaRO_Click(object sender, EventArgs e)
        {
            string stringGrayMap = File.ReadAllText(@"C:\NovaRO\DATA.ini");
            ProcessStartInfo processInfo = new ProcessStartInfo();

            if (cBox_GrayMap.Checked == true)
            {
                
                stringGrayMap = stringGrayMap.Replace("3=maps.grf1", "3=maps.grf");
                File.WriteAllText(@"C:\NovaRO\DATA.ini", stringGrayMap);

                processInfo.FileName = @"C:\NovaRO\NovaRO.exe";
                processInfo.WorkingDirectory = Path.GetDirectoryName(@"C:\NovaRO\NovaRO.exe");
                Process.Start(processInfo);

            }

            
            stringGrayMap = stringGrayMap.Replace("3=maps.grf", "3=maps.grf1");
            File.WriteAllText(@"C:\NovaRO\DATA.ini, stringGrayMap);

            processInfo.FileName = @"C:\NovaRO\NovaRO.exe";
            processInfo.WorkingDirectory = Path.GetDirectoryName(@"C:\NovaRO\NovaRO.exe");
            Process.Start(processInfo);

        }
    }
}




da premettere che sto usando ProcessStartInfo perchè i processi richiedono dei file che si trovano nella sua cartella per avviarsi e con Process mi dava errore di missing file.... cmq credo che l'errore sia proprio in questa funzione....attendo vostre risposte e
come sempre grazie in anticipo
Ultima modifica effettuata da Valcars92 09/08/21 6:11
09/08/21 11:41
nessuno
Da un bot a un patcher di un gioco... bene
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità;) chiamava il gioco del Lotto Tassa sulla stupidità.
09/08/21 14:54
Thejuster
Postato originariamente da nessuno:

Da un bot a un patcher di un gioco... bene


:rofl::rofl::rofl:

Conosci i patcher di ragnarok, ne ho fatti diversi compreso l'estrattore e compressore dei GRF.
che non è altro semplicemente di un pacchetto di risorse serializzato indicizzato con degli Header e bit shift per
l'algoritmo di compressione usato.

Non credo che sta creando un Patcher ma semplice un launcher da quel che ho capito.
Anche se personalmente reputo quello di Ragnarok molto obsoleto e poco funzionale.
Ma all'epoca non si poteva ottenere di meglio.

anche il nick Valcars non mi è nuovo. uhm...

Cmq, lanciando il processo da C:\xxx , il processo legge come percorso di avvio C:\xxx e non C:\programmi\NovaRO\
Per fare questo il progetto deve essere avviato da quella cartella C:\programmi\Novaro\Launcher.exe


Prova a fare un test al contrario.
Ovvero copiare tutto neoncube nella cartella bin\debug del progetto e lanciarlo da li.
dovrebbe funzionarti senza problemi.

Ultima modifica effettuata da Thejuster 09/08/21 14:55
mire.forumfree.it/ - Mire Engine
C# UI Designer
09/08/21 17:49
Valcars92
Si in effetti è un programmma che non fa altro che avviare l'eseguibile di RO e il patcher niente di complicato l'ho creato giusto per fare qualcosa xD....mi funziona bene però non capivo perchè mi copiava i file nella cartella del progetto ed ero curioso di capire se era un errore mio.... xD Comunque Thejuster si io a dire il vero anni fa frequentavo eAthena la sezione italiana non so se ti ricordi....ogni tanto faccio un giro su rAthena ma giusto perchè ho un server locale dove provo script npc ecc...cmq non voglio andare fuori tema .......... nessuno ancora non sono riuscito a creare un patcher xD ma non sarebbe una cattiva idea fare qualche tool per fare qualcosa di costruttivo.,... xD
comunque grazie thejuster...quindi per evitare che mi copia i file devo avviarlo dalla cartella di RO...ora ho capito grazie come sempre ^_^...
proverò a fare anche al contrario e vedrò un pò
Ultima modifica effettuata da Valcars92 09/08/21 17:53
09/08/21 19:26
Thejuster
Si, ma come detto, ormai quei tool aka (Neoncube & Co) Sono antenati.
Non ho mai tempo altrimenti farei un patcher o lo proporrei proprio su eAthena.

:ot:
Si che mi ricordo.
Davo supporto anche alla sezione italiana, a quei tempi ro andava fortissimo.
Ricordo il mio primissimo programma che sviluppai eAthena Studio.
Ma adesso c'è il mio rAthena. non lo aggiorno da molto però sta ancora li.
github.com/Thejuster/…
mire.forumfree.it/ - Mire Engine
C# UI Designer