1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. funkey

Beiträge von funkey

  • FileInstall() in c++

    • funkey
    • 1. Dezember 2013 um 19:16

    Man könnte den String ja auch Base 64 verschlüsseln wie UEZ das in AutoIt macht: File to Base64 String Code Generator v1.12 Build 2013-03-25

  • DLLCall etc.

    • funkey
    • 27. November 2013 um 20:12

    Die Funktion wurde doch schon für AutoIt gewrappt und ist in der WinAPI-UDF: _WinAPI_GlobalMemoryStatus ()

  • C - Konsolen Menü

    • funkey
    • 15. November 2013 um 19:31

    Danke für die nette Funktion. Werde ich vielleicht mal einsetzen.
    Dein letztes Update habe ich zufällig heute schon gemacht, da es anders bei mir sowieso nicht funktionierte und auch nicht funktionieren kann. Hab auch noch das Löschen der Console nach jedem Befehlsaufruf engebaut.
    Auf alle Fälle eine nützliche Funktion um kleinen Programmen schnell ein nettes Menü zu verpassen! :thumbup:

  • Visualisierung für Logo 0BA7

    • funkey
    • 30. Oktober 2013 um 14:33

    So ein Skript für die Logo hab ich auch mal gemacht, allerdings nur für serielle Kommunikation über RS232 mit älteren Logo-Modellen. Weiß nur nicht mehr wo ich das habe.
    Also ich hatte eigentlich nie Probleme, mich mehrmals mit einer SPS zu verbinden, da stürzt bei mir nchts ab. Aber ich habe da ein paar Kleinigkeiten in deinem Skript gesehen, die vielleicht ncht ganz optimal sind.

    _DaveInit() solltest du nur einmal aufrufen, vor der Hauptschleife.
    _daveReadBytes() solltest du nicht nach _daveTCPDisconnect() verwenden, um zu überprüfen, ob die Verbindung abgebaut wurde. Das klappt auch so!
    _DaveDeinit() wird automatisch beim beenden des Skriptes aufgerufen, das brauchst du nicht expizit zu machen.
    Ich würde das ganze Skript auf den Event-Modus umbauen, da es damit übersichtlicher wird.
    Vielleicht kann die Logo nur eine Verbindung über TCP aufbauen, und da du nicht abfragst ob die Verbindung überhaupt aufgebaut werden konnte, wird das Skript wahrscheinlich crashen.


    Genauer habe ich nicht geschaut und testen kann ich auch nicht.

    mfg
    funkey

  • Taskleisten Tab ausblenden. ($ws_ex_toolwindow)

    • funkey
    • 23. September 2013 um 10:04

    Hier die Lösung mit ObjCreateInterface (abgeändertes Beispiel aus der Hilfe)

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    Opt('WinTitleMatchMode', 2)

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

    Global Const $sCLSID_TaskbarList = "{56FDF344-FD6D-11D0-958A-006097C9A090}"
    Global Const $sIID_ITaskbarList = "{56FDF342-FD6D-11D0-958A-006097C9A090}"
    Global Const $sTagITaskbarList = "HrInit hresult(); AddTab hresult(hwnd); DeleteTab hresult(hwnd); ActivateTab hresult(hwnd); SetActiveAlt hresult(hwnd);"

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

    Global $oTaskbarList = ObjCreateInterface($sCLSID_TaskbarList, $sIID_ITaskbarList, $sTagITaskbarList)

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

    $oTaskbarList.HrInit()

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

    Run('Au3Info.exe')
    Global $hAutoItInfo = WinWait('AutoIt v3 Window Info')
    ConsoleWrite("Hide Taskbar" & @LF)
    $oTaskbarList.DeleteTab($hAutoItInfo)
    Sleep(3000)
    ConsoleWrite("Show Taskbar" & @LF)
    $oTaskbarList.AddTab($hAutoItInfo)

    [/autoit]
  • TGA Bilder in AutoIt verwenden und anzeigen

    • funkey
    • 9. September 2013 um 20:27

    Ich schaue es mir mal an wenn ich mal mehr Zeit hab, versprechen kann ich nichts.

  • TGA Bilder in AutoIt verwenden und anzeigen

    • funkey
    • 6. September 2013 um 20:17

    Hallo,
    hab das mal für das englische Forum gebastelt, wollte es aber euch hier auch nicht vorenthalten. Falls jemand mit TGA-Bildern und AutoIt arbeiten will, kann er diese UDF verwenden. Es gibt eine AutoIt-Version und eine 32Bit-Dll-Version wegen der Geschwindigkeit.
    Vielleicht kann es ja mal jemand brauchen.

    Schöne Grüße
    funkey

    Dateien

    TGA.rar 108,05 kB – 822 Downloads
  • Controlgettext("") von unbekanntem aber fokussiertem control herausfinden

    • funkey
    • 30. August 2013 um 17:44

    Oder die Gruppe mit ControlHide verstecken und es dann mit dem Info-Tool noch einmal versuchen.

  • Bluetooth Verbindung mit AutoIt herstellen?

    • funkey
    • 26. August 2013 um 19:27

    Hier ein Beispiel zum Finden von Bluetooh Geräten von MKISH aus dem engl. Forum: http://www.autoitscript.com/forum/topic/14…u/#entry1004593

  • Passwort aus .ini lesen

    • funkey
    • 23. August 2013 um 23:06
    Zitat von inventor

    Oscar
    1. das passwort ist doch verschlüsselt in der .ini, oder hab ich was überlesen?
    2. welchen Sinn hat es, Programm und ini zu trennen? wenn er die Makros verwendet und die relativen Pfade stimmen, ist es doch egal, wo das Programm und die ini liegen


    Ich bin zwar nicht Oscar, aber ich kann das auch beantworten:
    Zu Punkt 1: Das Passwort ist zwar verschlüsselt, aber es kann mit dem Schlüssel wiederhergestellt werden. Wenn man aber nicht das verschlüsselte Passwort, sondern den Hashwert davon abspeichert, dann kann das Passwort nicht mehr hergestellt werden. Man muss dann das eingegebene Passwort auch hashen und dann die Hashwerte vergleichen.

    Zu Punkt 2: Das hat dann einen Sinn, wenn das Programm z.B. in C:\Programme liegt und man keine Schreibrechte auf diesen Ordner hat. Dann würde es nicht funktionieren. Um dies zu umgehen, verwendet man einen Programmordner im AppData-Bereich. Darum heißt der Ordner ja auch so. Wenn das Programm auf dem Desktop oder in den Eigenen Dateien liegt, dann spielt das keine Rolle. Will man das Programm aber weitergeben, ist diese Lösung die sicherste Variante.

  • Windows Standardschrift auslesen

    • funkey
    • 19. August 2013 um 21:42

    Hab das Skript mal umgeschrieben, damit es übersichtlicher wird und die Font-Höhe passend ausgegeben wird.
    BTW: Die Funktion SystemParametersInfo() muss ich in Zukunft öfter verwenden, damit kann man sehr viel anstellen!

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>

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

    Global Const $tagNONCLIENTMETRICS = "UINT cbSize;int iBorderWidth;int iScrollWidth;int iScrollHeight;int iCaptionWidth;" & _
    "int iCaptionHeight;byte lfCaptionFont[92];int iSmCaptionWidth;int iSmCaptionHeight;byte lfSmCaptionFont[92];int iMenuWidth;" & _
    "int iMenuHeight;byte lfMenuFont[92];byte lfStatusFont[92];byte lfMessageFont[92];int iPaddedBorderWidth"

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

    Global Const $SPI_GETNONCLIENTMETRICS = 0x0029

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

    Global $tCaptionFont, $tSmCaptionFont, $tMenuFont, $tStatusFont, $tMessageFont
    Global $tNonClientMetrics = DllStructCreate($tagNONCLIENTMETRICS)
    Global $iDllStructSize = DllStructGetSize($tNonClientMetrics)
    If @OSVersion < 0x0600 Then $iDllStructSize -= 4

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

    DllStructSetData($tNonClientMetrics, "cbSize", $iDllStructSize)

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

    If _WinAPI_SystemParametersInfo($SPI_GETNONCLIENTMETRICS, $iDllStructSize, DllStructGetPtr($tNonClientMetrics)) Then
    $tCaptionFont = DllStructCreate($tagLOGFONT, DllStructGetPtr($tNonClientMetrics, "lfCaptionFont"))
    $tSmCaptionFont = DllStructCreate($tagLOGFONT, DllStructGetPtr($tNonClientMetrics, "lfSmCaptionFont"))
    $tMenuFont = DllStructCreate($tagLOGFONT, DllStructGetPtr($tNonClientMetrics, "lfMenuFont"))
    $tStatusFont = DllStructCreate($tagLOGFONT, DllStructGetPtr($tNonClientMetrics, "lfStatusFont"))
    $tMessageFont = DllStructCreate($tagLOGFONT, DllStructGetPtr($tNonClientMetrics, "lfMessageFont"))

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

    ConsoleWrite("CaptionFont:"& @TAB & _GetFontInfo($tCaptionFont, 1) & " / " & _GetFontInfo($tCaptionFont, 2) & " / " & _GetFontInfo($tCaptionFont, 3) & @LF)
    ConsoleWrite("SmCaptionFont:"& @TAB & _GetFontInfo($tSmCaptionFont, 1) & " / " & _GetFontInfo($tSmCaptionFont, 2) & " / " & _GetFontInfo($tSmCaptionFont, 3) & @LF)
    ConsoleWrite("MenuFont:"& @TAB & _GetFontInfo($tMenuFont, 1) & " / " & _GetFontInfo($tMenuFont, 2) & " / " & _GetFontInfo($tMenuFont, 3) & @LF)
    ConsoleWrite("StatusFont:"& @TAB & _GetFontInfo($tStatusFont, 1) & " / " & _GetFontInfo($tStatusFont, 2) & " / " & _GetFontInfo($tStatusFont, 3) & @LF)
    ConsoleWrite("MessageFont:"& @TAB & _GetFontInfo($tMessageFont, 1) & " / " & _GetFontInfo($tMessageFont, 2) & " / " & _GetFontInfo($tMessageFont, 3) & @LF)
    EndIf

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

    Func _GetFontInfo($tLogFont, $iRet = 0)
    If $iRet < 0 Or $iRet > 3 Then Return SetError(1, 0, 0)
    Local Const $LOGPIXELSY = 90
    Local $aFontInfo[3]
    $aFontInfo[0] = DllStructGetData($tLogFont, "FaceName")
    $aFontInfo[1] = Round(-DllStructGetData($tLogFont, "Height") * 72 / _WinAPI_GetDeviceCaps(_WinAPI_GetDC(0), $LOGPIXELSY), 1)
    $aFontInfo[2] = DllStructGetData($tLogFont, "Weight")
    If $iRet = 0 Then
    Return $aFontInfo
    Else
    Return $aFontInfo[$iRet - 1]
    EndIf
    EndFunc ;==>_GetFontInfo

    [/autoit]
  • Windows Standardschrift auslesen

    • funkey
    • 19. August 2013 um 19:21

    Die 12 glaub ich muss man mit 0.75 multiplizieren (Dots per inch und points per inch Berechnung so irgendwie), dann kommt 9 raus.

  • Windows Standardschrift auslesen

    • funkey
    • 19. August 2013 um 18:43
    Spoiler anzeigen
    [autoit]

    #cs
    typedef struct tagNONCLIENTMETRICS {
    UINT cbSize;
    int iBorderWidth;
    int iScrollWidth;
    int iScrollHeight;
    int iCaptionWidth;
    int iCaptionHeight;
    LOGFONT lfCaptionFont;
    int iSmCaptionWidth;
    int iSmCaptionHeight;
    LOGFONT lfSmCaptionFont;
    int iMenuWidth;
    int iMenuHeight;
    LOGFONT lfMenuFont;
    LOGFONT lfStatusFont;
    LOGFONT lfMessageFont;
    #if (WINVER >= 0x0600)
    int iPaddedBorderWidth;
    #endif
    } NONCLIENTMETRICS,
    *LPNONCLIENTMETRICS;

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

    typedef struct tagLOGFONT {
    LONG lfHeight;
    LONG lfWidth;
    LONG lfEscapement;
    LONG lfOrientation;
    LONG lfWeight;
    BYTE lfItalic;
    BYTE lfUnderline;
    BYTE lfStrikeOut;
    BYTE lfCharSet;
    BYTE lfOutPrecision;
    BYTE lfClipPrecision;
    BYTE lfQuality;
    BYTE lfPitchAndFamily;
    TCHAR lfFaceName[LF_FACESIZE];
    } LOGFONT, *PLOGFONT;
    #ce

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

    $nonclientmetrics = DllStructCreate("uint;int;int;int;int;int;byte[60];int;int;byte[60];int;int;byte[60];byte[60];byte[60]")
    DllStructSetData($nonclientmetrics, 1, DllStructGetSize($nonclientmetrics))

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

    Global Const $SPI_GETNONCLIENTMETRICS = 41

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

    $a = DllCall("user32.dll", "int", "SystemParametersInfo", "int", 41, "int", DllStructGetSize($nonclientmetrics), "ptr", DllStructGetPtr($nonclientmetrics), "int", 0)
    $b = DllCall("kernel32.dll", "int", "GetLastError")

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

    ;~ MsgBox(4096, "SystemParametersInfo", "Last error: " & $b[0] & @CRLF& "SystemParametersInfo return value: " & $a[0])

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

    $logfont1 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 7))
    $logfont2 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 10))
    $logfont3 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 13))
    $logfont4 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 14))
    $logfont5 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 15))

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

    MsgBox(4096, "Fonts", "CaptionFont: " & DllStructGetData($logfont1, 14) & " - " & - DllStructGetData($logfont1, 1) & " - " & DllStructGetData($logfont1, 5) & @LF & _
    "SmCaptionWidth: " & DllStructGetData($logfont2, 14) & " - " & - DllStructGetData($logfont2, 1) & " - " & DllStructGetData($logfont2, 5) & @LF & _
    "MenuFont: " & DllStructGetData($logfont3, 14) & " - " & - DllStructGetData($logfont3, 1) & " - " & DllStructGetData($logfont3, 5) & @LF & _
    "StatusFont: " & DllStructGetData($logfont4, 14) & " - " & - DllStructGetData($logfont4, 1) & " - " & DllStructGetData($logfont4, 5) & @LF & _
    "MessageFont: " & DllStructGetData($logfont5, 14) & " - " & - DllStructGetData($logfont5, 1) & " - " & DllStructGetData($logfont5, 5))

    [/autoit]
  • Alles Gute blubbstar

    • funkey
    • 17. August 2013 um 14:23

    Hallo blubbstar!
    Ich wünsche dir alles Gute zu deinem 22. Geburtstag! Bleib Gesund und feier schön! Samstag ist dafür ideal ;)

  • GetIpAddrTable

    • funkey
    • 17. August 2013 um 14:17

    Hallo, da ich die Funktion GetIpAddrTable brauchte, und im englischen Forum nur ein nicht mehr funktionierendes Beispiel aus dem Jahre 2006 zu finden war (hier), habe ich nun die Funktion neu geschrieben. Ich hoffe, das es jemand brauchen kann.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    Global $aIpTable = _GetIpAddrTable()
    _ArrayDisplay($aIpTable)

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

    Func _GetIpAddrTable($bOrder = 0)
    ;funkey 2013, Aug 17th
    Local Const $tagMIB_IPADDRROW = "STRUCT;DWORD dwAddr;DWORD dwIndex;DWORD dwMask;DWORD dwBCastAddr;DWORD dwReasmSize;USHORT unused1;USHORT wType;ENDSTRUCT;"
    Local Const $tagMIB_IPADDRTABLE = "DWORD dwNumEntries;" & $tagMIB_IPADDRROW

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

    Local Const $MIB_IPADDR_PRIMARY = 0x0001
    Local Const $MIB_IPADDR_DYNAMIC = 0x0004
    Local Const $MIB_IPADDR_DISCONNECTED = 0x0008
    Local Const $MIB_IPADDR_DELETED = 0x0040
    Local Const $MIB_IPADDR_TRANSIENT = 0x0080

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

    Local $aRet, $dwSize, $dwNumEntries, $tMIB_IPADDRTABLE, $tagTemp = $tagMIB_IPADDRTABLE
    Local $iIpAddrRowSize = 24, $iSize = 28, $aTemp, $iTemp

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

    $aRet = DllCall("iphlpapi.dll", "int", "GetIpAddrTable", "ptr", 0, "DWORD*", 0, "BOOL", $bOrder)
    $dwSize = $aRet[2]
    While $iSize < $dwSize
    $tagTemp &= $tagMIB_IPADDRROW
    $iSize += $iIpAddrRowSize
    WEnd

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

    $tMIB_IPADDRTABLE = DllStructCreate($tagTemp)

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

    $aRet = DllCall("iphlpapi.dll", "int", "GetIpAddrTable", "struct*", $tMIB_IPADDRTABLE, "DWORD*", $dwSize, "BOOL", $bOrder)
    If $aRet[0] <> 0 Then Return SetError(1, 0, 0)

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

    $dwNumEntries = DllStructGetData($tMIB_IPADDRTABLE, "dwNumEntries")

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

    Local $aData[$dwNumEntries + 1][6] = [["Interface Index", "IP Address", "Subnet Mask", "Broadcast", "Reassembly size", "Type and State"]]
    For $i = 1 To $dwNumEntries
    $aData[$i][0] = DllStructGetData($tMIB_IPADDRTABLE, ($i - 1) * 7 + 3)
    $aTemp = DllCall("ws2_32.dll", "str", "inet_ntoa", "ptr", DllStructGetData($tMIB_IPADDRTABLE, ($i - 1) * 7 + 2))
    $aData[$i][1] = $aTemp[0]
    $aTemp = DllCall("ws2_32.dll", "str", "inet_ntoa", "ptr", DllStructGetData($tMIB_IPADDRTABLE, ($i - 1) * 7 + 4))
    $aData[$i][2] = $aTemp[0]
    $aTemp = DllCall("ws2_32.dll", "str", "inet_ntoa", "ptr", DllStructGetData($tMIB_IPADDRTABLE, ($i - 1) * 7 + 5))
    $aData[$i][3] = $aTemp[0]
    $aData[$i][4] = DllStructGetData($tMIB_IPADDRTABLE, ($i - 1) * 7 + 6)
    $iTemp = DllStructGetData($tMIB_IPADDRTABLE, ($i - 1) * 7 + 8)
    If BitAND($iTemp, $MIB_IPADDR_PRIMARY) Then $aData[$i][5] &= "Primary IP Address;"
    If BitAND($iTemp, $MIB_IPADDR_DYNAMIC) Then $aData[$i][5] &= "Dynamic IP Address;"
    If BitAND($iTemp, $MIB_IPADDR_DISCONNECTED) Then $aData[$i][5] &= "Address is on disconnected interface;"
    If BitAND($iTemp, $MIB_IPADDR_DELETED) Then $aData[$i][5] &= "Address is being deleted;"
    If BitAND($iTemp, $MIB_IPADDR_TRANSIENT) Then $aData[$i][5] &= "Transient address;"
    $aData[$i][5] = StringTrimRight($aData[$i][5], 1)
    Next

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

    Return $aData
    EndFunc ;==>_GetIpAddrTable

    [/autoit]


    Schöne Grüße
    funkey

  • CommMG funktioniert überhaupt nicht

    • funkey
    • 17. August 2013 um 14:06

    Liegt die DLL auch im Skriptverzeichnis?
    Und hier ist der Original-Thread, wo man auch fragen stellen kann, wenn man Probleme hat: http://www.autoitscript.com/forum/topic/12…df/#entry341916
    Ich habe diese UDF auch mal benutzt, ging einwandfrei.

  • Input Box abbrechen

    • funkey
    • 14. August 2013 um 12:17

    Eventuell gefällt dir das: _MultiInput (InputBox mit einer variablen Anzahl an Eingabe-Feldern) V3.0

  • C++ Dll & Autoit

    • funkey
    • 12. August 2013 um 12:32

    Wird die Funktion auch genau mit dem Namen 'add' exportiert? Schau mal mit dem DLLExplorer oder Dependency-Walker nach. Ansonsten sollte es wohl passen. Hab jetzt allerdings nichts downgeloaded. 1,29MB für eine DLL die nur eine add-Funktion und eine AutoIt-Skript enthält ist recht groß ;)

  • Escape | in #AutoIt3Wrapper_Run_Before=echo 123|456

    • funkey
    • 12. August 2013 um 11:40

    Man kann ja auch nicht ohne Fehler 'echo 123|456' in die Console eingeben! Das |-Zeichen dient als Pipe und es wird versucht das Programm 456 auszuführen.
    Aber 'echo "123|456"' funktioniert in der Konsole.

  • Dos Subst - Verzeichnis als Laufwerksbuchstabe

    • funkey
    • 5. August 2013 um 13:32

    _WinAPI_DefineDosDevice() aus der WinAPIEx-UDF sollte auch funktionieren. Getestet habe ich das aber noch nicht.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™