AutoIt-Skript in einem "schwarzem Fenster"

  • Hallo,
    ich möchte hingehen und eine autoit datei nicht als normales Fenster öffnen, sondern so ein schwarzes Fenster erstellenm( sry weiß net mehr wie viel Bit...)
    also wie zb. mit so einem befehl: creat_dos(....)
    soll keine DOS-Datei sein sondern nur heit so ein Fenster (kein voller bildschirm), soll so ausehen wie cmd.exe oder ftp.exe....(ich will nix an cmd.exe senden!)
    antwortet mir bitte mit ganzem befehl!
    thx im vorraus

    Nur keine Hektik - das Leben ist stressig genug

  • [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt("GUIOnEventMode", 1)
    $Form = GUICreate("Form", 405, 294, 302, 218)
    GUISetBkColor(0x000000)
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]

    Oder mehr als eine Art CMD mit einem Input?

    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt("GUIOnEventMode", 1)
    $Form = GUICreate("Form", 698, 277, 302, 218)
    GUICtrlCreateEdit("", 0, 0, 697, 273)
    GUICtrlSetBkColor(-1, 0x000000)
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit]
  • hi
    thx für schnelle :re.
    aba das meinte ich nicht
    ich will keinen "simulator" der nur so aussieht als wenn das eine währe
    sondern ich möchte eine au3to16-(wie auch immer bit's)bit-exe
    ...verstehs du was ich meine? also nicht das der script ein fenster erzeugt als wenn es so aussieht sondern eine richtige exe! die wirklich so ist

    mit anderen worten:
    erstelle eine normale C++ exe nur mit einer while(sodass sie nicht schließt)
    so ein fenster möchte ich haben
    ..gibt es denn nicht so ein gui-befehl?
    8|
    ok thx im vorraus :D

    Nur keine Hektik - das Leben ist stressig genug

    Einmal editiert, zuletzt von Antispeed (15. Januar 2010 um 22:52)

  • Wenn man das cmd dings mit dem script auslesen kann, dann kann man mit ner If abfrage auch Rückgabewerte ausgeben lassen (dein willkommen...)

  • Ich versteh dich wirklich nicht... Willst du jetzt ein Fenster erstellen, was so aussieht wie cmd oder ähnliches, oder willst du einen Wert in eine shell schreiben wenn das Programm von da aufgerufen wird?

  • [autoit]

    If $CmdLine[0]=0 Then
    MsgBox(0,"","Keine Parameter übergeben!")
    ElseIf $CmdLine[0]=1 Then
    MsgBox(0,"","Zu wenig Parameter Übergeben!")
    ElseIf $CmdLine[0]=2 Then
    MsgBox(0,"","Es wurden 2 Parameter Übergeben!")
    Else
    MsgBox(0,"","Zu viele Parameter übergeben!")
    EndIf
    Exit

    [/autoit]


    meinste sowas?
    $CmdLine[0] da steht drinn wie viel parameter übergeben wurden
    $CmdLine[1],$CmdLine[2]... sind dann die Parameter die du dann aufgreifen kannst

  • Wieso will man denn die CMD verwenden, wenn man doch eine GUI hat ? Aber gut, du musst mit dem AutoIt3Wrapper kompilieren und dort CUI einstellen. Zum Lesen von der Konsole brauchst du zusätzlich diese Funktionen, schreiben geht mit ConoleWrite.

    Spoiler anzeigen
    [autoit]

    #include<WinAPI.au3>
    #include-once
    Func _Console_Open()
    ; Author: Prog@ndy
    Return _WinAPI_CreateFile("CON", 2, 2)
    EndFunc
    Func _Console_Read($hConsole, $sPrompt='')
    ; Author: Prog@ndy
    If Not @Compiled Then
    If $sPrompt = '' Then $sPrompt = "Your input:"
    Return InputBox("Console Input", $sPrompt)
    EndIf
    If Not $hConsole Then Return SetError(1,0,'')
    If $sPrompt<>'' Then ConsoleWrite($sPrompt)
    Local $tStruct = DllStructCreate("char[1024]"), $sString='', $iRead
    Do
    _WinAPI_ReadFile($hConsole, DllStructGetPtr($tStruct), 1024, $iRead)
    $sString &= DllStructGetData($tStruct,1)
    Until $iRead<1024 Or StringRight($sString, 2) = @CRLF
    Return StringTrimLeft($sString,2)
    EndFunc
    Func _Console_Close($hConsole)
    ; Author: Prog@ndy
    _WinAPI_CloseHandle($hConsole)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------
    #AutoIt3Wrapper_Change2CUI=y
    If Not @Compiled Then MsgBox(0, '', "Konsole funktioniert nur kompiliert")
    Global $hConsole = _Console_Open()
    MsgBox(0, '', _Console_Read($hConsole, "Name eingeben >"))
    _Console_Close($hConsole)

    [/autoit]
  • [autoit]


    #AutoIt3Wrapper_Change2CUI=y

    [/autoit][autoit][/autoit][autoit]

    If $CmdLine[0] > 0 Then
    ConsoleWrite($CmdLine[1] & @CRLF)
    Else
    ConsoleWrite("Hello CMD world!" & @CRLF)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    While 1 * Sleep(100)
    WEnd

    [/autoit]

    Compilieren und die Exe dann starten!


    Ich hoffe, dass du das meinst!

    Gruß,
    UEZ

    PS: Ups, gab ja gleich mehrer Antworten... :whistling:

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