Laden...

Forenbeiträge von Scrapy Ingesamt 12 Beiträge

01.03.2005 - 14:40 Uhr

Hab's jetzt mit dem DVD-Brennen hinbekommen!

Man darf das nicht so, wie ich das gemacht habe, mixen (mit dem oben besprochenen: " | ")!


neoLaufwerk.BurnIsoAudioCD("", "", false, (INeroISOTrack)neoISOTrack, null, null, NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE, iGeschw, NERO_MEDIA_TYPE.NERO_MEDIA_CD | NERO_MEDIA_TYPE.NERO_MEDIA_DVD_ANY); 

Sonder nur das Flag auswählen, was für den aktuellen Brennvorgang wichtig ist:


//Globale Variable:
private NERO_MEDIA_TYPE neoMedium;

//...jenachdem den Typ setzen:
// z.B.: für eine CD-RW:
neoMedium = NERO_MEDIA_TYPE.NERO_MEDIA_CDRW;
// oder eine DVD+RW:
neoMedium = NERO_MEDIA_TYPE.NERO_MEDIA_DVD_P_RW;
//...

private void Brennen()
{
 neoLaufwerk.BurnIsoAudioCD("", "", false, (INeroISOTrack)neoISOTrack, null, null, NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE, iGeschw, neoMedium); 
}

@GIJOE:
Aus deiner Methode bekommt man aber nur die KB/s! Das könnte man aber umrechnen, wenn man wüßte, wieviel KB/s's eine CD bzw. DVD mit einfacher Geschwindigkeit übertragen. 😉

25.02.2005 - 16:32 Uhr

Ja, also in Sachen Büchern hab' ich auch eine Menge[...] deswegen fühle ich mich jetzt auch nicht unbedingt intelligenter!

Á propos Lesepuffer:
Mein Laufwerk unterstütz BurnProof, auch unter NERO-Burning-ROM. Aber wenn ich das bei den Brennoptionen mit einstelle, bekomme ich eine Fehlermeldung, daß das mein Laufwerk nicht unterstützt. 🙁

Zu deiner Brenngeschwindigkeit nochmal:

Was mir bei aufgefallen ist. Egal was für einen Speed ich ihm übergebe z.B. 8x, sagt er "Can only write at 24x (3.600 KB/s) instead of 1200x (180.000 KB/s) to current disc." und bringt dann "Simulation started at 24x (3.600 KB/s)". Die Sau schreibt immer mit der Max Geschwindigkeit!

Lies mal was da steht: Kann nur 24x (3.600 KB/s) anstellte von 1200x (180.000 KB/s) schreiben!
Oder hast du dich da jetzt verschrieben? 🤔

Ich glaube so schnell schaffts noch kein Brenner - vielleicht hast du da einen kleinen Bug drinne. Aber gut das er es bei dir mit maximaler Geschwindigkeit schreibt, meiner Macht das ja nur mit Minimaler. 😭

25.02.2005 - 12:40 Uhr

Okay, dann ist deine Methode wohl die richtige.
Ich hab' nur eine CD-RW auf der zwar 16-24x drauf steht, die er aber nur mit 2x angibt.

Wo hast du eigentlich deine ganzen Nero-Informationen her? Auch selbst erarbeitet nach dem Motto: Try&Error?

24.02.2005 - 22:52 Uhr

@GIJOE
Das Wissen hat man sich eben über die Jahre angeeignet - aber wie du siehst weiß ich immer noch nicht alles - leider bekommt man dafür keine Ausbildung.
Man muß aktiv dran bleiben! 😉

