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. Tueftler

Beiträge von Tueftler

  • Ini Write/Read zerstört nach und nach ini-File

    • Tueftler
    • 28. Oktober 2022 um 20:58

    Ach herrjeh - Hier haben ja einige etwas zu meinem Problem geschrieben.

    Ich habe leider keine Email-Benachrichtigung erhalten, dass Antworten kamen :(

    Vielen Dank Euch hierfür!

    Ich werde mich nun schnell mal hin setzen und mit Euren Tipps versuchen das weiter einzugrenzen.

    Sorry für die verspätete Rückmail - Ich muss mal schauen woran das nun lag.

    Melde mich,

    Björn

  • Ini Write/Read zerstört nach und nach ini-File

    • Tueftler
    • 26. Oktober 2022 um 01:02

    Hallo.

    Ich verwende ein Windows-Programm an zwei Rechnern (nacheinander).

    Das Programm wird mit Autoit gestartet und prüft ob laut .ini der andere Rechner gerade aktiv ist.

    Hierzu gibt es ein "Free" oder die jeweilige WindowsUID in der .ini .

    Beim Schliessen wird das "Free" wieder geschrieben.

    In der .ini steht der Applikationspfad wie auch der Datenbankpfad zu den beiden PC-UIDs, damit das selbe Script auf beiden Rechnern genutzt werden kann.

    Nach dem Schliessen der Applikation wird beides auf mein NAS geschrieben.

    Beim nächsten Start wir die Datenbank auf den jeweiligen PC kopiert.

    Nun zu meinem Problem.

    Es wird immer nur folgende Section beschrieben:

    Code
    $RunningUserGUID = IniRead($IniFile,"Config","RunningGUID",0)

    Trotzdem werden nach und nach die dahinterliegenden Sections gelöscht, Zeichenkette für Zeichenkette.

    Ich kann die .ini im Notepad++ öffnen und nach einen Start/Beenden Zyclus fehlt am Ende der Datei plötzlich ein Teil der .ini .

    Code
    $AppPath = IniRead($IniFile,"AppPath",$MachineGUID,0)
    $DbPath = IniRead($IniFile,"DbPath",$MachineGUID,0)

    Es gibt aber im Programm nur IniReads auf diese Sections, nie ein Write.

    Weiß jemand ob es einen bekannten Bug in Sachen Ini-Handling gibt?

    Kann es evtl. an noch schlafenden Festplatten vom NAS liegen?

    Das Programm ist vor einem halben Jahr noch genau so wunderbar gelaufen.

    Was sich nun geändert hat weiß ich nicht.

    Evtl. hat ja jemand eine Idee wie so etwas passieren kann.

    Danke Euch erst einmal.

    Björn

  • Keine Schreibrechte in @AppDataDir\Verz1\Appname\Inifile.ini trotz #RequireAdmin unter Win7

    • Tueftler
    • 7. Oktober 2014 um 19:19

    Hi da.

    Das Problem ist ja schon gelöst wie ich schrieb :)
    Es hat an einer anderen Stelle gehangen und ich habs falsch gedeutet...

    Mars: Programme kommen nach Microsoft-Definition in das Programm-Verzeichnis. Alle Daten, die als Settings geschrieben werden, kommen in AppData z.B. Rooming.
    Das Programm hat nach Definition keine Schreibrechte für das eigene Verzeichnis.
    Die Userdaten wie z.B. erzeugte Textdateien mit dem Script kommen in das Documents-Verzeichnis. Dann sollte immer alles klappen.

    Grüße derweil

  • Keine Schreibrechte in @AppDataDir\Verz1\Appname\Inifile.ini trotz #RequireAdmin unter Win7

    • Tueftler
    • 6. Oktober 2014 um 22:10

    Hallo da!

    Habe grade ein merkwürdiges Problem bei einem Schreibzugriff in einer Win7 VM.
    Pfad für Ini-File ist folgendes:

    Code
    $inifile = @AppDataDir & "\Verz1\Appname\Inifile.ini"
    IniWrite($inifile,"ModeMain","Mode","256")

    Leider bekomme ich trotz Admin-Rechte anforderung via

    Code
    #RequireAdmin

    keine Zugriffsrechte.

    Kann mir evtl. jemand einen Tip geben wo das genau her kommt?
    Irgendwie weiß ich grade nicht warum das nicht funktioniert...

    Danke Euch und noch einen schönen Abend!

  • Suche Möglichkeit das UAC-Dialogfeld per Script zu schliessen

    • Tueftler
    • 5. Februar 2014 um 17:46

    Tatsächlich, irgendwie funktioniert es nun doch...

    [autoit]

    #RequireAdmin

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

    Local $sHKLM, $sName, $iReadValue

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

    $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
    $sName = "ConsentPromptBehaviorAdmin"

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

    $iReadValue = RegRead($sHKLM, $sName) ;Readout actual UAC
    MsgBox(0,"",$iReadValue)

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

    RegWrite($sHKLM, $sName, "REG_DWORD", 0) ;UAC deactivate

    [/autoit]
  • Suche Möglichkeit das UAC-Dialogfeld per Script zu schliessen

    • Tueftler
    • 5. Februar 2014 um 17:00
    Zitat von chesstiger

    Nö, muss man nicht.
    Also Ausschalten funktioniert ohne Probleme, nach dem Einschalten meckert Windows, dass ein Reboot wegen UAC nötig sei - funktioniert aber auch so alles wichtige prima.
    Gruß

    Hmm, okay.
    Muss ich dann nochmal testen - war gestern keine Zeit mehr für.

    Laut verschiedenen Websiten ist ein reboot aber nötig:
    http://www.tobbis-blog.de/windows-8-benu…c-deaktivieren/

    Zitat

    Bereits jetzt solltet ihr schon eine Meldung vom Wartungscenter erhalten, dass das Deaktivieren der Benutzerkontensteuerung (User Account Control) erst nach einem Neustart wirksam wird.

    http://www.antary.de/2013/10/13/ben…8-deaktivieren/

    Zitat

    PC neustarten, damit die Änderungen vollständig übernommen werden.

    http://blogs.msdn.com/b/hyperyash/ar…-windows-8.aspx

    Zitat

    To turn off UAC completely. Upon doing this it will prompt you to reboot your computer to turn off UAC.


    Werde berichten ob es doch funktioniert!

  • Suche Möglichkeit das UAC-Dialogfeld per Script zu schliessen

    • Tueftler
    • 5. Februar 2014 um 16:49

    Hatte die Möglichkeit gestern Nacht noch wo gelesen.
    Aber ich glaube, dass man danach einen Neustart hin legen muss.
    Es würde wie gesagt reichen, wenn das Script nach dem der User "Ja" gedrückt hatte, weiter laufen würde.

    Keiner eine Idee?

  • Suche Möglichkeit das UAC-Dialogfeld per Script zu schliessen

    • Tueftler
    • 4. Februar 2014 um 22:47

    Ja, schon.
    Es wäre ja auch völlig okay, dass der User selbst noch auf "Ja" drücken muss.
    Aber danach sollte wenigstens die beiden Zeilen für die Deaktivierung eingegeben werden.
    Scheinbar haben wir Benutzer, die nicht mal das können.
    Video zur Visualisierung wurde von der Geschäftsleitung nicht gut gehiessen...
    Das war eigentlich schon fertig, naja.

  • Suche Möglichkeit das UAC-Dialogfeld per Script zu schliessen

    • Tueftler
    • 4. Februar 2014 um 22:10

    Hallo.

    Für meinen Arbeitgeber sollte ich ein Script schreiben, dass bei Win8 die Treibersignierung aus schaltet.
    Am Anfang drücke ich "WIN+X", danach "A" für commandline box als admin zu starten.
    Nun kommt aber das Fenster von der UAC, welches ich mit Autoit nicht geschlossen bekomme.
    Laut Suche müsste man per Flag "Programm muss als Admin gestartet werden" dies eliminieren können, funktioniert aber nicht.

    Dann dachte ich mir "okay, muss der User halt selber auf Ja drücken".
    Problem ist dann aber, dass das Dialogfeld in verschiedenen Landerssprachen auch unterschiedliche Captions hat.
    Irgendwie kommt ich nicht so ganz weiter :(

    Evtl. kann mir ja jemand einen Tip geben.
    Danke, Björn

    [autoit]

    MouseClick("right", 0, @DesktopHeight-1) ;Geht
    ;Send("#x") ;Funktioniert nicht
    Sleep(500)
    Send("a")
    Sleep(1000)
    Send("+{TAB}{ENTER}") ;Funktioniert auch nicht
    ;Send("!j") ;Funktioniert nicht
    Sleep(1000)
    Send("TEST")

    [/autoit]
  • _ArrayDisplay öffnet Dialog, zeigt aber nichts an und hängt

    • Tueftler
    • 17. Juni 2013 um 21:39

    Adlibunregister/Register hat nicht so funktioniert.
    Aber gut zu wissen, dass man das nicht darf.
    Dann debugge ich nun mit einen einmaligen Funktionscall ohne Timer und werfe den Timer wieder an wenn alles läuft wie es sollte.

    Danke auf jeden Fall für den Tipp!

  • _ArrayDisplay öffnet Dialog, zeigt aber nichts an und hängt

    • Tueftler
    • 17. Juni 2013 um 21:24

    oh, echt - Das war mir nicht klar.
    Habe auch schon versucht den Timer bei Einsprung in Funktion zu killen, brachte aber auch keinen Erfolg.

    Das ist ja blöde :(

  • _ArrayDisplay öffnet Dialog, zeigt aber nichts an und hängt

    • Tueftler
    • 17. Juni 2013 um 21:19

    Hier ein Beispielscript:

    [autoit]

    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GUIConstants.au3>
    #include <GuiListBox.au3>
    #include <GuiButton.au3>
    #include <WinAPI.au3>
    #include <Array.au3>
    #include <String.au3>
    #include <Timers.au3>
    #include <GUIConstantsEx.au3>

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

    Global Const $STX = 0x02
    Global Const $ETX = 0x03

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

    Global $hGUI = GUICreate("Logger", 334, 205, -1, -1, BitOR($WS_MINIMIZE, $WS_MINIMIZEBOX), $WS_EX_WINDOWEDGE)
    $LogBox = GUICtrlCreateList("", 10, 10, 313, 136, BitOR($LBS_NOTIFY,$WS_VSCROLL,$WS_BORDER))
    $btnExit = GUICtrlCreateButton("Beenden",191,150,130,18,-1,-1)
    $HideBtn = GUICtrlCreateButton("Verberge Fenster",10,150,130,18,-1,-1)
    GUISetState(@SW_SHOW, $hGUI)

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

    Global $FT_HANDLE, $received_stream = ""

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

    $iTimer = _Timer_SetTimer($hGUI,1000,"FTDI_ReceivedData")

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

    While 1

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

    WEnd

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

    Func FTDI_ReceivedData($hWnd, $Msg, $iIDTimer, $dwTime)

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

    Local $queue_items, $received_stream_temp

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

    $received_stream = "DasIst ein Test"
    ;******************* AUSWERTUNG *******************

    local $stream_array = StringToASCIIArray($received_stream)

    _ArrayDisplay($stream_array,"Stream")
    ConsoleWrite("ERR: " @error & @CRLF)

    local $resultSTX = _ArrayFindAll($stream_array,chr($STX))
    local $resultETX = _ArrayFindAll($stream_array,chr($ETX))

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

    _ArrayDisplay($resultSTX,"STX")
    _ArrayDisplay($resultETX,"ETX")

    Exit

    EndFunc

    [/autoit]
  • _ArrayDisplay öffnet Dialog, zeigt aber nichts an und hängt

    • Tueftler
    • 17. Juni 2013 um 21:15

    Dachte ich mir...
    Bin schon am zusammenstellen bzw auskommentieren...

    Stelle es gleich online - Danke!

  • _ArrayDisplay öffnet Dialog, zeigt aber nichts an und hängt

    • Tueftler
    • 17. Juni 2013 um 21:05

    Hallo.

    Habe gerade ein merkwürdiges Problem.
    Wenn ich ein eindimensionales Array mit _ArrayDisplay anschauen möchte, öffnet sich zwar der Dialog davon, zeigt aber nichts an...
    Das Programm hängt dann irgendwie vor sich hin.

    Ich weiß leider nicht an was es liegt...
    Hat jemand eine Idee was man da drumherum testen könnte?

    Getestet in ISN wie auch Scite - Updates sind alle drauf.

    Grüße
    Björn

  • Ascii-Datensatz an USB-Schnittstelle schreiben. Problem mit <STX> "TEXT" <ETX>

    • Tueftler
    • 16. Juni 2013 um 20:54

    Hi da.

    Ich möchte an eine USB-DLL einen String übergeben.
    Dieser sollte so aussehen 0x02 0x49 0x4E 0x46 0x4f 0x03 -> <STX> "INFO" <ETX>

    Irgendwie bekomme ich das in Autoit nicht so richtig formatiert...
    Bisher so genutzt:

    [autoit]


    Global Const $STX = 0x02
    Global Const $ETX = 0x03

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

    $stringtext = $STX & _StringToHex("INFO") & $ETX

    consolewrite(@CRLF & "TEXT: " & $stringtext)

    DllStructSetData($lpBuffer, 1, $stringtext)
    $dwBytesToWrite = StringLen($stringtext)

    $Do = _FT_Write($FT_HANDLE, $lpBuffer, $dwBytesToWrite, $lpdwBytesWritten)
    ConsoleWrite(@CR & _USBFT_ErrorDescription($Do))
    ConsoleWrite(@CR & DllStructGetData($lpBuffer, 1))
    ConsoleWrite(@CR & $dwBytesToWrite)
    ConsoleWrite(@CR & DllStructGetData($lpdwBytesWritten, 1))

    [/autoit]

    Bei den letzten ConsoleWrite bekomme ich ein 2494E464F3 zurück - was ja schon so mein String ist...Aber ohne Abstände kommt mir sehr komisch vor...
    Auch kommt von dwBytesToWrite zurück dass 12Bytes versendet wurden, obwohl es nur 6 sind.
    Das heißt, dass er jede Zahl als ASCII rüber schickt...
    Hier kann aber etwas nicht passen.
    Bekomme bei _FT_GetQueueStatus danach immer eine 0 zuück.
    Von Hand und über den ComPort bekomme ich da einen riesen String zurück, mit Autoit gar nichts...

    Evtl. hat ja jemand eine Idee.
    Grüße Björn


    GELÖST:
    $stringtext = Chr($STX) & "RELON" & Chr($ETX)

  • Inputbox maximale anzahl Zeichen erweitern

    • Tueftler
    • 11. Januar 2013 um 12:14

    Hi da.

    Danke für die Antworten.
    Habs nun auch mit einem GUIEdit gemacht.
    Hat noch den Vorteil das man den Text schöner visualisieren kann.
    In der Inputbox hatte ich immer "|" als Trennung für die nächste Zeile verwendet ;)
    Sollte halt schnell gehen...

    Grüße und Euch noch en schönes Wochenende
    Björn

  • Inputbox maximale anzahl Zeichen erweitern

    • Tueftler
    • 10. Januar 2013 um 23:12

    Hi.

    Wollte grade Posten das ich ein Problem habe und einfach nicht weiter komme, schon hab ichs entdeckt wo es her kommt :)
    Nach langer Suche...

    Es geht um die Inputbox die ja irgendwie nur 254 Zeichen hat.
    Jetzt möchte ich aber einen Text hinein kopieren der auch locker einiges länger sein kann.
    Gibt es hier eine Möglichkeit oder muß ich doch ne GUI verwenden?

    Björn

  • EzMySql Daten lesen und Updaten

    • Tueftler
    • 22. August 2012 um 16:41

    Juhu, jetzt klappts.
    Habe es hin bekommen - was eine Geburt :evil:

    Falls nochmal jemand daran sitzt:

    Code
    Local $SQLdata
    $SQLdata = _EzMySql_GetTable2d("SELECT * FROM Filmarchiv WHERE Schauspieler = 'Wesley';")
    
    
    if UBound($SQLdata ,1) > 1 Then	
    MsgBox(0,"","gefunden")
    Else	 	
    MsgBox(0,"","nicht gefunden")
    EndIf

    Danke Euch für die Tips!
    Björn

  • EzMySql Daten lesen und Updaten

    • Tueftler
    • 21. August 2012 um 21:30
    Zitat von Tueftler

    Uniqe habe ich gefunden, leider kann ich die Spalte nicht darauf umstellen da sie als Typ "Text" definiert wurde und das scheinbar seine Bedeutung hatte...
    Habe sie testweise mal auf Int gestellt da ich ja Nummern suche, leider funktioniert dann alles andere nicht mehr da bei leeren Reihen dann immer Nullen drin stehen und nicht nichts.

    UNIQE wäre mir auch am liebsten, jedoch kann ich das nicht machen...

    Ich versuche morgen früh dann mal die Sache mit der Select-Abfrage und _FetchTabele2D.

    Grüße!

  • EzMySql Daten lesen und Updaten

    • Tueftler
    • 21. August 2012 um 17:41

    Kann mir bitte noch hier jemand sagen wie das zu machen ist?
    Sorry, aber irgendwie will das nicht so wie ich...

    Möchte ja nur eine Spalte der Db durchsuchen und wenn kein Fund, INSERT.
    Klingt doch recht easy aber ich weiß nicht wo ich es anpacken soll.

    Am liebsten mit der Lib "_EzMySql_Exec" da damit mein Projekt derzeit arbeitet.
    Ein Test mit der MySQL u3 von Progandy hat aber eigentlich auch funktioniert.


    Björn

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™