So, wie sieht es mit dieser Version für Win7 aus?
Beiträge von UEZ
-
-
UEZ :
In unserer SB-Konversation gab es doch mal eine Variante, die auch auf Win7 lief :
Was war denn da anders ?
Nun ja, wenn ich mich noch richtig erinnern kann, dann hatte ich den Check für GetLatestNumber manuell eingetragen, weil ich dachte, dass PCRE Probleme macht, aber hier scheint was mit WinHTTP und Win7 nicht sauber zu funzen. Vielleicht der zweite Aufruf von WinHTTP...
-
Hmm, das scheint wohl an der Windows Version zu liegen, da der Output von GML doch gut aussieht. Ich frage mich, warum das mit Win7 nicht funzt...

-
Ok, wie sieht es mit dieser Version aus? Einfach in das Verzeichnis kopieren, wo die Bass.dlls liegen.
-
Vielen Dank BugFix . Sieht so aus, als ob WinHTTP nicht initialisiert wird, und somit auch der Source Code der Seite nicht gelesen werden kann. Auch die Exe mal mit Admin Rechten gestartet?
Da muss ich mir mal WinHTTP nochmals anschauen, warum das nicht bei euch funzt...
-
Moin,
ich habe quasi ein Radio Station Player geschrieben, aber wie es aussieht, läuft das Tool nicht auf anderen PCs. Da ich schlecht einen auf meinem PC laufenden Code debuggen kann, bräuchte ich euer Hilfe.
In dem angehängten Zip Archiv befinden sich folgende Dateien:
Bass.dll
Bass64.dll
Radio Station remix.kwed.org x64.exe
Radio Station remix.kwed.org x86.exe
Beim Starten sollte sich die CMD öffen und einige Infos ausgegeben werden:
Z.B:
HTML
Alles anzeigenInitializing WinHTTP... Initializing Bass.dll... Getting latest song number... hSession= 7952936 hConnect= 8252712 hRequest= 8253000 <!-- *** DEBUG: Last visit set. Timestamp: - Converted: 20210315090004 *** --><!DOCTYPE html> <html lang="en"> <head> ... (HTML Source Code von der Seite remix.kwed.org) <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"ad127905cb","applicationID":"929457740","transactionName":"Z1ZWY0VZWUBVBkINDF4cYUVeF15dUABOShNYQw==","queueTime":0,"applicationTime":26,"atts":"SxFVFQ1DSk4=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html> sSearch = <a class="date" href="/remix/ iPos = 22058 iLatestNumber = 6342 Press any keyKönnt ihr bitte die Ausgabe posten? Vielleicht auch mal mir Admin Rechten starten!
DANKE

