Autor Beitrag
FragSalat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 10.05.09 16:36 
ja also ich erklär mal was ich vor hab...

ich hab vor per rechtsklick->kontexmenü eine bild datei zu öfnnen und den pfad in meinem programm ein zu lesen

ich habe halt jetzt einen kontexmenü eintrag angelegt und auf den soll halt nun die oben gesagt anweisung passieren das er das bild ins prog läd und den pfad auch an eine textbox weiter gibt

wäre echt nice wenn mir da wer helfen kann


thx im vorraus


MfG FragSalat
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.05.09 16:41 
Schau dir einmal deine main-Methode an. Die bekommt als Argument die übergebenen Kommandozeilenparameter als Array. ;-)

Du bekommst diese auch explizit mit Environment.GetCommandLineArgs:
msdn.microsoft.com/d...commandlineargs.aspx
FragSalat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 10.05.09 18:05 
zum einen hab ich bei mir keine main methode^^
läuft auch ohne^^

zum anderen komm ich nicht auf GetCommandLineArgs klar^^
na mal guckn wär aber nice wennde mal n beispiel code hättest^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.05.09 18:09 
Ohne main-Methode kannst du in C# kein Programm erstellen bzw. starten...

Wie wäre es mit dem Beispiel auf der Seite?
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
String[] arguments = Environment.GetCommandLineArgs();
// und dann eben benutzen
arguments[0// ist der erste Parameter
arguments.Length // ist die Anzahl der Parameter
...
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 10.05.09 18:17 
user profile iconFragSalat hat folgendes geschrieben Zum zitierten Posting springen:
zum einen hab ich bei mir keine main methode^^

Das ist Quatsch. Eine C#-Anwendung hat immer genau eine Main-Methode (eine Klassenbibliothek nicht, aber jede Anwendung).
SDK-Doku hat folgendes geschrieben:
Die Main-Methode ist der Einstiegspunkt des Programms, an dem Objekte erstellt und andere Methoden aufgerufen werden. Es kann nur einen Einstiegspunkt in einem C#-Programm geben.


user profile iconFragSalat hat folgendes geschrieben Zum zitierten Posting springen:
läuft auch ohne^^

Dann hast du eine neue Programmiersprache entwickelt.

user profile iconFragSalat hat folgendes geschrieben Zum zitierten Posting springen:
zum anderen komm ich nicht auf GetCommandLineArgs klar^^
na mal guckn wär aber nice wennde mal n beispiel code hättest^^

OpenBook Visual C# Kap.2 oder die allgemeine Einführung in die Arbeit mit Arrays (wie bei Sebastian angedeutet).

Gruß Jürgen
FragSalat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 10.05.09 19:15 
ja gut mag sein aber die is nicht in der seite wo ich halt die form schreibe bzw die funktionen der form


btw ich habe nur 1 eintrag im array und der wäre der pfad wo mein prog gespeichert ist...

das hilft mir aber nicht weiter denn ich will wissen wie ich in der registry oder im programm eine anweisung ausführen kann nachdem ich rechtsklick aufs bild->kontexmenü->menüpunkt gewählthab
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 10.05.09 19:39 
Schau einmal die Datei program.cs an.

Übrigens: im Explorer oder TotalCommander o.ä. Rechtsclick -> Öffnen mit -> Programm auswählen liefert es auch ohne Eintrag in die Registry. Ein Eintrag in die Registry hat höchstens dann Sinn, wenn alle Dateien mit dieser Endung so bearbeitet werden sollen.

Jürgen
FragSalat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 10.05.09 19:57 
so ist es ja auch und ich bin zwar anfänger beim coden aber nicht dumm das weiß doch jeder
es geht aber darum das ich nen nicht originales photoshop cs4 hab und dort fehlen komischerweise die dateiformate png gif bmp usw. und deswegen hab ich mir nen prog gecodet welche die umwandelt und jetzt hab ich mir halt ne erweiterung in dem kontextmenü eingerichtet auf ziehmlich alle bilddateien und muss nur noch wissen wie ich codn / machen kann das mein programm sozusagen dann den pfad der datei bekommt die ich rechtsgeklickt hab und dann kann man weiter arbeiten mit dem prog
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.05.09 20:08 
user profile iconFragSalat hat folgendes geschrieben Zum zitierten Posting springen:
es geht aber darum das ich nen nicht originales photoshop cs4 hab
Und um die Raubkopie richtig benutzen zu können willst du jetzt Hilfe?!?
Sonst gehts aber noch... :roll:
FragSalat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 10.05.09 20:30 
omg das hat nix damit zu tun das photoshop richtig gehen soll sondern damit das ich keine möglichkeit hab in ner png z.b. ab zu speichern oder in ner bitmap
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 11.05.09 09:40 
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
im Explorer oder TotalCommander o.ä. Rechtsclick -> Öffnen mit -> Programm auswählen liefert es auch ohne Eintrag in die Registry.

Wenn ich das mache, gibt es irgendwann auch eine Rückfrage wie: "Dateien mit dieser Extension immer mit diesem Programm öffnen". Auf diese Weise kann ich nicht berücksichtigte Extensions selbst nachtragen. Aber ich gebe Sebastian recht:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Und um die Raubkopie richtig benutzen zu können willst du jetzt Hilfe?!?
Sonst gehts aber noch... :roll:

Jürgen
FragSalat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mo 11.05.09 23:24 
so ich habs jetzt hinbekommen


ihr müsst also dort wo ihr die schlüssel für die kontexmenü erweiterungen angelegt habt beim letzten schlüssel (der sollte command heißen) wo der pfad eurer datei angegeben sein sollte , am ende noch "%1" anfügen also z.b.
C:\Users\...\Documents\Visual Studio 2008\Projects\Bildkonverter\Bildkonverter\obj\Debug\Bildkonverter.exe "%1"

das "%1" sorgt dafür das ein argument übergeben wird beim öffnen was halt bei uns der pfad der rechtsgeklickten datei ist


für alle anderen die das vllt gebrauchen könnten hier mein code
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
            String[] arguments = Environment.GetCommandLineArgs();    //argumente auslesen

            if (arguments.Length > 1)    //Prüfen ob mehr als 1 argument vorhanden ist 
           //(welches in meinem fall der bildphad ist)
            {
                try
                {

                    textBox1.Enabled = true;
                    textBox1.Text = arguments[1];          //Den Dateipfad an die textbox übergeben
                    textBox1.Enabled = false;
                    pictureBox1.Image = Image.FromFile(arguments[1]);     //mit dem Dateipfad Bild in die picbox geladen
                    pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                }
                catch (Exception)       //exeption falls z.b. nicht konvertirerbare datei 
                {
                    MessageBox.Show("Das Bild konnte nicht geladen Werden");
                }
            }



MfG FragSalat