Ohne den Code zu sehen, ist es nicht möglich darauf zu antworten.
Ich habe auch schon häufiger mit diesen Befehlen gearbeitet aber dieses Verhalten kann ich nicht bestätigen.
Beiträge von BugFix
-
-
Stimmt, da waren die Finger schneller als der Kopf

-
-
Startwert = 65 = 0%
Endwert = 90 = 100%
==> Differenz = 35
1% = 35/100
Wert 80 = 80-65 = 15*35/100 -
Ich rate mal:
Ein rekursiver Aufruf, der sich totläuft? -
In der Funktion aber statt:
[autoit]Func _ArrayCount($array, $search, $index = 0)
[/autoit]besser:
[autoit]Func _ArrayCount(ByRef $array, $search, $index = 0)
[/autoit]
Das hat den Effekt, dass das Array nicht nochmal kopiert werden muss beim Funktionsaufruf, spart somit Speicher und Zeit. ByRef verwendet man i.A. um einen übergebenen Wert auch in der Quellvariablen verändern zu können aber der Effekt des Speicher-/Zeitsparens ist doch ganz angenehm.
-
[autoit]
$vergleich = 55
[/autoit]
$count = 0
For $i = 0 To UBound($array) -1
If $array[$i] = $vergleich Then $count += 1
Next
ConsoleWrite('Treffer: ' & $count & @CRLF) -
Ich halte es für wenig sinnvoll ein Skript mit einer Laufzeitbegrenzung zu versehen.
Das funktioniert nur, wenn du die Version mit einem hardcodierten Installationsgrenzdatum versiehst. Danach kann man die Version weder installieren noch starten.
Eine Begrenzung in der Form: "Installdatum + Testzeitraum" läßt sich doch spätestens mit einem virtuellen System einfach umgehen.
Man kann natürlich recht verwinkelte Wege gehen um das Installationsdatum zu verstecken und es so dem User zu erschweren das zu manipulieren. Aber dann sollte man darüber nicht in einem offen zugänglichen Forum diskutieren. Da könntest du auch deinen Wohnungsschlüssel verstecken und das Versteck in der Zeitung bekannt geben.
-
denn es gibt einen "Error allocating memory." Fehler aus.
Die Fehlerausgabe teilt dir auch immer mit, von welchem Skript und welcher Skriptzeile der Fehler verursacht wird.
- Ist es die UDF oder dein Skript?
- An welcher Position entsteht der Fehler?Schon mal alle Zeilen auf evtl. Fehlerausgaben geprüft?
(In SciTE kannst du über <Extras> <Trace: Add trace lines> nach jeder Skriptzeile eine Ausgabe des Fehlerwertes in die Console bewirken) -
Da kann man aber viel raten

- wieviel Parameter
- welche Datentypen
...

-
Oder gibt es eine Möglichkeit die Funktionen beliebiger DLLs herauszufinden?
Die Funktionsnamen lassen sich auslesen (Dependency Walker) aber ohne Beschreibung der Parameter kann man die Funktionen nicht anwenden.Und ja, VLC spielt auch Handy-Audio-Format (amr).