Die neuste Version gibt's es immer hier: Radio Station
-
-
Probiere es mal damit:
AutoIt
Alles anzeigen... _WinAPI_SetDPIAwareness() Local Const $hFullScreen = WinGetHandle("[TITLE:Program Manager;CLASS:Progman]") Local Const $aFullScreen = WinGetPos($hFullScreen), $iPosMainScreen = Abs($aFullScreen[0]) Local Const $iW = $aFullScreen[2], $iH = $aFullScreen[3] Local Const $hBitmap = _ScreenCapture_Capture("", $aFullScreen[0], $aFullScreen[1], $iW - 1, $iH - 1, False) Local Const $hGUI = GUICreate("", $iW, $iH, $aFullScreen[0], $aFullScreen[1], $WS_POPUP, $WS_EX_TOPMOST) Local Const $iPic = GUICtrlCreatePic("", 0, 0, $iW, $iH) _WinAPI_DeleteObject(GUICtrlSendMsg($iPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hBitmap)) GUISetState() ... -
So was vielleicht?
AutoIt
Alles anzeigen#include <GUIConstantsEx.au3> #include <ScreenCapture.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> ; enum _PROCESS_DPI_AWARENESS -> https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx Global Enum $DPI_AWARENESS_INVALID = -1, $PROCESS_DPI_UNAWARE = 0, $PROCESS_SYSTEM_DPI_AWARE, $PROCESS_PER_MONITOR_DPI_AWARE Global Enum $Context_UnawareGdiScaled = -5, $Context_PerMonitorAwareV2, $Context_PerMonitorAware, $Context_SystemAware, $Context_Unaware Global Const $WM_DPICHANGED = 0x02E0, $WM_GETDPISCALEDSIZE = 0x02E4 _WinAPI_SetDPIAwareness() Local Const $hBitmap = _ScreenCapture_Capture("", 0, 0, @DesktopWidth - 1, @DesktopHeight - 1, False) Local Const $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOPMOST) Local Const $iPic = GUICtrlCreatePic("", 0, 0, @DesktopWidth - 1, @DesktopHeight - 1) _WinAPI_DeleteObject(GUICtrlSendMsg($iPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hBitmap)) GUISetState() Do If GUIGetMsg() = $GUI_EVENT_CLOSE Then _WinAPI_DeleteObject($hBitmap) GUIDelete($hGUI) Exit EndIf Until False Func _WinAPI_SetDPIAwareness($hGUI = 0) Switch @OSBuild Case 6000 To 9199 If Not DllCall("user32.dll", "bool", "SetProcessDPIAware") Then Return SetError(1, 0, 0) ;requires Vista+ / Server 2008+ Return 1 Case 9200 To 13999 _WinAPI_SetProcessDpiAwareness($PROCESS_PER_MONITOR_DPI_AWARE) ;requires Win 8.1+ / Server 2012 R2+ If @error Then Return SetError(2, 0, 0) Return 1 Case @OSBuild > 13999 #cs Context_Unaware = ((DPI_AWARENESS_CONTEXT)(-1)), Context_SystemAware = ((DPI_AWARENESS_CONTEXT)(-2)), Context_PerMonitorAware = ((DPI_AWARENESS_CONTEXT)(-3)), Context_PerMonitorAwareV2 = ((DPI_AWARENESS_CONTEXT)(-4)), Context_UnawareGdiScaled = ((DPI_AWARENESS_CONTEXT)(-5)) #ce _WinAPI_SetProcessDpiAwarenessContext($Context_PerMonitorAwareV2, $hGUI, 1) If @error Then Return SetError(3, @error, 0) Return 1 EndSwitch Return -1 EndFunc ;==>_WinAPI_SetDPIAwareness Func _WinAPI_SetProcessDpiAwareness($DPIAware) ;https://docs.microsoft.com/en-us/windows/desktop/api/shellscalingapi/nf-shellscalingapi-setprocessdpiawareness Local $aResult = DllCall("Shcore.dll", "long", "SetProcessDpiAwareness", "int", $DPIAware) ;requires Win 8.1+ / Server 2012 R2+ If @error Then Return SetError(1, 0, 0) Return 1 EndFunc ;==>_WinAPI_SetProcessDpiAwareness Func _WinAPI_SetProcessDpiAwarenessContext($DPIAwareContext = $Context_PerMonitorAware, $hGUI = 0, $iMode = 1) $DPIAwareContext = ($DPIAwareContext < -5) ? -5 : ($DPIAwareContext > -1) ? -1 : $DPIAwareContext $iMode = ($iMode < 1) ? 1 : ($iMode > 3) ? 3 : $iMode Switch $iMode Case 1 Local $hDC = _WinAPI_GetDC($hGUI) Local $aResult1 = DllCall("user32.dll", "int", "GetDpiFromDpiAwarenessContext", "ptr", $hDC) ;requires Win10 v1803+ / Server 2016+ If @error Or Not IsArray($aResult1) Then Return SetError(11, 0, 0) _WinAPI_ReleaseDC(0, $hDC) ;https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setprocessdpiawarenesscontext Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult1[0] + $DPIAwareContext) ;requires Win10 v1703+ / Server 2016+ If @error Or Not IsArray($aResult) Then Return SetError(12, 0, 0) Case 2 ;~ If Not $hGUI Then $hGUI = WinGetHandle(AutoItWinGetTitle()) Local $aResult2 = DllCall("user32.dll", "int", "GetWindowDpiAwarenessContext", "ptr", $hGUI) ;requires Win10 v1607+ / no server support If @error Or Not IsArray($aResult2) Then Return SetError(21, 0, 0) Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult2[0] + $DPIAwareContext) ;requires Win10 v1703+ / Server 2016+ If @error Or Not IsArray($aResult) Then Return SetError(22, 0, 0) Case 3 Local $aResult31 = DllCall("user32.dll", "ptr", "GetThreadDpiAwarenessContext") ;requires Win10 v1607+ / no server support If @error Or Not IsArray($aResult31) Then Return SetError(31, 0, 0) Local $aResult32 = DllCall("user32.dll", "int", "GetAwarenessFromDpiAwarenessContext", "ptr", $aResult31[0]) ;requires Win10 v1607+ / no server support If @error Or Not IsArray($aResult32) Then Return SetError(32, 0, 0) Local $aResult = DllCall("user32.dll", "Bool", "SetThreadDpiAwarenessContext", "int", $aResult32[0] + $DPIAwareContext) ;requires Win10 v1607+ / no server support If @error Or Not IsArray($aResult) Then Return SetError(33, 0, 0) EndSwitch Return 1 EndFunc ;==>_WinAPI_SetProcessDpiAwarenessContext -
Ich würde es so machen:
Python
Alles anzeigenfrom strutils import toHex type ARGB* {.union.} = object c*: tuple[b, g, r, a: uint8] argb*: uint32 var color: ARGB color.c.r = 0xAA color.c.g = 0xBB color.c.b = 0xCC color.c.a = 0xFF echo color.argb.toHex color.argb = 0x00F0D0C0 echo color.argb.toHex echo color.c.r.toHexEinfach um die 32-bit Bandbreite auszunutzen, also mit Alpha Kanal.
Ich hatte auch lange gerätselt, was Union ist, bis ich mir das mal näher angeschaut habe und für diesen Zweck als sehr nützlich gefunden habe.
-
Union bedeutet einfach, dass ein Speicherbereich in der Strukt (Type) geteilt (shared) wird.
In dem FB Beispiel ist die Strukt nur 4 Bytes groß, d.h. man kann direkt in r, g, b, a schreiben und anschließend col auslesen (32 Bit Wert), ohne vorher die Umwandlung durchführen zu müssen.
Ich weiß nicht, ob NIM diese Datenstruktur überhaupt implementiert hat.
-
Hi Oscar,
du könntest UNION in TYPE verwenden, um r, g, b, a mit z.b. col als Int32 zu vereinen. Damit sparst du dir die Umwandlung von den R, G, B, A Werten zu Int32.
Sowas benutze ich mit Freebasic.
Code
Alles anzeigenUnion tColor As Ulong col Type As Ubyte b, g, r, a End Type End Union Dim As tColor Farben Farben.r = 16 Farben.g = 32 Farben.b = 64 Farben.a = 255 ? "Farbe: " & Hex(Farben.col, 8) SleepOutput:
-
Nächste Woche fängt die BL an. Also, wer hat noch nicht, we will noch mal.
"Bitte einsteigen. So, gleich geht's los, neue Runde, wir starten, alles klar Leute, es geht los, ab geht's, heeeyyy!" -
Hast du jetzt noch den DFB-Pokal dazugenommen?
Yep. Am Anfang ist es eher mühselig zu tippen, aber mit jedem Fortschritt wird's weniger.
-
-
Coole Sache

