Hilfefenster (GUI) per button aufrufen. Ext. Programm?

  • Hi, ich wollte mal fragen wie es möglich ist durch einen buttonklick ein fenster mit text mit gui aufzurufen.

    Der hintergedanke ist in ein Programm einen Hilfebutton einzubauen. Nach einem klick soll sich ein Fenster (gui!?) öffnen in dem nur Text steht. Eben die Hilfe.
    Ich sehe mit meinem begrenzen anfängerwissen da nur diese möglichkeiten:

    Per msgbox:

    [autoit]

    Case $msg = $helpbutton
    MsgBox(0, "help", "Dies ist die Hilfe. Doch bei einem Langen text ist dies schlecht da keine möglichkeit fand einen zeilenumbruch in einer msgbox zu machen. Daher würde es blöd rüberkommen.")

    [/autoit]


    oder n Programm mit gui starten

    [autoit]

    Case $msg = $helpbutton
    Run("help.exe")

    [/autoit]


    Doch beide möglichkeiten finde ich nicht das ware da es möglichst eine datei bleiben soll...

  • Mach doch einfach ein weiteres GUI, in dem du einen Label bzw. ein Edit-Feld mit dem Read-Only-Style machst. Das wäre das einfachste.

  • ALso ein Beispiel

    Spoiler anzeigen
    [autoit]

    Func _offnen()
    GUICREate("GUI",300,300)

    GUISetSTate()

    While 1
    Switch GUIGETMSG()
    case -3
    Exit
    EndSwitch
    WEnd
    EndFunc

    [/autoit]
  • Ah hat gedauert bis ichs gepeilt hab
    danke!!!

    dürfte ich, damit ich keinen neuen Thread brauch, noch ne frage hier stellen?

    Problem:
    RegRead
    Ich will den Inhalt des RegPfades auslesen und in n Logfile bringen...
    Wie ich es in n Logfile bring find ich sicher raus, aber das hier bereitet mir Probleme. Ich kann nur den Inhalt
    eines Wertes in dem Pfad auslesen wenn ich den Namen kenne. Ich will aber alles wo in dem Pfad steht haben.
    Also durch diesen Pfad:
    $reg = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "")
    MsgBox(0, "",$reg)
    will ich herrausbekommen was alles mit indows startet. Als antwort der Msgbox bekomm ich... Nix.
    Mach ichs aber so:
    $reg = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\", "NameEinesEintrags")
    MsgBox(0, "",$reg)
    bekomm ich den Pfad zur exe. Ich will aber den Namen des eintrags rausfinden + den Eintrag zur exe...

    hoffe ich habs verständlich genug erklährt..

  • versuch es mal so:

    Spoiler anzeigen
    [autoit]

    For $i = 1 to 100
    $var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $i)
    if @error <> 0 Then ExitLoop
    MsgBox(4096, "Value Name #" & $i & " under in AutoIt3 key", $var)
    next

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Jaaaaaaa danke (^.^)

    Kann ich noch was fragen?
    Es klappt aber verstehe nicht wie xD Könntest du vieleicht mir ganz kurz erklähren was das kleine Script genau macht?

    [url='http://www.autoit.de/dokumentation_aktuell/keywords.htm']

    [autoit]

    For $i = 1 to 100
    $var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $i)
    if @error <> 0 Then ExitLoop
    MsgBox(4096, "Value Name #" & $i & " under in AutoIt3 key", $var)
    next

    [/autoit]
  • na klar,

    Spoiler anzeigen
    [autoit]

    For $i = 1 to 100 ; zählt von 1 bis 100 (dies nennt man auch eine Zähschleife ;) )
    $var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $i); Der Variable $var wird der $i. Wert des vorgegebenen Schlüssels übergeben
    if @error <> 0 Then ExitLoop; prüft, ob beim Auslesen des Regschlüssels ein Fehler aufgetreten ist (Wert $i nicht mehr vorhanden...)
    MsgBox(4096, "Value Name #" & $i & " under in AutoIt3 key", $var); Ausgabe des Wertes des Reg-Schlüssels in einer MsgBox
    next; Schleifen ende - Sprung zurück zu "For, um mit dem nächsten Wert weiterzumachen, solange $i > 100

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Sorry für Doppelpost aber hätte da noch ein klitzekleines problem....
    Edit: Problemn gelöst aber hab n neues ^^
    das:
    Folgendes script:

    [autoit]


    For $i = 1 to 100 ; zählt von 1 bis 100 (dies nennt man auch eine Zähschleife ;) )
    $var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $i); Der Variable $var wird der $i. Wert des vorgegebenen Schlüssels übergeben
    if @error <> 0 Then ExitLoop; prüft, ob beim Auslesen des Regschlüssels ein Fehler aufgetreten ist (Wert $i nicht mehr vorhanden...)
    FileWrite( @ScriptDir & "/autorun.txt",$var & @CRLF)
    next; Schleifen ende - Sprung zurück zu "For, um mit dem nächsten Wert weiterzumachen, solange $i > 100

    [/autoit]


    Wie bringe ich jetzt den Pfad zur exe, also den Wert jedes schlüssels raus und wie bringe ich das dan so in das Logfile das es immer so dasteht:
    Name
    PfadZuExe
    Name
    PfadZuExe

    2 Mal editiert, zuletzt von shrax (11. Mai 2009 um 14:27)

  • Dazu noch was:

    MsgBox(0, "help", "Dies ist die Hilfe. Doch bei einem Langen text ist dies schlecht da keine möglichkeit fand einen zeilenumbruch in einer msgbox zu machen. Daher würde es blöd rüberkommen.")


    Probier doch einfach mal

    [autoit]


    MsgBox(0, "Doch", "Doch" & @CRLF & "und" & @CRLF & "wie" & @CRLF & "das" & @CRLF & "geht" & @CRLF & "ist" & @CRLF & "doch" & @CRLF & "gar" & @CRLF & "nicht" & @CRLF & "so" & @CRLF & "schwer")

    [/autoit]


    :D

    Padmak