1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Bauche ein paar Tipps!

Dieses Thema im Forum "AppleScript" wurde erstellt von palmetshofer, 22.04.06.

  1. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Hab ein paar Fragen.

    Und zwar bräuchte ich ein paar Tipps zu AppleScript.

    Kann ich in AppleScript richtige Forms basteln?

    Ich bräuchte eine Form mit Radio Buttons und normalen Buttons.

    2.) Wenn ich das Terminal mit "tell application "Terminal" anspreche
    wie sende ich dem Terminal dann z.b. den Befehl "boot-device" und
    und lass mir den Erebnistext den das Terminal liefert anzeigen?

    das wars fürs erste mal ;)

    MfG Matthias
     
  2. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Also 2. hat sich schon erledigt ;)

    Nun wie man Forms und so macht, schätze ich mal dass man dies besser
    mit Cocoa macht.

    So jetzt hab ich eine andere Frage:

    Wenn ich einen string hab der z.B. so aussieht: "blabla bla servus9bis3 bla bla"

    Wie kann ich aus dem string der in einer Variable definiert ist, nennen wir sie "var",
    nur einen Teil herauskopieren und in eine neue Variable definieren?

    Ich möchte das aus "var" nur 'servus9bis3' in eine neue Variable gesetzt wird.

    MfG Matthias
     
  3. Schomo

    Schomo Russet-Nonpareil

    Dabei seit:
    15.11.04
    Beiträge:
    3.749
    Werfe mal das Terminal auf den Scripteditor, dann geht ein Fenster mit Befeheln auf, die du in AS für das Terminal verwenden kannst.

    Gruß Schomo
     
  4. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Die Befehle hab ich schon.

    Jetzt muss ich nur noch das auslesen aus dem String hinbekommen.
    Danke ;)

    MfG Matthias
     
  5. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    So ich habs jetzt so gelöst:

    Code:
    set var to every word of var
    set var2 to item 3 of var
    
    das hat soweit gut funktioniert ;)

    Erneutes Problem!

    Wieso funktioniert dieser befehl bei mit nich?
    Code:
    set diskif to extract item from 6 to (length of disklength)
    
    Ich bekomme die Meldung: Syntaxfehler. "Zeilenende, etc." erwartet aber ein
    Klassenname gefunden.

    Markiert wird dabei das Wort "string"
     
    #5 palmetshofer, 22.04.06
    Zuletzt bearbeitet: 22.04.06
  6. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Habs mit einer Schleife gelöst.

    Code:
    set diskid to every character of diskid
    set diskfinal2 to ""
    
    repeat with i from 7 to number of items of diskid
    	set diskfinal to item i of diskid as string
    	set diskfinal2 to diskfinal2 & diskfinal
    end repeat
    
    Jetzt muss ich noch wissen wie ich mit "do shell script" ein "sudo" realisiere wobei
    ich vorher das admin-passwort abfrage und in einer Variable speichere.
    Und wie ich einen Passwort Eingabe-Dialog realisiere.

    MfG Matthias
     
  7. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Ich post dir mal das ganze Skript ;)

    Ich will zu Testzwecken für das Tutorial von Fabs (high-end-freak) ein Programm
    schreiben um das Booten von USB für nicht Intel Macs zu ermöglichen.

    Um die Auswahl die generierung des Unix-Scriptes zu automatisieren hab ich
    dieses Script zu Testzwecken geschrieben.

    Code:
    
    display dialog "Type in the name of your USB-Disk you want to boot from" default answer "" buttons {"OK"} default button 1
    copy the result as list to disk_choice
    set disk to item 1 of disk_choice
    
    do shell script "diskutil information /Volumes/" & disk
    copy the result as string to status
    
    display dialog status buttons {"OK"} default button 1
    
    set diskid to every word of status
    set diskid to item 4 of diskid
    
    display dialog diskid buttons {"OK"} default button 1
    
    set diskid to every character of diskid
    set diskfinal2 to ""
    
    repeat with i from 7 to number of items of diskid
    	set diskfinal to item i of diskid as string
    	set diskfinal2 to diskfinal2 & diskfinal
    end repeat
    
    display dialog diskfinal2 buttons {"OK"} default button 1
    
    display dialog "nvram boot-device ud:" & diskfinal2 & ",\\\\\\\\:tbxi" buttons {"OK"} default button 1
    
    
    Nun noch ein bisserl zum Code:
    Die Schleife muss sein da der Parameter disk1s*die Zahl wird gebrauch*
    manchmal 1 oder 2-Stellig ist. Je nach dem. Jetzt bauch ich einen
    Konstanten wert in der Rechnung. von "d" bis "s" von disk1s
    ist alles konstant. Da auch niemand 10 Festplatten angeschlossen
    hat wird auch niemand disk10s haben. Dann wäre der Faktor nicht mehr
    konstant.
    Deswegen komm ich um diese Schleife net herum.
    Den Rest könnte man sicher eleganter lösen ... wer weiß ;)

    Naja Problem ist nur ich will ein paar "Funktionen zum Programm dazuschreiben.
    Kann ich in XCode zum Beispiel Cocoa und AppleScript kombinieren?
    Da ich Cocoa noch nicht so gut, bzw. gar nicht kann wäre es für mich
    einfacher die Variablen auslese aus dem Terminal per AppleScript vorerst
    zu lassen und später das ganze Programm in Cocoa zu realisieren.
    Deshalt hab ich auch hier gepostet ;)

    Das würde das erstellen einer Oberfläche für das Programm und die
    Benutzerfreundlichkeit verbessern.

    MfG Matthias
     
    #7 palmetshofer, 23.04.06
    Zuletzt bearbeitet: 23.04.06
  8. high-end-freak

    high-end-freak Herrenhut

    Dabei seit:
    16.12.05
    Beiträge:
    2.289
    bei diesem nvram ding ganz unten hast du aber nur gesagt "diskplay diaglogue" aber du hast vergessen dem terminal zu sagen, dass es dieses skript auch machen soll! oder versteh ich da was falsch? hab wenig ahung von applescript;) :eek: .
     
  9. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Es ist nur ein Test Script um zu sehen wie ich die nötigen Parameter auslesen
    kann. Das Problem was ich jetzt hab ist, dass man für das Ändern des nvram-
    Parameters Administratorrechte braucht.

    Also muss es

    Code:
    do shell script "sudo nvram boot-device ud:*zahl*,////:tbxi"
    
    heißen. Problem ist nur, dass ich eine Fehlermeldung bekomme, weil man für
    sudo ja das Admin Passwort braucht. Jetzt muss ich eine Lösung finden wie ich
    das Passwort mit übergeben kann. Wenn es der Benutzer über eine Maske
    im Script eingibt.
     
  10. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Hmm das mit dem nvram verdutzt mich etwas. Hab dir mal zum aunschauen meins
    fotographiert. So steht es drin nachdem der PRAM und der NVRAM resettet worden ist:

    [​IMG]

    Ich seh das Script nirgens ;)

    Jetzt is es da ;)

    Danke werds mir gleich mal reinziehn :)

    WOW sieht ja kompliziert aus ;)
    Danke war sicher heiden Arbeit.


    MfG Matthias
     
  11. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Bei denem Script hat sich was eingeschlichen ;)

    [​IMG]

    Es sollte eig. 10 nich 0 dortstehen. Ich versuch mal das auf eigene Faust zu ändern ;)

    Mal sehen ob ichs hinbekomm. Deswegen hab ich auch die Schlefe geschrieben
    weil der Konstante String "disk0s" ist. Die Zahl nach disk kann nur mehr als 10
    sein wenn jemand 10 Festplatten angeschlossen hat. Wovon ich nicht ausgehe.

    Bis jetzt noch kein Erfolg gehabt ;) ...

    MfG Matthias
     
    #11 palmetshofer, 23.04.06
    Zuletzt bearbeitet: 23.04.06
  12. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Es sollte die Ziffer hinter "disk*igendeineZahl*s" sein.
    Ob die Platte Partitioniert ist oder nicht macht nichts weil wenn man
    in der Liste die richtige Partition auswählt macht dies keinen Unterschied weil
    von /Volumes/Partition ausgegangen wird und so immer der Richtige identifier
    verwendet wird.

    Für den nvram command wird also immer die Zahl hinter z.B.: disk1s verwendet.

    MfG Matthias
     
  13. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Mann das ist ja unglaublich! So ein Service ;) Und so eine
    Hilfsbereitschaft!

    Wie wärs mit einem gemeinsamen Projekt?

    MfG Matthias
     
  14. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Na da sag ich mal Danke ;)

    Großautowaschtage hab ich heute ;) Kein Problem. Die erklärungen
    einfach, dann wenns dir von der Zeit her passt.

    Und wegen dem gemeinsamen Projekt ... überlegs dir einfach mal.

    MfG Matthias
     
  15. itschus

    itschus Becks Apfel (Emstaler Champagner)

    Dabei seit:
    13.04.06
    Beiträge:
    333
    hey jungs, ich bin über eure arbeit gestolpert, respect was ihr da gebastelt hab. ich versteh zwar kein wort, hört sich aber gut an:)

    jetzt folgendes Problem: ich will ein iBook von meiner alten iBook- Platte aus starten, klar usb. was muß ich jetzt genau mit eurem skript machen?

    itschus
     
  16. high-end-freak

    high-end-freak Herrenhut

    Dabei seit:
    16.12.05
    Beiträge:
    2.289
    huch, der pete hate ja das skript ausm anhang entfernt o: dann kanns natuerlich nicht gehen. pete, wo steckst du!? komm zu uns:D
     
  17. palmetshofer

    palmetshofer Apfel der Erkenntnis

    Dabei seit:
    28.01.06
    Beiträge:
    724
    Ich hab sie nimmer. Kann sie nirgens mehr finden. Tut mir leid. :eek:

    Ich such noch einmal alles ab, aber garantieren kann ich nichts.

    MfG Matthias
     
  18. high-end-freak

    high-end-freak Herrenhut

    Dabei seit:
    16.12.05
    Beiträge:
    2.289
    da habt ihr aber nochmal glueck jehabt, ick habs hier in den tiefen meines dokumenten-verzeichnisses noch das skript gefunden:D
    allerdings funzt es bei mir nicht. kommt immer "no such file or directory" wenn ich in den ornder gehe und mich zum admin mache:(.
     

    Anhänge:

  19. high-end-freak

    high-end-freak Herrenhut

    Dabei seit:
    16.12.05
    Beiträge:
    2.289
    womit ersetzen? ich hab leider ueberhaupt keine ahnung von apple script:(.
    Code:
    cd pfad_zum_ordner
     

Diese Seite empfehlen