Die Bitweise Verknüpfung mit den Flags kannst du mit allen Enummerationen (enum in C#) machen! Vielleicht ergeben aber nicht alle Verknüpfungen ein Sinn, das liegt dann aber an dem, der das programmiert hat. 8)

Für das Umrechnen von Blöcken in Byte hab ich leider keine Formel.
Aber wenn die Disk leer ist, hast du die maximale Anzahl an Blöcken von der Disk aus CDInfo. Wenn du dann die EstimateTrackSize davon abziehst und einen Wert größer als Null raus gekommst, dann ist die Disk noch nicht voll! (Theoretisch, denke ich.)

Nein, also && bzw. || aber auch == kannst du in C# nur bei Vergleichen benutzen, sonst nicht!
Die Bitweise Verknüpfung kannst nur bei Flags (enum in C#) - also wenn du was bitweise Verknüpfen möchstest verwenden! Bitweise könntest du auch mit einem = vergleichen.
Nochmal zur Überischt:
| - Bitweises ODER
& - Bitweises UND
^ - Bitweises XOR
= - Bitweises ISTGLEICH
|| - Vergleichs ODER
&& - Verlgeichs UND
== - Vergleichs ISTGLEICH

Also ich weiß nicht, das mit den Geschwindigkeiten haut irgendwie nicht ganz hin.
Hab das bei mir mit:


NeroSpeedsClass neoGeschw = (NeroSpeedsClass)neoLaufwerk.WriteSpeeds;

gemacht aber da bekommt man meist utopisch hohe Werte und bei dir sehr kleine!
Frag' nicht was richtig ist!? Die CD/DVDs die ich eingelegt habe, hatten z.T. ganz andere Geschwindigkeiten angegeben!
Beide Methoden klingen irgendwie richtig, geben jedoch völlig andere Werte aus!

Probier's mal aus 🤔

24.02.2005 - 21:31 Uhr

@GIJOE
Ich Konkarti... was? 😉

Nein, ich weiss schon was du meinst, das: | (Logisches Oder).
Ein kleines Rechenbeispiel der Logik:
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1

Das ganze gibts natürlich auch mit: & (Logisches Und).
Wieder ein kleines Rechenbeispiel:
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1

Gleiches gilt bei || (Oder beim Vergleich) bzw. && (Und beim Vergleich).
So kann man die logischen Werte (bitweise) zusammenziehen!
Dieses: "NERO_MEDIA_TYPE.NERO_MEDIA_CD" ist eben nur ein Bitmuster, ein: Flag.
Wenn du mehrere zusammen haben möchtest, kannst die Sie durch ein & bzw. | nach der oben angegebenen Rechnung kombinieren.

Beim meinem Brennvorgang z.B.:


neoLaufwerk.BurnIsoAudioCD("", "", false, (INeroISOTrack)neoISOTrack, null, null, NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE, iGeschw, NERO_MEDIA_TYPE.NERO_MEDIA_CD | NERO_MEDIA_TYPE.NERO_MEDIA_DVD_ANY); 

kannst nicht nur CD-R/Ws brennen sonder auch alle DVD-+R/Ws, weil die Flags über ein Oder (1 | 1 = 1) verknüpft sind!

(Tut mir leid, aber sowas kann ich nicht wirklich gut erklären - war ein Versuch!)

Sag mal wie brennst du eigentlich DVD's? Bei mir geht das mal und mal nicht! Wie gesagt ich mach das ja auch nur über den oben genannten Aufruf! 😦

24.02.2005 - 18:52 Uhr

Ja, habs mal so eben [...] ausprobiert!


private void Brennen()
{
  //neoLaufwerk wurde mit NeroDrive erstellt[...]
  
  //Nero-Event erstellen:
  this.neoLaufwerk.OnDoneCDInfo +=new _INeroDriveEvents_OnDoneCDInfoEventHandler(this.neoLaufwerk_DoneCDInfo);


  neoLaufwerk.CDInfo(NERO_CDINFO_FLAGS.NERO_READ_CD_TEXT | NERO_CDINFO_FLAGS.NERO_READ_ISRC);

  //Solange er was macht ist: bBearbeite = true (Globale Variable)
  //andernfalls wir des von den Nero-Events auf false gesetzt.
  while(bBearbeite)
  {
    Application.DoEvents();;
  }
  
  //Brennen usw. ...
}

//Das Event auswerten:
private void DoneCDInfo(INeroCDInfo neoCDInfo)
{
  MessageBox.Show("Disktyp: " + neoCDInfo.MediaType + ", Titel: " + neoCDInfo.Title)
  //jetzt kann man alles von CDInfo abfragen!
}

NeroCDInfo kannst du nur über das Event abfragen, was du vorher erstellt hast!
Hier kannst du dann den Disktyp, Schreibbarkeit, Titel, usw. ... ausgeben lassen bzw. abfragen.

Wie kannst du denn die Zeit für den Brennvorgang anzeigen lassen?
Also ich brenne momentan Daten-CD-RWs so:


NeroSpeedsClass neoGeschw = (NeroSpeedsClass)neoLaufwerk.WriteSpeeds;
iGeschw = neoGeschw.Item(neoGeschw.Count - 1); //Maximalgeschwindigkeit

neoLaufwerk.BurnIsoAudioCD("", "", false, (INeroISOTrack)neoISOTrack, null, null, 
					NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE, 
					iGeschw, NERO_MEDIA_TYPE.NERO_MEDIA_CD | NERO_MEDIA_TYPE.NERO_MEDIA_DVD_ANY);

Mit DVD-RWs hab ich so meine Schwierigkeiten - obwohls die gleiche Routine ist. 😦
Zudem ist die Geschwindigkeit nicht wirklich richtig[...].

Wie machst du das? Wäre dir dankbar über deinen Code!

23.02.2005 - 23:58 Uhr

@GIJOE:
Zu 1.: Hab ich momentan auch noch keine Lösung, denn die Größe kann man nicht wie die Maximale Kapazität einer Festplatte ablesen. 🙁

Zu 2.: Das kann man glaube ich über das aktuelle Nero-Laufwerk (mittels: NeroDrive) und NERO_MEDIA_TYPE.[...] abfragen.
Beim Löschen checke ich einfach ob Daten, in Form von Dateien oder Ordnern auf der Disk sind! 😉

Hast du denn schon einmal etwas gebrannt, mittels der NEROLib?

23.02.2005 - 18:41 Uhr

@GIJOE:
Gegenfrage: Wozu brauchst du die Informationen? Vielleicht kann ich dir dann weiter helfen.

21.02.2005 - 08:54 Uhr

Ich glaub' in diesem Tread wäre jeder an einem Quellcode interessiert! 🙂

Würd' mal übrigens gerne wissen, wie ihr die Daten brennen könnt, ohne eine MessageBox vor und nach dem Brennvorgang zu setzen?
Ich denke, es liegt nicht direkt an der MessageBox, denn ich könnten schwören das es vorher auch ohne funktioniert hat!
Deswegen frag' ich - ob einer auch dieses Phänomen und seine Lösung dazu kennt. 🙁

16.02.2005 - 22:17 Uhr

Habt ihr mal versucht ein Verzeichnis mit seinen Unterverzeichnissen dort einzufügen? So das die Struktur auf der Festplatte, der auf der CD gleich ist?
Bei mir legt der nur alle Dateien ins Hauptverzeichnis auf CD inklusive der Verzeichnisse. ?(

Und die Dateien haben nicht den ISO2-Standard obwohl ich das eingegeben habe! 🙁

Also ich pack das irgendwie nicht! Vielleicht kennt sich da einer von euch aus!

Vielen Dank!

16.02.2005 - 18:10 Uhr

@GIJOE
Nein, NERO mußt du vorher auf dem Rechner installiert haben. Die NEROLib ist glaube ich eher zum automatisieren gedacht. Nach dem Motto: "Da liegen die Daten, brenne sie mir!". 😉

@turndevil
Nach deiner while-Schleife wird nichts passieren, da kannst du Jahre mit verbringen! 😁



while(longOperation == true)
{
  Thread.Sleep(500);
  MessageBox.Show("locked");
}

this.chosenDrive.BurnIsoAudioCD("MEDIACENTER", "COLLECTION", false, null, 
  this.audioTracks, null, NEROLib.NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE, 
  10, NEROLib.NERO_MEDIA_TYPE.NERO_MEDIA_CDR);

Überleg' mal, BurnIsoAudioCD() startest du doch erst danach und jetzt können auch erst die Events ausgelöst werden!
Habe auch ganz schön an deiner Fehlermeldung herumgebastelt und die Lösung liegt darin, daß du alle Events, die BurnIsoAudioCD() auslösen kann mit einbinden und dir in einer TextBox ausgeben solltest. Dann weißt du auch, was die NEROLib von dir will.

Warscheinlich wirst du in deiner foreach()-Schleife nicht mehrmals hintereinander BurnIsoAudioCD() aufrufen können, da NERO maximal eine CD brennen kann. 😉

14.01.2004 - 10:08 Uhr

Wie kann man die beiden Shift- oder Umschalt-Tasten unterscheiden?

In C# gibts ja unter Keys die LShiftKey- und RShiftKey-Tastaturcodes.
Keys.LShiftKey = 160
Keys.RShiftKey = 161

Aber C# fragt unter KeyDown mit e.KeyValue nur die Nummer 16 ab! 🙁

Dann hab' ich's mit den e.Modifiers versucht und da erkennt C# nur die Shift-Taste an sich egal ob rechts oder links!

Das Problem ist ja auch mit den andern "doppelten" Tasten.

...aber irgendwie muss das doch gehen! :?

Hoffe ihr habt eine Idee, was man noch versuchen kann!

Schönen Dank im voraus!