-
Ich würde besser den VLC-Player verwenden und über Kommandozeile steuern.
-
[autoit]
$PID = Run('Programm')
[/autoit]
SplashTextOn('....')
While ProcessExists($PID)
Sleep(100)
WEnd
SplashOff() -
Oder wie erkenne ich welches der aktuelle Benutzer ist?
Deswegen habe ich ja den zweiten Pfad "HKCU" hinzugefügt.
-
Das Problem entsteht m.M. nach, weil du 2 getrennte Abfragen für einen Zustand machst.
Ich habe mal etwas geändert (Änderungen markiert mit ";#############"). Probiers aus.Spoiler anzeigen
[autoit]#RequireAdmin
[/autoit] [autoit][/autoit] [autoit]
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=netskatstart.ico
#AutoIt3Wrapper_Outfile=netskatstart.exe
#AutoIt3Wrapper_Res_Comment=Codet by Gummibaer
#AutoIt3Wrapper_Res_Description=AutoRunner for Netskat
#AutoIt3Wrapper_Res_Fileversion=1.0.0.12
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p
#AutoIt3Wrapper_Res_LegalCopyright=Gummibaer
#AutoIt3Wrapper_Res_SaveSource=y
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Run_Tidy=y
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt("TrayAutoPause", 0)
Opt("TrayIconDebug", 0)
Opt("TrayIconHide", 0)
#cs ----------------------------------------------------------------------------AutoIt Version: 3.3.0.0
[/autoit] [autoit][/autoit] [autoit]
Author: myNameScript Function:
[/autoit] [autoit][/autoit] [autoit]
Template AutoIt script.#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit];[includes]
[/autoit] [autoit][/autoit] [autoit]
#include <Inet.au3>
#include <GuiTab.au3>
#include <SendMessage.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#include <File.au3>
#include <Array.au3>_Checkinstallation()
[/autoit] [autoit][/autoit] [autoit]If UBound($CmdLine) <> 4 Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "Parameter", "nicht alle Parameter beim Start von Netskatstart.exe eingegeben" & @CRLF & "Autoit wird beendet.")
;ExitEndIf
[/autoit] [autoit][/autoit] [autoit]
Global $netskat_Title = "NetSkat -"
Global $tTitle = "Turnier-Liste"
Global $sTitle = "Einstellungen für"
Global $neuTitle = "Neuen Spielernamen eingeben"
Global $spielername_bearbeiten = "Eigenen Spielernamen bearbeiten"
Global $netskatexe = "netskat.exe"
Global $spieler_neu = $CmdLine[2]
Global $mail_forts = $CmdLine[3]
;Global $NetSkatDir = _getNetSkatDir()
$NetSkatDir = "c:\Programme\Cutesoft\Netskat\";########################################################## Code so ändern erspart spätere Abfrage auf Gültigkeit
[/autoit] [autoit][/autoit] [autoit]
If Not FileExists($NetSkatDir) Then
Do
$NetSkatDir = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die Netskat.exe", "C:\Programme", 7)
Until FileExists($NetSkatDir)
;~ MsgBox(0, "pfad", $NetSkatDir & @CRLF & "existiert nicht")
;~ $NetSkatDir = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die Netskat.exe", "C:\Programme", 7)
EndIf
;~ MsgBox(0, "Pfad netskat", $NetSkatDir, 1)If Not ProcessExists($netskatexe) Then ; Wenn NetSkat nicht gestartet ist starte sie
[/autoit] [autoit][/autoit] [autoit]
;~ If Not $NetSkatDir Then ; Prüfe ob string lerr wenn ja dann msgbox + programm beenden
;~ MsgBox(48, "Fehler", "NetSkat wurde nicht gefunden!")
;~ Exit
;~ Else
Run($NetSkatDir & "\" & $netskatexe, $NetSkatDir)
;~ EndIf
EndIf
WinActivate($netskat_Title) ; Sende Actevirungsbefehl
WinWaitActive($netskat_Title) ; Warte auf Actives FensterLocal $netskat_gesamt_titel = WinGetTitle("[active]")
[/autoit] [autoit][/autoit] [autoit]
$baseline = StringSplit($netskat_gesamt_titel, " ") ; teile sting anhand des lerrzeichen$Spieler = $baseline[5] ;
[/autoit] [autoit][/autoit] [autoit]
;MsgBox(0, "", $Spieler)
If $Spieler <> $CmdLine[2] Then
ControlSend($netskat_Title, "", "", "!es") ; Sende ALT+e+s
WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster$gefunden = ControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "FindString", $spieler_neu)
[/autoit] [autoit][/autoit] [autoit]
;MsgBox(0, "find ", $gefunden)
If $gefunden = 0 Then
ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:1]")
WinActivate($neuTitle) ; Sende Actevirungsbefehl
WinWaitActive($neuTitle) ; Warte auf Actives Fenster
ControlSetText($neuTitle, "", "Edit1", $spieler_neu)
Sleep(2000)
ControlClick($neuTitle, "", "[CLASS:Button; INSTANCE:2]")
Sleep(2000)
WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster
ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")WinActivate($netskat_Title) ; Sende Actevirungsbefehl
[/autoit] [autoit][/autoit] [autoit]
WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+e
WinWait($sTitle) ; Warte auf einstellungsfenster "Einstellungen für"
WinActivate($sTitle) ; Sende Actevirungsbefehl
WinWaitActive($sTitle) ; Warte auf Actives Fenster; Hole Handle und ids für tabzuweisung
[/autoit] [autoit][/autoit] [autoit]
$shWnd = WinGetHandle($sTitle)
$shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
$TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
$TabID = $TabID[0]; Wechsel zum Tab persönliche daten
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlTab_SetCurFocus($shTab, 2) ; Daten Spielerverzeichniss
$sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")
;MsgBox(0, "", "1")
;ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:6]")
; Wechsel zum Tab Spiel-server
_GUICtrlTab_SetCurFocus($shTab,
; Daten Spielerverzeichniss
$sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
ControlSetText($sTitle, "", "Edit1", "92.51.143.26");MsgBox(0, "", "2")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:5]")
EndIfControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", $spieler_neu)
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "Spielername wechseln", "Neu eingestellt" & " " & $spieler_neu & @CRLF & "nach 2 sec schliesse ich selbst ", 2)
ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]WinActivate($netskat_Title) ; Sende Actevirungsbefehl
[/autoit] [autoit][/autoit] [autoit]
WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+eWinWait($sTitle) ; Warte auf einstellungsfenster
[/autoit] [autoit][/autoit] [autoit]
WinActivate($sTitle) ; Sende Actevirungsbefehl
WinWaitActive($sTitle) ; Warte auf Actives Fenster
;MsgBox(0, "", "?????????")
; Hole Handle und ids für tabzuweisung
$shWnd = WinGetHandle($sTitle)
$shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
$TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
$TabID = $TabID[0]; Wechsel zum Tab Datenverzeichniss
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlTab_SetCurFocus($shTab, 4) ; Daten Spielerverzeichniss
$sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
; Lese SpielerDatenVerzeichniss aus
$Pfad_SpielProtokol = ControlGetText($sTitle, "", "Edit1")
IniWrite(@ScriptDir & "\netskat.mrc", "super-tool", "Pfad_SpielProtokoll", $Pfad_SpielProtokol)
;MsgBox(0, "", "pfad geschrieben")
ControlClick("Einstellungen für ", "", "[CLASS:Button; INSTANCE:2]")_ScanneLogDir($Pfad_SpielProtokol, 1)
[/autoit] [autoit][/autoit] [autoit]If $CmdLine[1] == "E" Then
[/autoit] [autoit][/autoit] [autoit]
ControlSend($netskat_Title, "", "", "{F2}")
ControlSend($netskat_Title, "", "", "!e")
ControlSend($netskat_Title, "", "", "{ENTER}")
ControlSend($netskat_Title, "", "", "{TAB 3}")
ControlSend($netskat_Title, "", "", "{ENTER}")
ElseIf $CmdLine[1] == "M" Then
ControlSend($netskat_Title, "", "", "{F2}")
ControlSend($netskat_Title, "", "", "!M")
ControlSend($netskat_Title, "", "", "{ENTER}")
ControlSend($netskat_Title, "", "", "^v")
ElseIf $CmdLine[1] == "FE" Then
ControlSend($netskat_Title, "", "", "!sf")
ControlSend($netskat_Title, "", "", "!e")
ElseIf $CmdLine[1] == "FM" Then
ControlSend($netskat_Title, "", "", "!sf")
ControlSend($netskat_Title, "", "", "!n")
EndIfIf _Singleton("NetSkatUeberwachung", 1) = 0 Then Exit ; Nur eine Instance erlauben
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While ProcessExists($netskatexe)
; Hauptschleife Wartet auf Spielende
If WinExists($tTitle) Then
While WinActive($tTitle)
$thWnd = WinGetHandle($tTitle)
$thandle = ControlGetHandle($thWnd, "", "Button3")
$var = ControlGetText($thWnd, "", "Button3")
If $var = "Spielergebnis als Email verschicken" Then
_ScanneLogDir($Pfad_SpielProtokol)
EndIf
Sleep(30)
WEnd
EndIf
Sleep(30)
#cs
; Hauptschleife Wartet auf Fortsetzen
If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
If WinActive("Daten zum Fortsetzen einer Runde exportieren") And MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
Send("{ENTER}")
Sleep(10000)
;MsgBox(0, "", "Ich sende Daten ab", 2)
ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
Sleep(10000)
EndIf
EndIf
#ce
; Hauptschleife Wartet auf Fortsetzen
;Hauptschleife Wartet auf Fortsetzen
;########################################################################################################
While WinExists("Daten zum Fortsetzen einer Runde exportieren") And _
WinActive("Daten zum Fortsetzen einer Runde exportieren")
If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIN") = 6 Then
ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
Send("{ENTER}")
Sleep(10000)
;MsgBox(0, "", "Ich sende Daten ab", 2)
ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
Sleep(10000)
EndIf
WEndWEnd
[/autoit] [autoit][/autoit] [autoit]
_ScanneLogDir($Pfad_SpielProtokol)Func _ScanneLogDir($logdir, $verschieben = 0)
[/autoit] [autoit][/autoit] [autoit]If $logdir = "" Then Return
[/autoit] [autoit][/autoit] [autoit]
If Not FileExists($logdir & "\Spielprotokolle\Archiv") Then DirCreate($logdir & "\Spielprotokolle\Archiv")
If Not FileExists($logdir & "\Spielprotokolle\Unbekannt") Then DirCreate($logdir & "\Spielprotokolle\Unbekannt")
Local $hSearch, $sFile, $tFile
$count = 0
Dim $FileListArray[1][2]
$hSearch = FileFindFirstFile($logdir & "\Spielprotokolle\*.TXT")
;MsgBox(0, "4---------$hSearch", $hSearch)If $hSearch <> -1 Then
[/autoit] [autoit][/autoit] [autoit]
While 1
$sFile = FileFindNextFile($hSearch)
;MsgBox(0, '155----------$sfile', $sFile)If @error Then
[/autoit] [autoit][/autoit] [autoit]
SetError(0)
ExitLoop
EndIf
If StringInStr(FileGetAttrib($sFile), "D") == 1 Then ContinueLoop
$tFile = $logdir & "\Spielprotokolle\" & $sFile
;MsgBox(0, '5----------$tfile', $tFile)
;MsgBox(0, "6--------------------verschieben", $verschieben)If $verschieben = 0 Then
[/autoit] [autoit][/autoit] [autoit]
ReDim $FileListArray[$count + 1][2]
$t = FileGetTime($tFile, 0)
$FileListArray[$count][0] = $tFile
$FileListArray[$count][1] = $t[0] & "." & $t[1] & "." & $t[2] & "." & $t[3] & "." & $t[4] & "." & $t[5]
$count += 1
Else
;MsgBox(0, "173-------------##", $verschieben & @CRLF & $tFile & @CRLF & $logdir & @CRLF & $sFile)FileMove($tFile, $logdir & "\Spielprotokolle\Unbekannt\" & $sFile, 1)
[/autoit] [autoit][/autoit] [autoit]
EndIf
WEnd
FileClose($hSearch)
EndIf
If $verschieben = 0 Then_ArraySort($FileListArray, 1, 0, 0, 1)
[/autoit] [autoit][/autoit] [autoit]If $FileListArray[0][0] <> "" Then _oeffne_LOG_und_lese_daten_aus($FileListArray[0][0], $logdir)
[/autoit] [autoit][/autoit] [autoit]
EndIf
;FileMove($logdir & "\Spielprotokolle\*.TXT", $logdir & "\Spielprotokolle\Unbekannt\",
EndFunc ;==>_ScanneLogDirFunc _oeffne_LOG_und_lese_daten_aus($file, $logdir)
[/autoit] [autoit][/autoit] [autoit]
Local $ende = False, $counter, $SpielCounter, $Spieler[3][5]
Dim $aRecords
_FileReadToArray($file, $aRecords)
;_ArrayDisplay($aRecords, "$aRecords")
For $i = 1 To $aRecords[0]
If StringLeft($aRecords[$i], 6) = "Spiel " And StringIsDigit(StringMid($aRecords[$i], 7)) Then
$rLine = StringSplit($aRecords[$i], " ", 2)
$SpielCounter = $rLine[1]
EndIf
If $ende = True Then
$counter += 1
$rLine = StringSplit($aRecords[$i], " ", 2)
If $counter = 1 Then
$playerS = $rLine[5]
ElseIf $counter = 3 Then
$playerE = $rLine[5]
ElseIf $counter = 5 Then
$Spieler[0][0] = $rLine[0]
$Spieler[0][1] = $rLine[2]
$Spieler[0][2] = $rLine[5]
ElseIf $counter = 6 Then
$Spieler[0][3] = $rLine[4]
ElseIf $counter = 7 Then
$Spieler[0][4] = $rLine[2]
ElseIf $counter = 9 Then
$Spieler[1][0] = $rLine[0]
$Spieler[1][1] = $rLine[2]
$Spieler[1][2] = $rLine[5]
ElseIf $counter = 10 Then
$Spieler[1][3] = $rLine[4]
ElseIf $counter = 11 Then
$Spieler[1][4] = $rLine[2]
ElseIf $counter = 13 Then
$Spieler[2][0] = $rLine[0]
$Spieler[2][1] = $rLine[2]
$Spieler[2][2] = $rLine[5]
ElseIf $counter = 14 Then
$Spieler[2][3] = $rLine[4]
ElseIf $counter = 15 Then
$Spieler[2][4] = $rLine[2]
EndIf
EndIf
If $ende = False And $SpielCounter = 36 And $aRecords[$i] = "******************************************************************" Then $ende = True
Next
$t = FileGetTime($file, 0);~ id datum sp s1 s2 s3 p1 p2 p3 g1 g2 g3 v1 v2 v3 E Spieler
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$url = "http://super-skat.de/skat/Gummibaer/eintragen.php"
$daten = "/?Datum=" & $t[2] & "." & $t[1] & "." & $t[0] & "." & $t[3] & "&Uhrzeit=" & $t[3] & ":" & $t[4] & ":" & $t[5] & "&sp=36&s1=" & $Spieler[0][0] & "&s2=" & $Spieler[1][0] & "&s3=" & $Spieler[2][0] & "&p1=" & $Spieler[0][4] & "&p2=" & $Spieler[1][4] & "&p3=" & $Spieler[2][4] & "&g1=" & $Spieler[0][1] & "&g2=" & $Spieler[1][1] & "&g3=" & $Spieler[2][1] & "&v1=" & $Spieler[0][2] & "&v2=" & $Spieler[1][2] & "&v3=" & $Spieler[2][2] & "&E=" & $playerE & "&Spieler=" & $playerS
$string = $url & $daten
;MsgBox(0, 'Datensatz', $string);------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$result = _INetGetSource($string)
If $result = "OK" Then
$result = "Daten wurden eingetragen!"
ElseIf $result = "OK2" Then
$result = "Daten schon vorhanden!"
ElseIf $result = "Error" Or $result = "" Then
$result = "Daten nicht eingetragen!" & @CRLF & " server problem wahrscheinllich"
Else
$result = "Keine Verbindung zum Server"
EndIf
If MsgBox(4 + 32, "Soll Netskat beendet werde?", "AutoIt--Meldung: " & @CRLF & $result) = 6 Then
FileMove($file, $logdir & "\Spielprotokolle\Archiv\",
MsgBox(0 + 48, "verschieben", "Protokolldatei wurde in Ordner Archiv Verschoben")
Exit
Else
MsgBox(0 + 64, "Ergebniss melden:", "Nun kannst du aus Netskat heraus Mailen")
Exit
EndIf
EndFunc ;==>_oeffne_LOG_und_lese_daten_ausFunc _getNetSkatDir()
[/autoit] [autoit][/autoit] [autoit]
$temp = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString") ; Hole String aus der Reg db
If Not $temp Then Return
$baseline = StringSplit($temp, " ") ; teile sting anhand des lerrzeichen
$tNetSkatDir = StringMid($baseline[2], 3, StringLen($baseline[2]) - 13) ; schneide vore -f und hinten DeIsL1.isu ab
If $tNetSkatDir = "" Then
While 1
$pfad = FileSelectFolder("NetSkat Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die netskat.exe befindet", "", 7)
If @error = 1 Then
MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
Exit
EndIf
If FileExists($pfad & "\netskat.exe") Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString", "REG_SZ", @WindowsDir & "\unin0407.exe -f" & $pfad & "\DeIsL1.isu")
Return $pfad
ExitLoop
EndIf
MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine netskat.exe")
WEnd
MsgBox(48, "282 suche Netskatordner", "mit oeffnen dialog")EndIf
[/autoit] [autoit][/autoit] [autoit]Return $tNetSkatDir
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_getNetSkatDirFunc _Checkinstallation()
[/autoit] [autoit][/autoit] [autoit]
If FileExists("mirc.exe") And FileExists("mirc.ini") Then
If Not FileExists("netskat.mrc") Then FileInstall("netskat.mrc", "netskat.mrc")
Return
Else
While 1
$pfad = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die mIRC.exe" & @CRLF & "und die mIRC.ini befindet", "", 7)
If @error = 1 Then
MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
Exit
EndIf
If FileExists($pfad & "\mirc.exe") And FileExists($pfad & "\mirc.ini") Then ExitLoop
MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine mIRC.exe")
WEnd
FileCopy(@ScriptFullPath, $pfad & "\netskatstart.exe", 1)
FileInstall("netskat.mrc", $pfad & "\netskat.mrc")
FileInstall("netskat.jpg", $pfad & "\netskat.jpg")
FileInstall("netskat_import.exe", $pfad & "\netskat_import.exe")
FileInstall("grandovert.exe", $pfad & "\grandovert.exe")
$filenams = $pfad & "\mirc.ini"
$section = "script"
$key = "n0"
$value = "on 1:START:{ /.load -rs netskat.mrc }"
IniWrite($filenams, $section, $key, $value)
MsgBox(0 + 64, "Load", "Netskatstart.exe , Sceenshot und Popups installiert")
;_SelfDelete()
Exit
EndIfEndFunc ;==>_Checkinstallation
[/autoit]
Ich habe es jedenfalls so verstanden, dass bei "Nein" die Abfrage-Schleife wieder durchlaufen werden soll. -
Findest du in der Registry.
Bei XP: HKEY_USERS\S-1-5-21-1935655697-688789844-725345543-1004\Control Panel\International
bzw. allgemein unter:
HKEY_CURRENT_USER\Control Panel\International -
Noch ein Tipp:
[autoit]
Bitte vermeiden Globale Variablen innerhalb einer Funktion zu deklarieren. Falls es sich nicht umgehen lassen sollte, dann in der Form:If Not IsDeclared("Variable") Then Global $Variable
[/autoit] -
Alle Probleme wurden hier jetzt im vollen Umfang gelöst!
Wollt ihr immer alles im Detail vorgekaut bekommen? Wie wärs mal mit Hilfe lesen, z.B. zu _WinAPI_LoadString() .
-
Am Ende soll doch wieder eine Zahl als Ergebnis herauskommen und kein String, oder?
Jein
Von der Umrechnungsfunktion her und direktem Einsatz als Farbwert brauch ich natürlich keinen String. Ich hab das z.B. eingesetzt um die Farbwerte über ein Inputfeld oder einen Slider zu ändern. Wenn der Slider den Wert ändert, soll dann natürlich im Input der zugehörige Farbwert in Hex-Schreibweise auftauchen - deshalb die Stringrückgabe. -
Wozu die innere While-Schleife?
Spoiler anzeigen
[autoit]While ProcessExists($netskatexe)
[/autoit]
;Hauptschleife Wartet auf Fortsetzen
If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
If WinActive("Daten zum Fortsetzen einer Runde exportieren") And _
MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
Send("{ENTER}")
Sleep(10000)
;MsgBox(0, "", "Ich sende Daten ab", 2)
ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
Sleep(10000)
EndIf
EndIf
WEnd