Wahnsinnig toll!
Einfach nur spitze! Ich hätte auch nichts gegen ein paar mehr Lieder von dir!
Vielen Dank, dass du uns das gezeigt hast, ich bin echt beeindruckt.
Beiträge von funkey
-
-
[autoit]
GUICtrlSetState($CtrlID, $GUI_FOCUS)
[/autoit] -
[autoit]
run ("notepad.exe")
[/autoit][autoit][/autoit][autoit]
WinWait("[CLASS:Notepad]")
WinActivate("[CLASS:Notepad]")
WinWaitActive("[CLASS:Notepad]")Send (_GenName())
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func _GenName()
[/autoit]
Local $pers = FileReadLine("name.txt", Random(1,8310,1))
Local $len = StringLen($pers)
Return $pers & StringFormat("%00" & 13 - $len & "i", Random(0, 10^(13 - $len) - 1, 1))
EndFunc -
-
Ergänzend dazu habe ich auch noch die Funktion '_IsCheckBox' geschrieben, um Buttons und CheckBoxen zu unterscheiden.
Spoiler anzeigen
[autoit]Func _IsCheckbox($hCtrl)
[/autoit]
;funkey
If Not IsHWnd($hCtrl) Then $hCtrl = GUICtrlGetHandle($hCtrl)
Local $aResult = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $hCtrl, "wstr", "", "int", 4096)
If $aResult[2] <> "Button" Then Return 0
Local $sFuncName = "GetWindowLongW"
If @AutoItX64 Then $sFuncName = "GetWindowLongPtrW"
$aResult = DllCall("user32.dll", "long_ptr", $sFuncName, "hwnd", $hCtrl, "int", 0xFFFFFFF0)
If BitAND($aResult[0], 0x3) = 0x3 Then Return 1
Return 0
EndFunc -
Ich weiß nicht, ob ich das richtig verstanden habe.
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <GuiRichEdit.au3>$hGui = GUICreate("Test", 300, 200, 400, 200)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("Text:", 10, 10, 50, 17)
;~ $Input = GUICtrlCreateInput("", 10, 30, 250, 20)
$Input = _GUICtrlRichEdit_Create($hGui, "", 10, 30, 250, 20)
GUICtrlCreateLabel("Buchstabe:", 10, 60, 60, 17)
$Input2 = GUICtrlCreateInput("", 10, 80, 250, 20)
GUICtrlSetLimit(-1, 1)
$Button = GUICtrlCreateButton("Ok", 100, 150, 100, 25)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
_GUICtrlRichEdit_Destroy($Input)
Exit
Case $Button
$pos = StringInStr(_GUICtrlRichEdit_GetText($Input), GUICtrlRead($Input2))
_GuiCtrlRichEdit_SetSel($Input, $pos - 1, $pos)
_GUICtrlRichEdit_SetCharColor($Input, 0xff)
_GuiCtrlRichEdit_SetSel($Input, $pos - 1, $pos, True)
EndSwitch
WEnd -
Hallo, hab mal wieder eine kleine Funktion geschrieben:
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Local $a = _WLAN_GetInfo()
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($a)Func _WLAN_GetInfo()
[/autoit]
If @OSBuild < 5600 Then Return SetError(1) ;works only on Vista and above
Local $iPID = Run(@ComSpec & " /c " & "netsh wlan show networks mode=bssid", "", @SW_HIDE, 0x2)
Local $sLine
While 1
$sLine &= StdoutRead($iPID)
If @error Then ExitLoop
WEnd
$sLine = DllCall('user32.dll', 'Int', 'OemToChar', 'str', $sLine, 'str', '')
$sLine = $sLine[2]
Local $aTemp, $aTemp2, $aTemp3
$aTemp = StringSplit($sLine, @CRLF & @CRLF, 1)
Local $aWiFi[$aTemp[0] - 1][10]
For $i = 2 To $aTemp[0] - 1
$aTemp2 = StringSplit($aTemp[$i], @CRLF, 1)
For $j = 1 To $aTemp2[0]
$aTemp3 = StringSplit(StringStripWS($aTemp2[$j], 7), " : ", 3)
$aWiFi[$i - 1][$j - 1] = $aTemp3[1]
$aWiFi[0][$j - 1] = $aTemp3[0]
Next
Next
$aWiFi[0][0] = "SSID"
Return $aWiFi
EndFunc ;==>_WiFi_GetInfoKönntet Ihr die Funktion bitte auch auf Win7 testen, damit ich weiß, ob sie da auch funktioniert? Vllt auch auf einem englischen System, falls jemand eines hat. Danke.
-
Hallo Lina, Alles Gute!!

