[Thread nach H&U verschoben]
Beiträge von Oscar
-
-
Der Fehler liegt darin, dass funkey den OnEvent- und den MessageLoop-Modus verwendet. Das führt zu der hohen Auslastung.
Ist behoben! -
Statt die ganzen IPs anzupingen, könntest Du auch ein Netview machen.
Progandy hat dazu mal ein Skript gepostet: Netview in AutoIt -
Ok, es reicht!
[closed] -
Wir wollen hier keine Videos, sondern das Skript sehen.
Das ist jetzt Deine allerletzte Chance, ansonsten wird das hier geclosed! -
Was soll das hier werden?
Dein Skript ist völlig fehlerhaft! Punkt! Das ist Fakt!
Wenn Du bei Dir irgendwelche Standard-Includes verändert hast, damit das funktioniert (Vermutung), dann ist das Dein Problem. So kann Dir jedenfalls niemand helfen.
-
Für MP3s habe ich noch was besseres geschrieben: MP3-Searcher

-
Um ein resizen unter eine bestimmte Größe zu verhindern gibt es $WM_GETMINMAXINFO:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=test_resize.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 1024, 768, 192, 145, $WS_SIZEBOX + $WS_SYSMENU + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX)GUICtrlCreateGroup("", 10, 70, 500, 665)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
$List1 = GUICtrlCreateList("", 16, 80, 490, 573)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
$Combo1 = GUICtrlCreateCombo("Combo1", 24, 660, 81, 25)
GUICtrlSetResizing($Combo1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
$Button1 = GUICtrlCreateButton("Button1", 136, 660, 49, 25)
GUICtrlSetResizing($Button1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
GUICtrlCreateGroup("", -99, -99, 1, 1)GUICtrlCreateGroup("", 514, 70, 500, 665)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER);$GUI_DOCKRIGHT)
$List2 = GUICtrlCreateList("", 519, 80, 490, 573)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER);$GUI_DOCKRIGHT)
$Combo2 = GUICtrlCreateCombo("Combo1", 542, 660, 81, 25)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER)
$Button2 = GUICtrlCreateButton("Button1", 666, 660, 49, 25)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER)
GUICtrlCreateGroup("", -99, -99, 1, 1)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
#EndRegion ### END Koda GUI section ###
GUIRegisterMsg($WM_GETMINMAXINFO, '_WM_GETMINMAXINFO')While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
[/autoit]
Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
Switch $hWnd
Case $Form1
DllStructSetData($minmaxinfo, 7, 1038) ; min X
DllStructSetData($minmaxinfo, 8, 782) ; min Y
EndSwitch
EndFunc ;==>_WM_GETMINMAXINFO -
Was soll das schon wieder? Pushen nach einer Stunde?
Sowas wird hier nicht gern gesehen und führt bei vielen User dazu Dich jetzt erst recht "schmoren" zu lassen. -
Klasse! Herzlichen Glückwunsch!

Und, ja, ich bin auch stolz auf Dich!

-
stayawayknight: Das sollte dann ein Fehler bei Dir sein.
Bei mir mit Win7, 64 Bit funktioniert das Skript einwandfrei (auch Transparenz).