Ich hatte mit dem Titel erst Probleme, hatte an Kabeljau gedacht.
Aber nach dem Googlen habe ich mehr erfahren über De-Casteljau...Könnte ich für FB gut gebrauchen.
-
Feine Sache, kann man bestimmt mal gebrauchen!

-
Ist denn schon bekannt, ob die Spiele wieder mit Zuschauern ausgetragen werden? Ich hatte dann kein Interesse mehr zu tippen, weil die Spiele schauen super langweilig wurde.
Keine Ahnung, aber tippen kannst du doch ohne die Spiele zu sehen!

Ich schaue mir i.d.R. kaum Spiele an, aber tippe immer.

Wettkampf Charakter eben...
-
Welche Bonusfrage meinst du?
Hmm, das ist jetzt komisch, denn das Datum habe ich per C/P eingefügt. Nun steht auch die erste Bonus Frage auf 12.09.20 12:00.
Nun ja, jetzt haben wir 6 Wochen Zeit bis zum Start...
-
Moin, moin,
es ist wieder mal soweit die nächste Runde zu eröffnen!
Wer Lust und Laune hat mit zu tippen, einfach https://www.kicktipp.de/autoit-bl kostenlos registrieren und lostippen.
Die Teilnehmer vom letzten Kicktipp, die bis zum Ende durchgehalten haben, sind wieder automatisch dabei. Wenn nicht erwünscht, dann bitte mir Bescheid geben!
Die erste Bonus Frage muss bis zum 12.09.20 12:00 Uhr eingeben sein, ansonsten ist noch ein wenig mehr Zeit für den Rest.
Viel Spaß und viel Glück!
Herzlichen Glückwunsch an SirChrizm für den Sieg!
