Class Name

0

Witam. Mam pewną aplikację. Żeby odpalić ją w formie mojej aplikacji muszę podać w jej pliku konfiguracyjnym ClassName mojej aplikacji w takiej postaci: "WindowsForms10.Window.8.app.0.b7ab7b". Wszystko działa i jest ok. Ale czasami, gdy uruchomię swoją aplikację to ClassName się zmienia i wtedy aplikacja dziedziczona nie uruchamia się w moim Form. Jak mógłbym w C# sprawdzić ClassName mojej aplikacji, żeby potem automatycznie podstawić ją do pliku konfiguracyjnego tej drugiej? Pozdrawiam.

0

Nie ma czegoś takiego jak "Class Name aplikacji". Każda aplikacja może mieć dowolną liczbę klas, z których każda ma swoją nazwę.
To, o czym piszesz (podawanie nazwy klasy w pliku konfiguracyjnym, żeby uruchomić aplikację) brzmi jak jakaś kosmiczna aberracja. Czemu to tak jest zrealizowane? Masz na to wpływ?

0

Dodałem zrzut ekranu z aplikacji dodanej w toolsach do tej aplikacji, której plik konfiguracyjny zmieniam. Służy właśnie po to żeby odczytać ClassName mojej Formy. Ale można "nacelować" na dowolną aplikację.

2
using System.Runtime.InteropServices;
...
        [DllImport("user32.dll", CharSet=CharSet.Auto)]
        extern static int GetClassName(IntPtr hWnd, [Out] StringBuilder lpClassName, int nMaxCount);

        private void Form1_Load(object sender, EventArgs e)
        {
            var sb = new StringBuilder(256);
            if (GetClassName(this.Handle, sb, sb.Capacity) > 0)
                label1.Text = sb.ToString();
        }
0

Mam jeszcze jedno pytanie. A od czego to zależy, że czasami te ClassName jest takie samo, a czasami na jedno uruchomienie aplikacji się zmienia.

0
litrmleka napisał(a):

Mam jeszcze jedno pytanie. A od czego to zależy, że czasami te ClassName jest takie samo, a czasami na jedno uruchomienie aplikacji się zmienia.

To przez 127 linijkę.

1

Nazwa klasy jest ustanawiana automatycznie. Nie zakładaj że będzie taka czy inna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1