Beiträge von Tueftler

    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

    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

    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

    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!

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


    #RequireAdmin


    Local $sHKLM, $sName, $iReadValue


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


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


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

    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/wind…euerung-uac-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/1…r-windows-8-deaktivieren/

    Zitat

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


    http://blogs.msdn.com/b/hypery…control-in-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!

    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.

    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


    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")

    Hier ein Beispielscript:


    #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>



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




    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)


    Global $FT_HANDLE, $received_stream = ""





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



    While 1


    WEnd




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


    Local $queue_items, $received_stream_temp



    $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))


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

    Exit

    EndFunc

    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

    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:



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


    $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))


    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)

    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

    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

    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

    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!

    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