Autor |
Beitrag |
FragSalat
      
Beiträge: 24
|
Verfasst: 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
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 24
|
Verfasst: 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
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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? C#-Quelltext 1: 2: 3: 4: 5:
| String[] arguments = Environment.GetCommandLineArgs(); arguments[0] arguments.Length ... |
|
|
JüTho
      
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
|
Verfasst: So 10.05.09 18:17
FragSalat hat folgendes geschrieben : | 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. |
FragSalat hat folgendes geschrieben : | läuft auch ohne^^ |
Dann hast du eine neue Programmiersprache entwickelt.
FragSalat hat folgendes geschrieben : | 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 
      
Beiträge: 24
|
Verfasst: 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
      
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
|
Verfasst: 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 
      
Beiträge: 24
|
Verfasst: 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
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 10.05.09 20:08
FragSalat hat folgendes geschrieben : | 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... 
|
|
FragSalat 
      
Beiträge: 24
|
Verfasst: 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
      
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
|
Verfasst: Mo 11.05.09 09:40
|
|
FragSalat 
      
Beiträge: 24
|
Verfasst: 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
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
|
|