Teste mal
[autoit]$AnzahlanDaten = Number(GuiCtrlRead($Inputfeld))
[/autoit]Teste mal
[autoit]$AnzahlanDaten = Number(GuiCtrlRead($Inputfeld))
[/autoit]Frei ausm Bauch, glaube auch nicht, dass das auf Anhieb funktioniert:
[autoit]$IE = _IECreate()
; ...
$IE.document.charset = 'ISO-8859-1' ; Alternativ mal ISO-8859-15 probieren
; ...
_IENavigate($IE, "https://search.mysharepoint.com/Seiten/results.aspx?k=" & $Suchbegriff")
Zitat[autoit][/autoit]
$iPID = Run("notepad.exe", "", @SW_MINIMIZE)
WinWait("[class:Notepad]")
Schonmal probiert, was passiert, wenn du schon ein Notepad offen hast? Ich halte das für sehr fehleranfällig.
Würde da eher eine Schleife um das _WinGetByPID() machen.
Aber vielleicht hast du trotzdem eine Antwort auf mein RegEx-Problem im Post 17?
Leider nicht, sorry. Ich kenne keine Möglichkeit, die Anzahl der Treffer direkt im Ergebnis wiederzugeben.
Das Erste, was ich bemerkt habe: StringRegExpReplace() ist ca. 6x schneller als StringReplace()
Hier hab ich jetzt aufgehört, weiterzulesen. Verzeiht also, wenn das dann doch schon gepostet wurde.
Schalte mal bei StringReplace das Case-Sensitivity-Flag auf 1! Dann siehst du mal, wieviel schneller StringRegExpReplace dann noch sein sollte
ACHTUNG, CROSSPOST!
Ich werde in das entsprechende Forum nicht direkt verlinken. Wer die Domain des bösen Bruder's kennt, der füge ihr folgendes hinzu:
Hallo Leute,
ich habe im Moment einen Gedankenhänger - es wäre genial, wenn ihr da weiterhelfen könntet.
Copy n Paste Lösungen sind gern gesehen, habe schon viel zu viel Zeit dafür verschwendet *gg*
Ich benötige einen Regexp für folgenden Fall:
Geparsed wird ABAP-Quellcode. Gesucht werden SELECT-Anweisungen, bei denen in der WHERE (oder in der JOIN-Bedingung, oder in beidem) nur 2 der folgenden 3 Felder versorgt werden:
"vtweg", "spart" und "vkorg".
Hier ein Teststring, mit dem das ganze wahrscheinlich leichter nachzuvollziehen ist.
" Folgender Block soll gefunden werden, da "vtweg" weder in der WHERE Bedingung, noch in der JOIN Bedingung angegeben ist. (und "vkorg" auch nicht ;))
SELECT vkorg FROM vkorgs INTO TABLE gt_zieltab
WHERE spart IN so_sparten.
" Folgender Block soll NICHT gefunden werden, da alle 3 Felder versorgt.
SELECT * FROM
woherauchimmer
INNER JOIN andere_tabelle
ON andere_tabelle~vkorg = woherauchimmer~vkorg
INTO gs_zielbereich
WHERE spart = '14'
AND vtweg = p_weg.
" Folgender Block soll gefunden werden, da "spart" weder in der WHERE Bedingung, noch in der JOIN Bedingung angegeben ist.
SELECT kunnr FROM woherauchimmer LEFT OUTER JOIN andere_tabelle
ON andere_tabelle~vkorg = woherauchimmer~vkorg
INTO gs_zielbereich
WHERE vtweg = '123'.
Alles anzeigen
Vllt noch hilfreiche Infos: Es können sonst auch beliebige Felder abgefragt / versorgt werden. Die Felder müssen nicht direkt aufeinander folgen. Die Reihenfolge der Felder ist beliebig.
ABAP Anweisungen werden außerdem mit einem Punkt abgeschlossen (Ähnlich wie in z.B. PHP mit einem Semikolon)
Bin um jede Hilfe dankbar!
Gruß Seubo
Alternativ kannst du auch ein Dummy-Control mit dem Befehl GUICtrlCreateDummy() erstellen. Dieses kannst du dann per GUICtrlSendToDummy() ansteuern - daraufhin kannst du mit GUIGetMsg() auf den Dummy reagieren.
GUICreate('', 240)
$cButton_Top = GUICtrlCreateButton('Button Top', 20, 20, 200, 20)
$cButton_Bottom = GUICtrlCreateButton('Button Bottom', 20, 360, 200, 20)
$cDummy = GUICtrlCreateDummy()
GUISetState()
While Sleep(10)
Switch GUIGetMsg()
Case -3
Exit
Case $cButton_Top, $cDummy
MsgBox(0, '', 'tadaaa')
Case $cButton_Bottom
MsgBox(0, '', 'lalala')
GUICtrlSendToDummy($cDummy)
EndSwitch
WEnd
LG
HotKeySet('{ENTER}', '_LowerValue')
[/autoit][autoit][/autoit][autoit][/autoit][autoit]GUICreate('',220,120)
$cLabel = GUICtrlCreateLabel('10', 10, 10, 200, 100)
GUISetState()
While GUIGetMsg() <> -3
WEnd
Func _LowerValue()
GUICtrlSetData($cLabel, GUICtrlRead($cLabel) - 0.5)
EndFunc
Eigentlich sollte das die folgende Zeile
[autoit]_WinAPI_SetWindowPos($hWnd, $HWND_TOPMOST, -1, -1, -1, -1, $SWP_NOMOVE)
[/autoit]Das TOPMOST-Attribut garnicht setzen, sondern das Fenster lediglich einmalig in der so genannten "Z-Order" nach Vorne holen.
Wie sieht es aus, wenn du stattdessen dieses hier verwendest?
_WinAPI_SetWindowPos($hWnd, $HWND_TOP, -1, -1, -1, -1, $SWP_NOMOVE)
[/autoit]Unter Win8 ist der Taskmanager übrigens auch hinter der Taskleiste...
Führt folgendes zum Erfolg?
[autoit]#include <WinApi.au3>
#include <Constants.au3>
$hWnd = ...
[/autoit][autoit][/autoit][autoit]_WinAPI_SetWindowPos($hWnd, $HWND_TOPMOST, -1, -1, -1, -1, $SWP_NOMOVE)
[/autoit]Gruß
Auch wenn ich jetzt der böse Seubo bin, der allen Alles vorkaut - hier ein eventuell leichter verdauliches Beispiel:
#include <GDIPlus.au3>
_GDIPlus_Startup()
$hBitmap_Kl1 = _GDIPlus_BitmapCreateFromFile(@DesktopDir & "\kl1.png")
$hBitmap_Kl2 = _GDIPlus_BitmapCreateFromFile(@DesktopDir & "\kl2.png")
$hDesktop_DC = _WinAPI_GetDC(_WinAPI_GetDesktopWindow())
$hWinHBITMAP = _WinAPI_CreateCompatibleBitmap($hDesktop_DC, 60, 30)
$hBitmap_Erg = _GDIPlus_BitmapCreateFromHBITMAP($hWinHBITMAP)
$hGraphic = _GDIPlus_ImageGetGraphicsContext($hBitmap_Erg)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap_Kl1, 0, 0, 30, 30)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap_Kl2, 30, 0, 30, 30)
_GDIPlus_ImageSaveToFile($hBitmap_Erg, @DesktopDir & '\Ergebnis.png')
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_BitmapDispose($hBitmap_Kl1)
_GDIPlus_BitmapDispose($hBitmap_Kl2)
_GDIPlus_BitmapDispose($hBitmap_Erg)
_WinAPI_DeleteObject($hWinHBITMAP)
_WinAPI_ReleaseDC(_WinAPI_GetDesktopWindow(), $hDesktop_DC)
_GDIPlus_Shutdown()
Vielen dank für die netten Glückwünsche an die ganze Meute hier - Mit meiner Schreibaktivität hier im Forum hat's zwar stark nachgelassen, aber ich bin froh, dass sich doch noch der ein oder andere User an mich erinnert
Gefeiert wurde: Meine Wohnung steht noch, Türen wurde nicht ausgehangen, und alle Fensterscheiben sind noch drin. War ein sehr erfolgreicher Samstag Abend.
Leider konnte ich mein Problem auch damit nicht lösen. Von der Funktion _WinHttpSimpleSSLRequest bekomme ich immer nur einen Fehler "2 - could not send request" zurück. Warum er die Anfrage nicht senden kann konnte ich leider nicht feststellen.
Wir leider auch nicht, ohne deinen Code zu sehen. Zeig uns doch mal die entsprechenden Stellen, wie sie in deinem Script stehen.
Ich vermute ein nicht geöffnetes Connect-Handle, oder ähnliches. Wahrscheinlich eben nur irgendein Flüchtigkeitsfehler.
Der Wink zu WinHTTP ist meiner Meinung nach am sinvollsten. !
#include <WinHTTP.au3>
$hSession = _WinHTTPOpen()
$hConnect = _WinHTTPConnect($hSession, '192.168.1.123', $INTERNET_DEFAULT_HTTPS_PORT)
$aArray = StringSplit(StringStripCR( _
_WinHttpSimpleSSLRequest($hConnect, 'GET', '/hier-die-url') _
), @LF, 3)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hSession)
Ansonsten könntet ihr auch mal _IEDocReadHTML() versuchen (Nein, es ist KEIN _IEBodyReadHTML()).
Da der Rückgabetyp der InputBox immer "String" ist, wie name22 und chip schon sagten, brauchst du folgende Funktionen (bzw. deren RegExp-Äquivalente)
[autoit]StringIsDigit($sString) // StringRegExp($sString, '^\d+$')
StringIsAlNum($sString) // StringRegExp($sString, '^\w+$')
StringIsSpace($sString) // StringRegExp($sString, '^\s+$')
Ich befürchte das INetGetSource entweder nicht bei einer .php datei oder dann bei einer .php mit variablem input funktioniert.
Weder, noch. Beides funktioniert. Square7 blockt lediglich AutoIt Clients.
Hat irgendjemand eine idee wie ich das zum laufen bekomme ? Wenn ich den gefilterten wert direkt in die URL eingebe dann funktioniert das.
Jap. HttpSetUserAgent() vor dem Aufruf von _InetGetSource() nutzen.
Es sei denn jemand weis wie ich ohne die .php Datei einen unescape in Autoit hinbekomme ?
Jap.
Func _URIEncode($sData)
; Prog@ndy
Local $aData = StringSplit(BinaryToString(StringToBinary($sData,4),1),"")
Local $nChar
$sData=""
For $i = 1 To $aData[0]
;~ ConsoleWrite($aData[$i] & @CRLF)
$nChar = Asc($aData[$i])
Switch $nChar
Case 45, 46, 48-57, 65 To 90, 95, 97 To 122, 126
$sData &= $aData[$i]
Case 32
$sData &= "+"
Case Else
$sData &= "%" & Hex($nChar,2)
EndSwitch
Next
Return $sData
EndFunc
Func _URIDecode($sData)
; Prog@ndy
Local $aData = StringSplit(StringReplace($sData,"+"," ",0,1),"%")
$sData = ""
For $i = 2 To $aData[0]
$aData[1] &= Chr(Dec(StringLeft($aData[$i],2))) & StringTrimLeft($aData[$i],2)
Next
Return BinaryToString(StringToBinary($aData[1],1),4)
EndFunc
Gruß
Alles anzeigenAlso bei mir hat Int 2 Parameter:D
Int ( expression [, flag ] )
Flag: [optional] Defines behavior.
Can be one of the following:
Default = the result is auto-sized integer. See remarks.
1 = the result is 32bit integer.
2 = the result is 64bit integer.Wurde das bei neueren AutoIt Versionen vielleicht weggelassen?
Hab v3.3.8.1Und mit nem 32bit Integer läuft das bei mir auch so, wie ichs geschrieben hab...
My fault. Ich torkel noch auf 3.3.6.1 rum - da ist AutoIt scheinbar noch etwas blöd, was so große Zahlen angeht.
wenn ich ArrayDsiplay benutz zeigts mir 100 Reihen und 64 spalten an, solta aber umgedreht sein
[autoit] Zitat von Parameter$iTranspose [optional] Wenn gesetzt, werden bei einem 2D-Array die erste Dimension als Spalten und die zweite Dimension als Zeilen dargestellt. Per Standard ist es umgekehrt.
_ArrayDisplay($aArray, "Array: ListView Display" , -1 , 1)
[/autoit]Ich hab mir jetzt nur kurz das erste Script angeschaut, aber es sollte in Zeile 16 eher so aussehn:
War mir an der Stelle etwas unsicher, da der Defaultwert des Parameters $iFormat ja GDIP_PXF32RGB ist. Also 4 Byte pro Farbe, ohne Alphakanal.
Wie gesagt - ich hatte es zu so später Stunde nicht mehr getestet.
Jetzt bin ich aber etwas über deine Korrektur verwundert. Int() hat nämlich nur einen Parameter, und 0xFF000000 wird von AutoIt generell als negativ interpretiert. Hier ist es besser mit Hex() zu arbeiten. Aber du hattest natürlich Recht - mein Script lief auch nicht.
[autoit]If Hex(DllStructGetData($tPixelData, 1, $iIndex)) = "FF000000" Then
[/autoit]Gruß