Beiträge von gmmg
-
-
Hallo Floooooo24,
hast du mal versucht die $ParentGUI anzugeben?
_Metro_CreateGUI($Title, $Width, $Height[, $Left = -1[, $Top = -1[, $AllowResize = False[, $ParentGUI = ""]]]])
; #FUNCTION# ====================================================================================================================
; Name ..........: _Metro_CreateGUI
; Description ...: Creates a modern borderless GUI with the colors of the selected theme.
; Syntax ........: _Metro_CreateGUI($Title, $Width, $Height[, $Left = -1[, $Top = -1[, $AllowResize = False[, $ParentGUI = ""]]]])
; Parameters ....: $Title - Title of the window
; $Width - Width
; $Height - Height
; $Left - [optional] Window pos X. Default is -1.
; $Top - [optional] Window pos Y. Default is -1.
; $AllowResize - [optional] True/False. Default is False. ;Enables resizing + drag move for the gui.
; $ParentGUI - [optional] Handle to the parent gui. Default is "".
; Return values .: Handle to the created gui
; Example .......: _Metro_CreateGUI("Example", 500, 300, -1, -1, True)
; ===============================================================================================================================
Benutze selbst immer mal die _Metro_CreateGUI, habe aber bisher keine 2 GUI's in einem Script benötigt.
Gruß gmmg
-
@tommii, wenn du Zugriff auf die Datenbank hast, könnte man ja auf diese zugreifen und die Daten darus direkt nutzen. Das macht das Excel Makro ja scheinbar auch
Gruß gmmg
-
-
Hallo Zusammen,
kann man von der 3.3.14.5 Problemlos auf die neue Version wechseln oder sind größere Probleme bekannt?
Gruß gmmg
-
Mit der folgenden Anpassung des Scripts läuft der Import erstmal wie gewollt. Ich schließe das Thema.
AutoItIf $dword[0] = 2 Then RegWrite(StringReplace($RegArray[$i],'"',''), StringReplace($RegArrayaSec[$a][0],'"',''), 'REG_DWORD', Dec(StringReplace(StringReplace($RegArrayaSec[$a][1],"dword:",""),'"',''),0)) EndIf
Gruß und Danke
gmmg
-
Velted, danke für deine Antwort. Für den einzelnen Wert ist das bereits geklärt. Das funktioniert ja auch mit der DEC Funktion.
Ich möchte doch nun die ganzen Regdatei per Autoit wieder importieren bzw. schreiben und nicht nur den einzelnen Wert.
Da müsste ich nun ja für alle Einträge entsprechende definitionen festlegen, dass will ich aber möglichst vermeiden
Gruß gmmg
-
Hallo Moombas,
ja, das wäre eine Idee, aber hast du dir mal die angehängte Reg Datei angeschaut, da gibt es viele "Dword" Einträge, die müssen ja alle geschrieben werden.
Bei dem Eintrag mit der PortNumber war mir der Fehler halt direkt aufgefallen, bei den anderen Einträgen, weiß ich das ja noch nicht.
Mit der DEC Funktion schaut das im Vergleich beider Dateien (export aus der Registry) mit Notepad++ sehr gut aus.
Einzig eine "REG_SZ" Zeile passt nicht mit dem Original überein, ist aber eventuell auch nicht relevant.
Original
per Autoit
Gruß gmmg
-
BananaJoe , das war mir auch schon aufgefallen, aber wie schreibe ich das denn im Script um?
Es wird ja nur die exportierte Registry in ein Array gelesen und danach wieder zeilenweise geschrieben.
Ich habe jetzt mal nur die PortNumber Zeile zum testen genommen. mit der Dec Funktion wird der Wert korrekt in die Registry geschrieben.
Ob das jetzt für alle Werte so geändert werden muss ist mir noch nicht bekannt.
AutoItFunktioniert nicht ;RegWrite("HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Blank", "PortNumber", "REG_DWORD", "00000016") ;RegWrite("HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Blank", "PortNumber", "REG_DWORD", 00000016) Funktioniert RegWrite("HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Blank", "PortNumber", "REG_DWORD", Dec("00000016",0)) RegWrite("HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Blank", "PortNumber", "REG_DWORD", Dec(00000016,0))
Gruß gmmg
-
Hallo Zusammen,
ich habe gerade das Problem, dass ich Silent etwas in die Registry für das Programm putty schreiben möchte.
Bisher hatte ich das immer über den Importbefehl gemacht, hier kommt aber immer die Bestätigungsanfrage der Benutzerkontensteuerung.
Der Import über die HKCUReg.au3 funktioniert leider nicht.
AutoIt---funktioniert , aber Benutzerkontensteuerung muss aktiv bestätigt werden -- ;$sCommand01 = ('regedit.exe /s "' & @ScriptDir & '\bin\putty.reg"') ;_RunDOS($sCommand01)
Mit dem Regwrite Befehl funktioniert das Grundsätzlich, aber die Werte stimmen nicht.
Mit folgendem Code schreibe ich nun die Einträge in die Registry. Es wird die Reg Datei eingelesen und dann Zeilenweise eingespielt.
AutoIt
Alles anzeigen-- schreiben in die Registry funktioniert, aber die Werte sind nicht korrekt --- $putty_file = @ScriptDir & '\bin\putty.reg.txt' $RegArray = IniReadSectionNames($putty_file) ;_ArrayDisplay($RegArray) For $i = 1 To UBound($RegArray) -1 $RegArrayaSec = IniReadSection($putty_file, $RegArray[$i]) _ArrayDisplay($RegArrayaSec) For $a = 1 To UBound($RegArrayaSec) -1 $dword = StringSplit($RegArrayaSec[$a][1],"dword:",1) If $dword[0] = 1 Then RegWrite(StringReplace($RegArray[$i],'"',''), StringReplace($RegArrayaSec[$a][0],'"',''), 'REG_SZ', StringReplace($RegArrayaSec[$a][1],'"','')) EndIf If $dword[0] = 2 Then RegWrite(StringReplace($RegArray[$i],'"',''), StringReplace($RegArrayaSec[$a][0],'"',''), 'REG_DWORD', StringReplace(StringReplace($RegArrayaSec[$a][1],"dword:",""),'"','')) EndIf Next Next
Das Problem ist mir dann beim Öffnen von Putty aufgefallen. Hier hat der SSH Port nicht gestimmt.
Korrekt wäre der Port 22, es kommt aber immer nur Port 16.
Eintrag aus der exportierten Registry (wenn ich das wieder importiere funktioniert es)
Eintrag in der Registry
Wenn ich per Autoit Schreibe, kommt in der Registry folgendes an. Es wird ein aus Port 22 -> Port 16
Könnte das Problem am Zeichensatz oder an der Formatierung liegen?
Gibt es denn eine andere Möglichkeit den Import vorzunehmen?
Danke
Gruß gmmg
-
Hallo MojaeB,
Bugfix hat das ja schon beantwortet
Ich benutze aber immer den Aufruf _MYSQL_Real_Query. Hier ein kleines Beispiel.
Code
Alles anzeigen$s_Row_txt_1 = "1" $s_Row_txt_2 = "testuser" $s_Row_txt_3 = "ok" Local $sQuery = "INSERT INTO tabelle (`nr`,`user`,`status`) " & _ "VALUES ('" & $s_Row_txt_1 & "',"& _ "'" & $s_Row_txt_2 & "',"& _ "'" & $s_Row_txt_3 & "')"& _ " ON DUPLICATE KEY UPDATE "& _ "`Insert_Error` = NOW()" ;_MySQL_Real_Query($MysqlConn, $sQuery) If _MySQL_Real_Query($MysqlConn, $sQuery) Then ; Fehler MsgBox(0,"","Fehlernummer: " & _MySQL_Errno($MySQLConn) & @CRLF & _MySQL_Error($MysqlConn)) EndIf If @error <> 0 Then MsgBox(0,"",$x & " / " & $sQuery)
Gruß gmmg
-
Hallo MojoeB,
es gibt verschiedene Zugriffsmöglichkeiten per Autoit auf MySQL.
Die Unten stehende UDF nutzt die libmysql.dll, von daher benötigt man keine ODBC Treiber und deren Einrichtung.
Den Download gibts bei Github "https://github.com/BugFix/AutoIt_MySQL".
Direktdownload https://github.com/BugFix/AutoIt_…eads/master.zip
Hier im Board: MySQL UDF - mit libmySQL.dll (kein ODBC)
Gruß gmmg
-
Hallo MojoeB,
hier mal ein Beispiel zum Auslesen einer internen Mysql installation.
Das sollte sich aber auch auf eine gehostete Instanz übertragen lassen.
C
Alles anzeigen#include <array.au3> #include <mysql.au3> ; db verbindungsvariablen $ipadd = "db_server" $sname = "db_user" $spasswort = "db_Kennwort" $db = "datenbank _MySQL_InitLibrary() If @error Then Exit MsgBox(0, "Fehler", "libmysql.dll nicht gefunden") $MysqlConn = _MySQL_Init() $connected = _MySQL_Real_Connect($MysqlConn,$ipadd,$sname,$spasswort,$db) If $connected = 0 Then $errno = _MySQL_errno($MysqlConn) MsgBox(0,"Fehler","Login Server ist nicht Erreichbar") Exit Endif Local $sQuery = "SELECT * FROM `DBTabelle`" ;MsgBox(0,"",$sQuery) _MySQL_Real_Query($MysqlConn, $sQuery) $res = _MySQL_Store_Result($MysqlConn) $array = _MySQL_Fetch_Result_StringArray($res) _MySQL_Free_Result($res) _ArrayDisplay($array) ;Test 2 Local $sQuery1 = 'SELECT * FROM DBTabelle where User="' & @UserName & '"' _MySQL_Real_Query($MysqlConn, $sQuery1) $res1 = _MySQL_Store_Result($MysqlConn) $array1 = _MySQL_Fetch_Result_StringArray($res1) _MySQL_Free_Result($res1) _ArrayDisplay($array1) ; Verbindung beenden _MySQL_Close($MysqlConn) ; MYSQL beenden _MySQL_EndLibrary()
Theoretisch kannst du ja zum Testen auch erstmal Tools wie Heidi SQL oder DBeaver nutzen.
Ansonsten gibt es bestimmt noch Forumsmitgleider, die Online Webspace zum testen haben und dir entsprechend auch weiterhelfen können.
Gruß gmmg
-
Hallo Bugfix,
bei Windows 7 gab es doch BDE-Verwaltung in der Systemsteuerung. Hab leider aktuell keine Anwendung mehr die auf die Borland Engine zurückgfreift.
Schreibt denn das Programm für die Borland DB irgendetwas in die Registry? Hier könnte es sein, dass der Eintrag fehlt.
Vielleicht mal mit Kompatibilitätsmodus spielen.
Gruß gmmg
-
@Moombas, das stimmt auch wieder
-
Hallo diebratwurst,
versuche es doch mal so. Zeiten sind zum testen geändert.
Das $Hour +=1 hat am Anfang immer die Zeit Automatisch hochgezählt, ehe es in die Batch Schleife gesprungen ist.
AutoIt
Alles anzeigen#Include <Date.au3> Global $Hour = StringSplit(_NowTime(4), ':')[1] ;MsgBox(0,"",$Hour) ;$Hour += 1 While 1 If $Hour = 24 Then $Hour = 0 If BatchRun($Hour) Then $Hour += 1 sleep(100) WEnd Func BatchRun($Time) ;MsgBox(0,"",$Time) If StringLen($Time) = 1 then $Time = '0' & $Time $Time = $Time & ':19' ConsoleWrite($Time) If _NowTime(4) = $Time Then MsgBox(0,"","test",1) ;ShellExecute("D:\AWK\Schnittstelle\Auftraege\PTV_Import.bat") sleep(1000) ;Sicherstellen das das Skript nur 1 mal ausgeführt wird! Return True Else Return False EndIf EndFunc
Gruß gmmg
-
Hallo Zusammen,
Im Prinzip geht das ja einfach so.
Code#include <InetConstants.au3> $DownloadURL = "https://bits.avcdn.net/productfamily_ANTIVIRUS/insttype_FREE/platform_WIN/installertype_FULL/build_RELEASE/cookie_mmm_ava_998_999_000_m/" InetGet($DownloadURL, @UserProfileDir & "\Downloads\avast_free_antivirus_setup_offline.exe")
Gruß gmmg
-
Hallo lunifrw,
hier mal ein Beispiel für einen Webseite Login.
Die Zugangsdaten würden aus einer Ini Datei kommen. Da hast du zumindest schonmal den Website Aufruf
Spoiler anzeigen
C
Alles anzeigen#include "wd_helper.au3" #include "wd_core.au3" $file = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ;Pfad zu Google Chrome ;----prüfe Version von der Chromedriver.exe anhand der Google Chrome.exe--- If FileExists($file) Then $Fileversion = FileGetVersion($file) $gchrome_version = StringLeft($Fileversion,2) $webdriver = "chromedriver_" & $gchrome_version & ".exe" Else MsgBox(0,"Info","Google Chrome in der richtigen Version nicht vorhanden.") Exit EndIf $ini_file = @scriptdir & "\bin\tc.ini" ; muss ASCI sein (wenn nicht, mit Notepadd++ setzen) $mail = IniRead($ini_file, "tc", "mail", "NotFound") $pass = IniRead($ini_file, "tc", "pass", "NotFound") $_WD_DEBUG = $_WD_DEBUG_None ;set to $_WD_DEBUG_None before compiling. ;Global $_WD_DRIVER Local $sDesiredCapabilities Local $iIndex $url = "https://URL der Website" ;SetupGecko() SetupChrome() _WD_Startup() $sSession = _WD_CreateSession($sDesiredCapabilities) _WD_Window($sSession, "Maximize", "{}") _WD_Navigate($sSession, $url) _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@data-qe-id='email']") ConsoleWrite("+ @error = " & @error & @CRLF) $sElement_mail = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@data-qe-id='email']") _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@data-qe-id='password']") ConsoleWrite("+ @error = " & @error & @CRLF) $sElement_pass = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@data-qe-id='password']") If @error = $_WD_ERROR_Success Then _WD_ElementAction($sSession, $sElement_mail, 'value',$mail) Sleep(500) EndIf If @error = $_WD_ERROR_Success Then _WD_ElementAction($sSession, $sElement_pass, 'value',$pass) EndIf Sleep(1000) Send("{ENTER}") _WD_Shutdown() Func SetupChrome() _WD_Option('Driver', 'data\'& $webdriver) _WD_Option('Port', 9515) ;_WD_Option('DriverParams', '--log-path="' & @ScriptDir & '\chrome.log"') _WD_Option('DriverParams') $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"unhandledPromptBehavior": "ignore", ' & _ '"goog:chromeOptions": {"w3c": true, "excludeSwitches": ["enable-automation"], "useAutomationExtension": false, ' & _ '"prefs": {"credentials_enable_service": false},' & _ '"args": ["start-maximized"] }}}}' EndFunc Func SetupGecko() _WD_Option('Driver', 'geckodriver.exe') ;_WD_Option('DriverParams', '--log trace') _WD_Option('DriverParams') _WD_Option('Port', 4444) $sDesiredCapabilities = '{"desiredCapabilities":{"javascriptEnabled":true,"nativeEvents":true,"acceptInsecureCerts":true}}' EndFunc
Und hier noch ein kleines Beispiel zum Finden/ Setzen /Lesen eines Values von einem Input.
Code;find Input $sElement_user = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='_username']") ;set value _WD_ElementAction($sSession, $sElement_user, 'value',$User) ;get_Value $sValue = _WD_ElementAction($sSession, $sElement_user, 'property', 'value') MsgBox(0,"", $sValue)
Gruß gmmg
-
-
@All,
wie im ersten Poist geschriben will er aber doch auch Bilder verarbeitetn. Können denn die Beispiele dies auch?
Gruß gmmg