-
Dann so:
Spoiler anzeigen
[autoit]
[/autoit]
$sData_h = FileRead(@ScriptDir & '\test.h')
$aOut_h = StringRegExp($sData_h, '(?:\A|\r\n)#define\s+(\S+?)\s+(\d+),.+/\*(.+),(.+),.+/', 3)
$sData_c = FileRead(@ScriptDir & '\test.c')
$aOut_c = StringRegExp($sData_c, '.+\((.+?),\s*(\d+)\);', 3)
If IsArray($aOut_h) Then
$hFile = FileOpen(@ScriptDir & '\test_out.csv', 2)
If $hFile <> -1 Then
FileWriteLine($hFile, 'Adresse; Bezeichnung; Faktor; Einheit; akt. Wert; Wert1; Wert2; Wert3')
For $i = 0 To UBound($aOut_h) - 1 Step 4
$sTmp = ''
For $j = 0 To UBound($aOut_c) - 1 Step 2
If $aOut_c[$j] = $aOut_h[$i] Then
$sTmp = ';' & $aOut_c[$j + 1]
ExitLoop
EndIf
Next
FileWriteLine($hFile, $aOut_h[$i + 1] & ';' & $aOut_h[$i] & ';' & StringReplace($aOut_h[$i + 2], '.', ',') & ';' & $aOut_h[$i + 3] & $sTmp)
Next
FileClose($hFile)
EndIf
EndIf -
Ist schnell gemacht:
Spoiler anzeigen
[autoit]
[/autoit]
$sData_h = FileRead(@ScriptDir & '\test.h')
$aOut_h = StringRegExp($sData_h, '(?:\A|\r\n)#define\s+(\S+?)\s+(\d+),.+/\*(.+),(.+),.+/', 3)
$sData_c = FileRead(@ScriptDir & '\test.c')
$aOut_c = StringRegExp($sData_c, '.+\((.+?, \d+)\);', 3)
If IsArray($aOut_h) Then
$hFile = FileOpen(@ScriptDir & '\test_out.csv', 2)
If $hFile <> -1 Then
FileWriteLine($hFile, 'Adresse; Bezeichnung; Faktor; Einheit; akt. Wert; Wert1; Wert2; Wert3')
For $i = 0 To UBound($aOut_h) - 1 Step 4
$sTmp = ''
For $j = 0 To UBound($aOut_c) - 1
If StringInStr($aOut_c[$j], $aOut_h[$i]) Then
$sTmp = ';' & StringMid($aOut_c[$j], StringInStr($aOut_c[$j], ', ') + 2)
ExitLoop
EndIf
Next
FileWriteLine($hFile, $aOut_h[$i + 1] & ';' & $aOut_h[$i] & ';' & StringReplace($aOut_h[$i + 2], '.', ',') & ';' & $aOut_h[$i + 3] & $sTmp)
Next
FileClose($hFile)
EndIf
EndIfWenn das Problem gelöst ist, kannst Du Deinen ersten Post bearbeiten und den Präfix von "offen" auf "gelöst" ändern.
-
So, jetzt aber:
Spoiler anzeigen
[autoit]
[/autoit]
$sData_h = FileRead(@ScriptDir & '\test.h')
$aOut_h = StringRegExp($sData_h, '(?:\A|\r\n)#define\s+(\S+?)\s+(\d+),.+/\*(.+),(.+),.+/', 3)
$sData_c = FileRead(@ScriptDir & '\test.c')
$aOut_c = StringRegExp($sData_c, '.+\((.+?, \d+)\);', 3)
If IsArray($aOut_h) Then
$hFile = FileOpen(@ScriptDir & '\test_out.csv', 2)
If $hFile <> -1 Then
FileWriteLine($hFile, 'Adresse; Bezeichnung; Faktor; Einheit; akt. Wert; Wert1; Wert2; Wert3')
For $i = 0 To UBound($aOut_h) - 1 Step 4
$sTmp = ''
For $j = 0 To UBound($aOut_c) - 1
If StringInStr($aOut_c[$j], $aOut_h[$i]) Then
$sTmp = ';' & StringMid($aOut_c[$j], StringInStr($aOut_c[$j], ', ') + 2)
ExitLoop
EndIf
Next
FileWriteLine($hFile, $aOut_h[$i + 1] & ';' & $aOut_h[$i] & ';' & $aOut_h[$i + 2] & ';' & $aOut_h[$i + 3] & $sTmp)
Next
FileClose($hFile)
EndIf
EndIf -
Kleine Änderung am RegExp-Pattern:
Spoiler anzeigen
[autoit]
[/autoit]
$sData_h = FileRead(@ScriptDir & '\test.h')
$aOut_h = StringRegExp($sData_h, '(?:[^//]|\A)#define\s+(\S+?)\s+(\d+),.+/\*(.+),(.+),.+/', 3)
$sData_c = FileRead(@ScriptDir & '\test.c')
$aOut_c = StringRegExp($sData_c, '.+\((.+?, \d+)\);', 3)
If IsArray($aOut_h) Then
$hFile = FileOpen(@ScriptDir & '\test_out.csv', 2)
If $hFile <> -1 Then
FileWriteLine($hFile, 'Adresse; Bezeichnung; Faktor; Einheit; akt. Wert; Wert1; Wert2; Wert3')
For $i = 0 To UBound($aOut_h) - 1 Step 4
$sTmp = ''
For $j = 0 To UBound($aOut_c) - 1
If StringInStr($aOut_c[$j], $aOut_h[$i]) Then
$sTmp = ';' & StringMid($aOut_c[$j], StringInStr($aOut_c[$j], ', ') + 2)
ExitLoop
EndIf
Next
FileWriteLine($hFile, $aOut_h[$i + 1] & ';' & $aOut_h[$i] & ';' & $aOut_h[$i + 2] & ';' & $aOut_h[$i + 3] & $sTmp)
Next
FileClose($hFile)
EndIf
EndIf -
Dann sind die anderen 2% irgendwie anders formatiert. Vielleicht kannst Du die mal posten?
Für die zusätzliche Zeile einfach beim erstellen der Datei einfügen lassen:
Spoiler anzeigen
[autoit]
[/autoit]
$sData_h = FileRead(@ScriptDir & '\test.h')
$aOut_h = StringRegExp($sData_h, '#define\s+(\S+?)\s+(\d+),.+/\*(.+),(.+),.+/', 3)
$sData_c = FileRead(@ScriptDir & '\test.c')
$aOut_c = StringRegExp($sData_c, '.+\((.+?, \d+)\);', 3)
If IsArray($aOut_h) Then
$hFile = FileOpen(@ScriptDir & '\test_out.csv', 2)
If $hFile <> -1 Then
FileWriteLine($hFile, 'Adresse; Bezeichnung; Faktor; Einheit; akt. Wert; Wert1; Wert2; Wert3')
For $i = 0 To UBound($aOut_h) - 1 Step 4
$sTmp = ''
For $j = 0 To UBound($aOut_c) - 1
If StringInStr($aOut_c[$j], $aOut_h[$i]) Then
$sTmp = ';' & StringMid($aOut_c[$j], StringInStr($aOut_c[$j], ', ') + 2)
ExitLoop
EndIf
Next
FileWriteLine($hFile, $aOut_h[$i + 1] & ';' & $aOut_h[$i] & ';' & $aOut_h[$i + 2] & ';' & $aOut_h[$i + 3] & $sTmp)
Next
FileClose($hFile)
EndIf
EndIf -
Ich wollte nur zu bedenken geben, dass das Script sich ja nicht zwangsläufig in einem eigenen Verzeichnis befinden muss.
Dann schrottest Du Dir evtl. Deinen Programme-Ordner oder einen anderen: "c:\windows", "c:\" oder ähnliches.
-
Du kannst mein Script ja mal probehalber mit den richtigen Dateien (test.h und test.c umbenennen) laufen lassen. Die Originaldateien werden von meinem Script nicht verändert.
Es erstellt lediglich eine neue Datei "test_out.h" im Scriptverzeichnis. -
Du löschst aber das gesamte ScriptDir und das könnte gefährlich werden, wenn das Script z.B. in "c:\programme" liegt.

-
Und hier komplett:
Spoiler anzeigen
[autoit]
[/autoit]
$sData_h = FileRead(@ScriptDir & '\test.h')
$aOut_h = StringRegExp($sData_h, '#define\s+(\S+?)\s+(\d+),.+/\*(.+),(.+),.+/', 3)
$sData_c = FileRead(@ScriptDir & '\test.c')
$aOut_c = StringRegExp($sData_c, '.+\((.+?, \d+)\);', 3)
If IsArray($aOut_h) Then
$hFile = FileOpen(@ScriptDir & '\test_out.h', 2)
If $hFile <> -1 Then
For $i = 0 To UBound($aOut_h) - 1 Step 4
$sTmp = ''
For $j = 0 To UBound($aOut_c) - 1
If StringInStr($aOut_c[$j], $aOut_h[$i]) Then
$sTmp = ';' & StringMid($aOut_c[$j], StringInStr($aOut_c[$j], ', ') + 2)
ExitLoop
EndIf
Next
FileWriteLine($hFile, $aOut_h[$i + 1] & ';' & $aOut_h[$i] & ';' & $aOut_h[$i + 2] & ';' & $aOut_h[$i + 3] & $sTmp)
Next
FileClose($hFile)
EndIf
EndIf