-
Grüezi Storyteller.
-
[autoit]
run ("mspaint.exe " & $pfad)
[/autoit]
Ein Leerzeichen nach dem Programmnamen ist wichtig! -
Auch von mir nachträglich noch Happy Birthday!!!

-
Auch von mir ein herzliches Willkommen hier im AutoIt-Forum.
-
Hallo Leute,
ich habe im Internet eine DLL-Datei gefunden, mit deren Hilfe ich Daten aus einer Siemens SPS auslesen kann.
3 Funktionen konnte ich übersetzen, aber bei den wichtigen Funktionen hänge ich. Vielleicht könnte mir ein ein Profi auf dem Gebiet mal unter die Arme greifen?Die DLL heißt libnodave.dll
Bereits funktionierende Funktionen:
_openSocket
_closeSocket
_daveStrerrorNoch mind. erforderliche Funktionen:
_daveNewInterface <-- wenn diese Funktion geht, dann dürfte der Rest kein Problem mehr sein. Hier ist das Problem die Struktur, die übergeben weden muss.
_daveReadSZL <-- Erster Versuch etwas auszulesenIch hoffe es kann mir jemand helfen. Vielen herzlichen Dank im Voraus!!
-
[autoit]
MsgBox(0,"", "Zahl: " & $var)
[/autoit] -
Spoiler anzeigen
[autoit]Global $var = InputBox("Zahl eingeben", "Zahl eingeben")
[/autoit] [autoit][/autoit] [autoit]
If Not StringIsInt($var) Or @error Then ExitHotKeySet("{Esc}", "_Ende")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{UP}", "_UP")
HotKeySet("{DOWN}", "_DOWN")
HotKeySet("q", "_Show")While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(10000)
WEndFunc _UP()
[/autoit] [autoit][/autoit] [autoit]
$var += 1
EndFuncFunc _DOWN()
[/autoit] [autoit][/autoit] [autoit]
$var -= 1
EndFuncFunc _Show()
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0,"", $var)
EndFuncFunc _Ende()
[/autoit]
Exit
EndFunc -
Hab mal schnell was gebastelt, nur kann ich leider Win32 und Win64 nicht unterscheiden.
[autoit]ConsoleWrite(_IsWin32(@SystemDir & "\cmd.exe") & @CR)
[/autoit][autoit][/autoit][autoit]
ConsoleWrite(_IsWin32(@WindowsDir & "\twunk_32.exe") & @CR)
ConsoleWrite(_IsWin32(@WindowsDir & "\twunk_16.exe") & @CR)Func _IsWin32($sExePath)
[/autoit]
Local $hFile = FileOpen($sExePath, 0)
Local $sFile = FileRead($hFile, 117)
FileClose($hFile)
$sFile = StringTrimLeft($sFile, 78)
;~ ConsoleWrite($sFile & @CR)
If $sFile = "This program cannot be run in DOS mode." Then Return 1 ;Win32 and Win64
If $sFile = "This program requires Microsoft Windows" Then Return 0 ;Win16
EndFunc -
Für einen USB-Stick funktioniert das im einfachsten Falle so:
Spoiler anzeigen
[autoit]_FormatDisk("f")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _FormatDisk($RDrive)
[/autoit]
Local $iPID = Run(@ComSpec & " /k " & "format " & $RDrive & ": /FS:FAT32 /v:" & DriveGetLabel($RDrive & ":\") & " /y", "", @SW_HIDE, 0x2)
Local $sLine
ProgressOn("Formatieren", "Laufwerk " & $RDrive & ": wird formatiert", "Bitte warten")
While 1
$sLine = StdoutRead($iPID)
If @error Then ExitLoop
If StringInStr($sLine, "Prozent") Then
ProgressSet(StringTrimRight($sLine, 20))
EndIf
Wend
ProgressOff()
EndFunc -
So geht's bei mir:
[autoit]_FormatDisk("f")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func _FormatDisk($RDrive)
[/autoit]
Local $RDriveLabel = DriveGetLabel($RDrive & ":\")
Run(@ComSpec & " /c " & "format " & $RDrive & ": /FS:FAT32 /q /v:" & $RDriveLabel & " /y", "", @SW_HIDE)
EndFunc -
Danke, dass ihr die Funktion für nützlich haltet.
Einzelne Labels hintereinander zu platzieren kann ja oft ziemlich nerven. -
Hallo,
hab hier irgendwo gelesen, dass jemand auf einfache Weise Labels erzeugen wollte, die unterstrichene Wörter enthalten. Hier ist mein Lösungsvorschlag:
Spoiler anzeigen
[autoit]GUICreate('Teilweise unterstrichene Labels', 700, 520)
[/autoit] [autoit][/autoit] [autoit]_GuiCtrlCreateLabel_UnderlineWords("Manche Wörter sind unterstrichen, andere aber nicht!", 10, 10, "3;6", 20)
[/autoit] [autoit][/autoit] [autoit]
_GuiCtrlCreateLabel_UnderlineWords("Manche Wörter sind unterstrichen, andere aber nicht!", 10, 50, "3;6", 10)
_GuiCtrlCreateLabel_UnderlineWords("Manche Wörter sind unterstrichen, andere aber nicht!", 10, 80, "3;6", 18)_GuiCtrlCreateLabel_UnderlineWords("Manche Wörter sind unterstrichen, andere aber nicht!", 10, 120, "3;6", 20, "Courier")
[/autoit] [autoit][/autoit] [autoit]
_GuiCtrlCreateLabel_UnderlineWords("Manche Wörter sind unterstrichen, andere aber nicht!", 10, 150, "3;6", 10, "Courier")
_GuiCtrlCreateLabel_UnderlineWords("Manche Wörter sind unterstrichen, andere aber nicht!", 10, 180, "3;6", 18, "Arial")$aLabel = _GuiCtrlCreateLabel_UnderlineWords("Text: Link", 10, 220, "1", 80, "Arial")
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetColor($aLabel[1], 0x0000ff)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetCursor($aLabel[1], 0)GUISetState()
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
Until GUIGetMsg() = -3Func _GuiCtrlCreateLabel_UnderlineWords($sText, $iPosX, $iPosY, $sIndex, $iFontSize = 8.5, $sFont = 'Microsoft Sans Serif')
[/autoit]
GUISetFont($iFontSize, 400, 0, $sFont)
Local $aIndex = StringSplit($sIndex, ";", 2)
Local $aText = StringSplit(StringStripWS($sText, 7), " ", 2)
Local $hLabel[UBound($aText)]
$hLabel[0] = GUICtrlCreateLabel($aText[0], $iPosX, $iPosY)
Local $hGui = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", GUICtrlGetHandle(-1))
$hGui = $hGui[0]
Local $aPos
For $i = 1 To UBound($aText) -1
$aPos = ControlGetPos($hGui, "", GUICtrlGetHandle(-1))
$hLabel[$i] = GUICtrlCreateLabel($aText[$i], $iPosX + $aPos[0] + $aPos[2] - 15 + Ceiling($iFontSize / 3), $iPosY)
Next
For $i = 0 To UBound($aIndex) -1
GUICtrlSetFont($hLabel[$aIndex[$i]], Default, Default, 4)
Next
Return $hLabel
EndFuncDer Lösungsansatz könnte auch für andere Attribute einer Schriftart verwendet werden, z.B. kursiv schreiben, oder so.
Hoffe es kann jemand mal brauchen.Gruß funkey