Coding

Ionic – Fast Start

Table of Contents

Install Ionic

You have to Install nodejs first! To use “npm”

				
					npm -version        // Check npm Version
node --version      // Check node Version
				
			

Then run in console as ADMIN

				
					npm install -g @ionic/cli           // install ionic global on your system
				
			
				
					npm uninstall -g ionic              // try this if it didn't work
npm install -g @ionic/cli
				
			

First Ionic App

				
					ionic start myApp tabs
				
			
				
					cd myApp                    // navigate to dir
ionic serve                 // start webserver
				
			
Add new componets
				
					ionic g                     // with console inputs
				
			
				
					ionic g page "NAME_PAGE"    // Direct
				
			

Deploy for Android

				
					ionic build				// build if never built
ionic cap add android	// add android support if not added while start
ionic cap copy			// Builds and Copy Web Assets to Capacitor native platform
ionic cap sync			// update Project Data
ionic cap open android  // opens Project in Android Studio
				
			
Debug
				
					adb devices             //checks android device connection
				
			

AutoIt- Pinger

Table of Contents

Description

Little Ping Overlay

Downloads

When you Download the Pinger.exe – Windows will tell you the Program is a Trojan. Just compile it yourself with SciTe if you don’t trust.

INFO LINKS

Code

				
					#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=ico_apM_icon.ico
#AutoIt3Wrapper_Res_Description=Pinging tool
#AutoIt3Wrapper_Res_Fileversion=0.0.0.7
#AutoIt3Wrapper_Res_ProductVersion=0.0.0.7
#AutoIt3Wrapper_Res_CompanyName=4Wobi
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#cs ----------------------------------------------------------------------------------------------

Program: Ping-Overlay
Author:	Wobi
Date:	12.06.2021
Version: 0.0.0.7

	Copyright (C) 2021 4Wobi.com - All rights reserved.

	UPDATE: LOG System
			PING Adresses Selection

#ce ----------------------------------------------------------------------------------------------

#include-once
#include <WinApi.au3>
#include <MsgBoxConstants.au3>
#include <GuiTab.au3>
#include <lib\ColorPicker.au3>
#include <WinAPISysWin.au3>
#include <Constants.au3>
#include <GUIConstants.au3>
#include <Date.au3>
#include <TrayConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <SliderConstants.au3>
#include <GuiListBox.au3>

Opt('MustDeclareVars', 1)
Opt("TrayOnEventMode", 0)
Opt("TrayMenuMode", 3)
Opt("TrayAutoPause", 0)

TraySetIcon("ico_apM_icon.ico")
TraySetClick(16)


#Region ### ------ Global Variable ------ ###

Global $VERSION = "0.0.0.7"
Global $VDate = "15.06.2021"

Dim Const $logpath = @ScriptDir & "\log\" & _NowDate() & ".log"
Dim Const $settingspath = @ScriptDir & "\config\" & "settings.ini"
Global $is_minimized = 0
Global $SleepTime = 1000
Global $ActualTime = TimerInit()
Global $DiffTime
Global $StartPing = 0
Global $gSleep = 1
Global $maxping = 1000
Global $GUI_cor_PingOverlayW = 71
Global $GUI_cor_PingOverlayH = 38
Global $ZeroPing = 0
Global $ZeroPingMin = 9
Global $ZeroPingMax = 10
Global $DebugGuiState = 0
Global $is_overlayd

; Create custom (4 x 5) color palette
Dim $aPalette[20] = _
		[0xFFFFFF, 0x000000, 0xC0C0C0, 0x808080, _
		0xFF0000, 0x800000, 0xFFFF00, 0x808000, _
		0x00FF00, 0x008000, 0x00FFFF, 0x008080, _
		0x0000FF, 0x000080, 0xFF00FF, 0x800080, _
		0xC0DCC0, 0xA6CAF0, 0xFFFBF0, 0xA0A0A4]

#EndRegion ### ------ Global Variable ------ ###

#Region ### Folders ###
If FileExists(@ScriptDir & "\log") Then
Else
	DirCreate(@ScriptDir & "\log")
EndIf

If FileExists(@ScriptDir & "\config") Then
Else
	DirCreate(@ScriptDir & "\config")
EndIf
#EndRegion ### Folders ###

#Region ### Load_File ###
; Create Variable
Global $pingVal = 500
Global $DebugState = 0
Global $pingadress = "8.8.8.8"
Global $PingOverlayOffsetX = 50
Global $PingOverlayOffsetY = $PingOverlayOffsetX
Global $PingOVerlayColorTrans = 0x009DE7
Global $OverlayLabelColor = 0xFFFF00
Global $PingBGColor = 0x000000
Global $OverlayPingLabelLow = 0xFF0000
Global $SavePingtoFile = 0
Global $Debug_AutoScoll = 1
Global $pingTransVal = 255
Global $pingPos = 0
Global $OverlayActive = 1
Global $OVerlayBgActive = 0
Global $PingFont = "Rubik"

loadSettings()
#EndRegion ### Load_File ###

#Region ### ------ GUI ------ ###
Global $GUI_f_Pinger = GUICreate("4Wobi - Pinger", 256, 178, 317, 231)
Global $GUI_smi_Program = GUICtrlCreateMenu("&Program")
Global $GUI_smi_Start = GUICtrlCreateMenuItem("Start" & @TAB & "F5", $GUI_smi_Program)
Global $GUI_smi_Stop = GUICtrlCreateMenuItem("&Stop" & @TAB & "F6", $GUI_smi_Program)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $GUI_smi_Save = GUICtrlCreateMenuItem("Save Settings", $GUI_smi_Program)
Global $GUI_smi_ = GUICtrlCreateMenuItem("", $GUI_smi_Program)
Global $GUI_smi_Exit = GUICtrlCreateMenuItem("&Exit", $GUI_smi_Program)
Global $GUI_smi_Options = GUICtrlCreateMenu("&Options")
Global $GUI_smi_AlwaysOnTop = GUICtrlCreateMenuItem("&AlwaysOnTop", $GUI_smi_Options)
Global $GUI_smi_Debug = GUICtrlCreateMenuItem("Debug", $GUI_smi_Options)
Global $GUI_smi_Help = GUICtrlCreateMenu("&Help")
Global $GUI_smi_HelpSub = GUICtrlCreateMenuItem("Help" & @TAB & "F1", $GUI_smi_Help)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $GUI_smi_About = GUICtrlCreateMenuItem("&About", $GUI_smi_Help)
Global $GUI_smi_Update = GUICtrlCreateMenuItem("&Update", $GUI_smi_Help)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $GUI_sb = _GUICtrlStatusBar_Create($GUI_f_Pinger, -1, "", -1, $WS_EX_STATICEDGE)
Global $aParts[] = [55, 135, 190, 250]
_GUICtrlStatusBar_SetParts($GUI_sb, $aParts)
_GUICtrlStatusBar_SetText($GUI_sb, "Status", 0)
_GUICtrlStatusBar_SetText($GUI_sb, "Ping", 1)
_GUICtrlStatusBar_SetText($GUI_sb, "ErrorMsg", 2)
_GUICtrlStatusBar_SetText($GUI_sb, "", 3)
Global $GUI_t_MainTab = GUICtrlCreateTab(0, 0, 249, 137)
Global $GUI_ts_Ping = GUICtrlCreateTabItem("Ping")
Global $GUI_g_Ping = GUICtrlCreateGroup("Ping", 4, 25, 241, 106)
Global $GUI_i_Delay = GUICtrlCreateInput($pingVal, 52, 49, 106, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $GUI_l_Delay = GUICtrlCreateLabel("Delay", 12, 51, 31, 17)
Global $GUI_cb_SavePingToFile = GUICtrlCreateCheckbox("Save Data", 160, 49, 80, 17)
Global $GUI_l_Adress = GUICtrlCreateLabel("Adress", 12, 75, 36, 17)
Global $GUI_i_Adress = GUICtrlCreateInput("8.8.8.8", 52, 73, 106, 21)
Global $GUI_comb_Address = GUICtrlCreateCombo("Default", 52, 97, 106, 21, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Dead by Daylight|Costum")
Global $GUI_b_Edit = GUICtrlCreateButton("Edit", 170, 97, 59, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $GUI_ts_Overlay = GUICtrlCreateTabItem("Overlay")
Global $GUI_g_Overlay = GUICtrlCreateGroup("Overlay", 4, 25, 241, 105)

Global $GUI_cb_Overlay = GUICtrlCreateCheckbox("Overlay", 10, 40, 57, 17)
Global $GUI_cb_OverlayBG = GUICtrlCreateCheckbox("Background", 68, 40, 80, 17)

Global $GUI_rb_TopLeft = GUICtrlCreateRadio("TopLeft", 12, 94, 57, 17)
Global $GUI_rb_TopRight = GUICtrlCreateRadio("TopRight", 84, 94, 65, 17)
Global $GUI_rb_BottomLeft = GUICtrlCreateRadio("BottomLeft", 12, 110, 65, 17)
Global $GUI_rb_BottomRight = GUICtrlCreateRadio("BottomRight", 84, 110, 73, 17)

Global $GUI_l_OverlayOffSetX = GUICtrlCreateLabel("X", 190, 40, 11, 17)
Global $GUI_l_OverlayOffSetY = GUICtrlCreateLabel("Y", 190, 64, 11, 17)
Global $GUI_i_OverlayOffSetX = GUICtrlCreateInput($PingOverlayOffsetX, 205, 40, 33, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $GUI_i_OverlayOffSetY = GUICtrlCreateInput($PingOverlayOffsetY, 205, 64, 33, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))

; Create Picker2 with custom color palette
Global $GUI_cp_PingLabel = _GUIColorPicker_Create('', 10, 60, 50, 23, $OverlayLabelColor, BitOR($CP_FLAG_CHOOSERBUTTON, $CP_FLAG_ARROWSTYLE, $CP_FLAG_MOUSEWHEEL), $aPalette, 4, 5, 0, '', 'More...')
Global $GUI_cp_PingBG = _GUIColorPicker_Create('', 75, 60, 50, 23, $PingBGColor, BitOR($CP_FLAG_CHOOSERBUTTON, $CP_FLAG_ARROWSTYLE, $CP_FLAG_MOUSEWHEEL), $aPalette, 4, 5, 0, '', 'More...')
Global $GUI_s_OverlayTP = GUICtrlCreateSlider(168, 96, 70, 29, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_NOTICKS))
GUICtrlSetLimit(-1, 255, 0)
GUICtrlSetData(-1, $pingTransVal)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateTabItem("")
Dim $GUI_f_Pinger_AccelTable[3][2] = [["{F5}", $GUI_smi_Start], ["{F6}", $GUI_smi_Stop], ["{F1}", $GUI_smi_HelpSub]]
GUISetAccelerators($GUI_f_Pinger_AccelTable)

If $DebugState = 1 Then
	$DebugGuiState = 1

	Global $GUI_ts_Debug = GUICtrlCreateTabItem("Debug")
	Global $GUI_g_Overlay = GUICtrlCreateGroup("Debug", 4, 25, 241, 105)

	Local $aTabs[4] = [3, 33, 43, 65] ;Tabs in list
	Global $GUI_list_Debug = GUICtrlCreateList("", 10, 40, 228, 90, BitOR($WS_BORDER, $WS_VSCROLL, $LBS_USETABSTOPS))
	GUICtrlSetLimit($GUI_list_Debug, 5)
	_GUICtrlListBox_SetTabStops($GUI_list_Debug, $aTabs)

	_GUICtrlListBox_BeginUpdate($GUI_list_Debug)
	_GUICtrlListBox_InsertString($GUI_list_Debug, "Time" & @TAB & " - " & @TAB & "Message")
	_GUICtrlListBox_EndUpdate($GUI_list_Debug)
EndIf

GUISetState(@SW_SHOW)
#EndRegion ### ------ GUI ------ ###

#Region ### ------ PingGUI ------ ###
Global $PingOverlay = GUICreate("4Wobi-PingerOverlay", $GUI_cor_PingOverlayW, $GUI_cor_PingOverlayH, 0, 0, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOOLWINDOW)
WinMove($PingOverlay, "", 0 + $PingOverlayOffsetX, 0 + $PingOverlayOffsetY)
GUISetBkColor($PingOVerlayColorTrans)
_WinAPI_SetLayeredWindowAttributes($PingOverlay, $PingOVerlayColorTrans, 255)    ; Bildhintergrund transparent machen.
WinSetOnTop($PingOverlay, "", $WINDOWS_ONTOP)
Global $GUI_l_PingOverlay = GUICtrlCreateLabel("Ping", 0, 0, 71, 42, $SS_CENTER)
GUICtrlSetFont(-1, 25, 700, 0, $PingFont)
GUICtrlSetColor(-1, $OverlayLabelColor)
;GUISetState(@SW_HIDE, $PingOverlay)
GUISetState(@SW_SHOW, $PingOverlay)
#EndRegion ### ------ PingGUI ------ ###

Global $Tray_mi_OpenClose = TrayCreateItem("Open/Close")
Global $Tray_m_Overlay = TrayCreateMenu("Overlay")
Global $Tray_mi_HideShowOverlay = TrayCreateItem("Hide/Show", $Tray_m_Overlay)
Global $Tray_mi_StartStopOverlay = TrayCreateItem("Start/Stop", $Tray_m_Overlay)
TrayCreateItem("")
Global $Tray_mi_Exit = TrayCreateItem("Exit")

TraySetState($TRAY_ICONSTATE_SHOW)
TraySetToolTip("4Wobi - Pinger")

setGUI()

While 1
	Sleep($gSleep)

	Local $nMsg = GUIGetMsg()
	If $nMsg <> 0 Then
		If $nMsg <> -11 Then
			debug("$nMsg:" & $nMsg)
		EndIf
	EndIf

	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $GUI_EVENT_MINIMIZE
			GUISetState(@SW_HIDE, $GUI_f_Pinger)
			$is_minimized = 1
			debug("$is_minimized: " & $is_minimized)

		Case $GUI_smi_Exit
			Exit

		Case $GUI_smi_Start
			StartPing()
		Case $GUI_smi_Stop
			StopPing()

		Case $GUI_smi_Save
			saveSettings()

		Case $GUI_smi_AlwaysOnTop
			AoT()

		Case $GUI_smi_Debug
			DebugTab()

		Case $GUI_smi_HelpSub
			ShellExecute(@ScriptDir & "\4Wobi-Pinger.chm")

		Case $GUI_i_Delay
			$pingVal = GUICtrlRead($GUI_i_Delay)
			debug("$GUI_i_Delay: " & GUICtrlRead($GUI_i_Delay))

		Case $GUI_i_Adress
			InputAddress()

		Case $GUI_comb_Address
			debug("$GUI_comb_Address: " & GUICtrlRead($GUI_comb_Address))
			AddressComb()

		Case $GUI_cp_PingLabel
			$OverlayLabelColor = _GUIColorPicker_GetColor($GUI_cp_PingLabel)
			GUICtrlSetColor($GUI_l_PingOverlay, $OverlayLabelColor)

		Case $GUI_cp_PingBG
			$PingBGColor = _GUIColorPicker_GetColor($GUI_cp_PingBG)
			If GUICtrlRead($GUI_cb_OverlayBG) = 1 Then
				GUISetBkColor($PingBGColor, $PingOverlay)
			EndIf

		Case $GUI_smi_About
			AboutFunc()

		Case $GUI_cb_SavePingToFile
			Switch GUICtrlRead($GUI_cb_SavePingToFile)
				Case 1
					$SavePingtoFile = 1
				Case 4
					$SavePingtoFile = 0
			EndSwitch

		Case $GUI_s_OverlayTP
			_WinAPI_SetLayeredWindowAttributes($PingOverlay, $PingOVerlayColorTrans, GUICtrlRead($GUI_s_OverlayTP))
			$pingTransVal = GUICtrlRead($GUI_s_OverlayTP)
			debug(GUICtrlRead($GUI_s_OverlayTP))
		Case $GUI_rb_TopLeft
			WinMove($PingOverlay, "", 0 + $PingOverlayOffsetX, 0 + $PingOverlayOffsetY)
		Case $GUI_rb_TopRight
			WinMove($PingOverlay, "", @DesktopWidth - $PingOverlayOffsetX - $GUI_cor_PingOverlayW, 0 + $PingOverlayOffsetY)
		Case $GUI_rb_BottomLeft
			WinMove($PingOverlay, "", 0 + $PingOverlayOffsetX, @DesktopHeight - $PingOverlayOffsetY - $GUI_cor_PingOverlayH)
		Case $GUI_rb_BottomRight
			WinMove($PingOverlay, "", @DesktopWidth - $PingOverlayOffsetX - $GUI_cor_PingOverlayW, @DesktopHeight - $PingOverlayOffsetY - $GUI_cor_PingOverlayH)

		Case $GUI_cb_Overlay
			Switch GUICtrlRead($GUI_cb_Overlay)
				Case 1
					GUISetState(@SW_SHOW, $PingOverlay)
					$is_overlayd = 0
					$OverlayActive = 1
				Case 4
					GUISetState(@SW_HIDE, $PingOverlay)
					$is_overlayd = 1
					$OverlayActive = 0
			EndSwitch

		Case $GUI_cb_OverlayBG
			Switch GUICtrlRead($GUI_cb_OverlayBG)
				Case 1
					GUISetBkColor($PingBGColor, $PingOverlay)
					$OVerlayBgActive = 1
				Case 4
					GUISetBkColor($PingOVerlayColorTrans, $PingOverlay)
					$OVerlayBgActive = 0
			EndSwitch

		Case $GUI_i_OverlayOffSetX
			OverlayOffset()

		Case $GUI_i_OverlayOffSetY
			OverlayOffset()

	EndSwitch


	$nMsg = TrayGetMsg()
	Switch $nMsg

		Case $TRAY_EVENT_PRIMARYUP
			ToggleTray()

		Case $Tray_mi_Exit
			Exit

		Case $Tray_mi_OpenClose
			ToggleTray()

		Case $Tray_mi_HideShowOverlay
			ToggleOverlay()

		Case $Tray_mi_StartStopOverlay
			Switch $StartPing
				Case 0
					StartPing()
				Case 1
					StopPing()
			EndSwitch

	EndSwitch

	If $StartPing = 1 Then
		UDF_Ping()
	EndIf
WEnd

Func StartPing()
	$StartPing = 1 ;TurnOnPingUDF

	GUICtrlSetState($GUI_smi_Start, $GUI_DISABLE)
	GUICtrlSetState($GUI_smi_Stop, $GUI_ENABLE)
	_GUICtrlStatusBar_SetText($GUI_sb, "Running", 0)         ;ChangeStatusBar(0) to Running
	_GUICtrlStatusBar_SetText($GUI_sb, "", 2)

	debug("$StartPing: " & $StartPing)
EndFunc   ;==>StartPing


Func StopPing()
	$StartPing = 0 ;TurnOffPingUDF
	GUICtrlSetState($GUI_smi_Stop, $GUI_DISABLE)
	GUICtrlSetState($GUI_smi_Start, $GUI_ENABLE)
	_GUICtrlStatusBar_SetText($GUI_sb, "Stoped", 0) ;ChangeStatusBar(0) to Stoped(0)
	_GUICtrlStatusBar_SetText($GUI_sb, "Ping", 1) ;ChangeStatusBar(1) RemovePing
	GUICtrlSetData($GUI_l_PingOverlay, "Stop") ;ChangeStateOverlay Stop
	TraySetToolTip("4Wobi - Pinger: Stoped")

	debug("$StartPing: " & $StartPing)
EndFunc   ;==>StopPing

Func UDF_Ping()
	If $ZeroPing >= $ZeroPingMin And $ZeroPing < $ZeroPingMax Then
		$SleepTime = 1000 * $ZeroPing
	ElseIf $ZeroPing >= $ZeroPingMax Then
		$SleepTime = 1000 * $ZeroPingMax
	Else
		$SleepTime = (GUICtrlRead($GUI_i_Delay) + 10)
	EndIf

	$DiffTime = TimerDiff($ActualTime)
	If $DiffTime > $SleepTime Then

		$ActualTime = TimerInit()

		If _IsInternetConnected() = True Then
			debug("IsInternet=TRUE")
		Else
			debug("IsInternet=FALSE")
		EndIf

		Local $ping = Ping($pingadress, ($GUI_i_Delay))


		If $ping Then
			debug("Pinging: " & $ping)
			_GUICtrlStatusBar_SetText($GUI_sb, "", 2)
		Else
			Local $pingerror = @error
			debug("PingErrorCode: " & @error)

			If $pingerror = 1 Then
				_GUICtrlStatusBar_SetText($GUI_sb, "Error 1", 1)
				StopPing()
				Return
			ElseIf $pingerror = 2 Then
				_GUICtrlStatusBar_SetText($GUI_sb, "Error 2", 2)

			ElseIf $pingerror = 3 Then
				_GUICtrlStatusBar_SetText($GUI_sb, "Error 3", 2)
				StopPing()
				Return
			ElseIf $pingerror = 4 Then
				_GUICtrlStatusBar_SetText($GUI_sb, "Error 4", 2)
				StopPing()
				MsgBox(48 + 4096, "Error 4", "Please Check Your Ping - Address!", 0, $GUI_f_Pinger)
				GUICtrlSetBkColor($GUI_i_Adress, 0xFF0000)
				Return
			EndIf
		EndIf

		If $ping = 0 Then
			$ZeroPing += 1
		Else
			$ZeroPing = 0
		EndIf

		If $ZeroPing >= $ZeroPingMin And $ZeroPing < $ZeroPingMax Then
			debug("$ZeroPing: " & $ZeroPing)
			_GUICtrlStatusBar_SetText($GUI_sb, $ZeroPing & "s", 3)
			GUICtrlSetFont(-1, 25, 700, 8, "MS Sans Serif")
		ElseIf $ZeroPing >= 30 Then
			debug("$ZeroPing: " & $ZeroPing)
			_GUICtrlStatusBar_SetText($GUI_sb, "30s", 3)
			GUICtrlSetFont(-1, 25, 700, 8, "MS Sans Serif")
		Else
			_GUICtrlStatusBar_SetText($GUI_sb, "", 3)
			GUICtrlSetFont(-1, 25, 700, 0, "MS Sans Serif")
		EndIf

		GUICtrlSetData($GUI_l_PingOverlay, $ping)

		If $ping < 1 Then
			GUICtrlSetColor($GUI_l_PingOverlay, $OverlayPingLabelLow)
		Else
			GUICtrlSetColor($GUI_l_PingOverlay, $OverlayLabelColor)
		EndIf

		_GUICtrlStatusBar_SetText($GUI_sb, "Ping " & $ping & "ms", 1)

		TraySetToolTip("4Wobi - Pinger: " & $ping & "ms")

		If $SavePingtoFile = 1 Then
			Local $message = _Now() & @TAB & $pingadress & @TAB & $ping
			FileWriteLine($logpath, $message)
			debug("Save to File: " & @TAB & $logpath & @CRLF & @TAB & @TAB & @TAB & "msg:" & $message)
		EndIf
	EndIf
EndFunc   ;==>UDF_Ping

Func SavePingToFile()
EndFunc

Func InputAddress()
	$pingadress = GUICtrlRead($GUI_i_Adress)
	GUICtrlSetBkColor($GUI_i_Adress, 0xFFFFFF)
	GUICtrlSetData($GUI_comb_Address, "Costum")
EndFunc   ;==>InputAddress

Func OverlayOffset()
	$PingOverlayOffsetX = GUICtrlRead($GUI_i_OverlayOffSetX)
	$PingOverlayOffsetY = GUICtrlRead($GUI_i_OverlayOffSetY)

	If GUICtrlRead($GUI_rb_TopLeft) = $GUI_CHECKED Then
		WinMove($PingOverlay, "", 0 + $PingOverlayOffsetX, 0 + $PingOverlayOffsetY)

	ElseIf GUICtrlRead($GUI_rb_TopRight) = $GUI_CHECKED Then
		WinMove($PingOverlay, "", @DesktopWidth - $PingOverlayOffsetX - $GUI_cor_PingOverlayW, 0 + $PingOverlayOffsetY)

	ElseIf GUICtrlRead($GUI_rb_BottomLeft) = $GUI_CHECKED Then
		WinMove($PingOverlay, "", 0 + $PingOverlayOffsetX, @DesktopHeight - $PingOverlayOffsetY - $GUI_cor_PingOverlayH)

	ElseIf GUICtrlRead($GUI_rb_BottomRight) = $GUI_CHECKED Then
		WinMove($PingOverlay, "", @DesktopWidth - $PingOverlayOffsetX - $GUI_cor_PingOverlayW, @DesktopHeight - $PingOverlayOffsetY - $GUI_cor_PingOverlayH)
	Else
	EndIf
	debug("$PingOverlayOffsetX: " & $PingOverlayOffsetX & @CRLF & "$PingOverlayOffsetX: " & $PingOverlayOffsetY)
EndFunc   ;==>OverlayOffset

Func AoT()
	If BitAND(GUICtrlRead($GUI_smi_AlwaysOnTop), $GUI_CHECKED) = $GUI_CHECKED Then
		GUICtrlSetState($GUI_smi_AlwaysOnTop, $GUI_UNCHECKED)
		WinSetOnTop($GUI_f_Pinger, "", $WINDOWS_NOONTOP)
	Else
		GUICtrlSetState($GUI_smi_AlwaysOnTop, $GUI_CHECKED)
		WinSetOnTop($GUI_f_Pinger, "", $WINDOWS_ONTOP)
	EndIf
	debug("$GUI_smi_AlwaysOnTop: " & GUICtrlRead($GUI_smi_AlwaysOnTop))
EndFunc   ;==>AoT

Func DebugTab()
	If BitAND(GUICtrlRead($GUI_smi_Debug), $GUI_CHECKED) = $GUI_CHECKED Then
		GUICtrlSetState($GUI_smi_Debug, $GUI_UNCHECKED)
		$DebugState = 0
	Else
		GUICtrlSetState($GUI_smi_Debug, $GUI_CHECKED)
		$DebugState = 1
	EndIf
	debug("$DebugState: " & $DebugState)
EndFunc   ;==>DebugTab

Func AddressComb()

	Local $string = GUICtrlRead($GUI_comb_Address)

	If $string = "Dead by Daylight" Then
		GUICtrlSetData($GUI_i_Adress, "steam.live.bhvrdbd.com")
		$pingadress = GUICtrlRead($GUI_i_Adress)
	Else
		GUICtrlSetData($GUI_i_Adress, "8.8.8.8")
		$pingadress = GUICtrlRead($GUI_i_Adress)
	EndIf

	debug("AddressComb(): " & $string)
EndFunc   ;==>AddressComb

Func ToggleOverlay()
	If $is_overlayd = 1 Then
		GUISetState(@SW_SHOW, $PingOverlay)
		GUICtrlSetState($GUI_cb_Overlay, $GUI_CHECKED)
		$is_overlayd = 0
	Else
		GUISetState(@SW_HIDE, $PingOverlay)
		GUICtrlSetState($GUI_cb_Overlay, $GUI_UNCHECKED)
		$is_overlayd = 1
	EndIf
EndFunc   ;==>ToggleOverlay

Func ToggleTray()
	If $is_minimized = 1 Then
		GUISetState(@SW_SHOW, $GUI_f_Pinger)
		$is_minimized = 0
	Else
		GUISetState(@SW_HIDE, $GUI_f_Pinger)
		$is_minimized = 1
	EndIf

	debug("$is_minimized: " & $is_minimized)
EndFunc   ;==>ToggleTray

Func AboutFunc()
	GUISetState(@SW_DISABLE, $GUI_f_Pinger)
	GUICtrlSetData($GUI_l_PingOverlay, "---")

	Local $GUI_f_About = GUICreate('About', 322, 194, -1, -1, BitXOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX), BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE), WinGetHandle(AutoItWinGetTitle()))
	Local $GUI_g_About = GUICtrlCreateGroup("", 8, 8, 305, 145)
	Local $GUI_im_Image = GUICtrlCreatePic("", 16, 24, 105, 97)
	Local $GUI_l_ProductName = GUICtrlCreateLabel("Pinger Tool", 128, 24, 72, 17)
	Local $GUI_l_Version = GUICtrlCreateLabel("Version: " & $VERSION, 128, 64, 100, 17)
	Local $GUI_l_Version = GUICtrlCreateLabel("Date: " & $VDate, 128, 84, 100, 17)
	Local $GUI_l_Copyright = GUICtrlCreateLabel("by 4Wobi", 16, 128, 48, 17)
	Local $GUI_g_Buttons = GUICtrlCreateGroup("", 232, 8, 81, 81)
	Local $GUI_b_Donate = GUICtrlCreateButton("Donate", 232, 16, 75, 25)
	GUICtrlSetState(-1, $GUI_DISABLE)
	Local $GUI_b_Website = GUICtrlCreateButton("Website", 232, 40, 75, 25)
	Local $GUI_b_Forum = GUICtrlCreateButton("Forum", 232, 64, 75, 25)
	GUICtrlSetState(-1, $GUI_DISABLE)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	GUICtrlCreateGroup("", -99, -99, 1, 1)
	Local $GUI_b_AboutOK = GUICtrlCreateButton("&OK", 236, 160, 75, 25, 0)
	GUISetState(@SW_SHOW)

	While 1
		$nMsg = GUIGetMsg()

		If $nMsg <> 0 Then
			If $nMsg <> -11 Then
				debug("$nMsg:" & $nMsg)
			EndIf
		EndIf

		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				GUIDelete($GUI_f_About)
				ExitLoop

			Case $GUI_b_AboutOK
				GUIDelete($GUI_f_About)
				ExitLoop
			Case $GUI_b_Website
				ShellExecute("https://4wobi.com/pinger")
			Case $GUI_b_Forum
			Case $GUI_b_Donate
		EndSwitch
	WEnd

	GUISetState(@SW_ENABLE, $GUI_f_Pinger)
	WinActivate($GUI_f_Pinger)

	If $StartPing = 0 Then
		GUICtrlSetData($GUI_l_PingOverlay, "Ping")
	EndIf
EndFunc   ;==>AboutFunc

Func checkSettings()
	;If Not Exist Create Settings.ini File
	If Not FileExists($settingspath) Then
		IniWrite($settingspath, "OVERLAY", "OverlayOn", "1")
		IniWrite($settingspath, "OVERLAY", "BackgroundOn", "0")
		IniWrite($settingspath, "OVERLAY", "ColorText", "0xFFFF00")
		IniWrite($settingspath, "OVERLAY", "ColorBackground", "0x000000")
		IniWrite($settingspath, "OVERLAY", "OffsetX", "50")
		IniWrite($settingspath, "OVERLAY", "OffsetY", "50")
		IniWrite($settingspath, "OVERLAY", "Position", "0")
		IniWrite($settingspath, "OVERLAY", "Transparency", "255")
		IniWrite($settingspath, "OVERLAY", "Font", "Rubik")

		IniWrite($settingspath, "PING", "Delay", "500")
		IniWrite($settingspath, "PING", "Adress", "8.8.8.8")
		IniWrite($settingspath, "PING", "SaveData", "0")

		IniWrite($settingspath, "DEBUG", "Debug", "0")
		IniWrite($settingspath, "DEBUG", "DebugAutoScroll", "1")
	EndIf
EndFunc   ;==>checkSettings

Func saveSettings()
	; Check File
	checkSettings()
	; Save To File

	; OVERLAY
	IniWrite($settingspath, "OVERLAY", "OverlayOn", $OverlayActive)
	IniWrite($settingspath, "OVERLAY", "BackgroundOn", $OVerlayBgActive)
	IniWrite($settingspath, "OVERLAY", "ColorText", String($OverlayLabelColor))
	IniWrite($settingspath, "OVERLAY", "ColorBackground", String($PingBGColor))
	IniWrite($settingspath, "OVERLAY", "OffsetX", $PingOverlayOffsetX)
	IniWrite($settingspath, "OVERLAY", "OffsetY", $PingOverlayOffsetY)
	IniWrite($settingspath, "OVERLAY", "Position", evalOverlayPos())
	IniWrite($settingspath, "OVERLAY", "Transparency", $pingTransVal)
	IniWrite($settingspath, "OVERLAY", "Font", $PingFont)
	; PING
	IniWrite($settingspath, "PING", "Delay", $pingVal)
	IniWrite($settingspath, "PING", "Adress", $pingadress)
	IniWrite($settingspath, "PING", "SaveData", $SavePingtoFile)
	; DEBUG
	IniWrite($settingspath, "DEBUG", "Debug", $DebugState)
	IniWrite($settingspath, "DEBUG", "DebugAutoScroll", $Debug_AutoScoll)
EndFunc   ;==>saveSettings

Func loadSettings()
	; Check File
	checkSettings()
	; Set Variable ;READ FILE
	; OVERLAY
	$OverlayActive = IniRead($settingspath, "OVERLAY", "OverlayOn", "1")
	$OVerlayBgActive = IniRead($settingspath, "OVERLAY", "BackgroundOn", "0")
	$OverlayLabelColor = IniRead($settingspath, "OVERLAY", "ColorText", "0xFFFF00")
	$PingBGColor = IniRead($settingspath, "OVERLAY", "ColorBackground", "0x000000")
	$PingOverlayOffsetX = IniRead($settingspath, "OVERLAY", "OffsetX", "50")
	$PingOverlayOffsetY = IniRead($settingspath, "OVERLAY", "OffsetY", "50")
	$pingPos = IniRead($settingspath, "OVERLAY", "Position", "0")
	$pingTransVal = IniRead($settingspath, "OVERLAY", "Transparency", "255")
	$PingFont = IniRead($settingspath, "OVERLAY", "Font", "Rubik")
	; PING
	$pingVal = IniRead($settingspath, "PING", "Delay", "500")
	$pingadress = IniRead($settingspath, "PING", "Adress", "8.8.8.8")
	$SavePingtoFile = IniRead($settingspath, "PING", "SaveData", "0")
	; DEBUG
	$DebugState = IniRead($settingspath, "DEBUG", "Debug", "0")
	$Debug_AutoScoll = IniRead($settingspath, "DEBUG", "DebugAutoScroll", "1")
EndFunc   ;==>loadSettings

Func evalOverlayPos()
	Local $l_i_pos = 0
	If GUICtrlRead($GUI_rb_TopLeft) = $GUI_CHECKED Then
		$l_i_pos = 0
	ElseIf GUICtrlRead($GUI_rb_TopRight) = $GUI_CHECKED Then
		$l_i_pos = 1
	ElseIf GUICtrlRead($GUI_rb_BottomLeft) = $GUI_CHECKED Then
		$l_i_pos = 2
	ElseIf GUICtrlRead($GUI_rb_BottomRight) = $GUI_CHECKED Then
		$l_i_pos = 3
	Else
		$l_i_pos = 0
	EndIf
	Return $l_i_pos
EndFunc   ;==>evalOverlayPos

Func setGUI()
	; SET GUI STUFF
	If $pingPos = 0 Then
		GUICtrlSetState($GUI_rb_TopLeft, $GUI_CHECKED)
		WinMove($PingOverlay, "", 0 + $PingOverlayOffsetX, 0 + $PingOverlayOffsetY)
	ElseIf $pingPos = 1 Then
		GUICtrlSetState($GUI_rb_TopRight, $GUI_CHECKED)
		WinMove($PingOverlay, "", @DesktopWidth - $PingOverlayOffsetX - $GUI_cor_PingOverlayW, 0 + $PingOverlayOffsetY)
	ElseIf $pingPos = 2 Then
		GUICtrlSetState($GUI_rb_BottomLeft, $GUI_CHECKED)
		WinMove($PingOverlay, "", 0 + $PingOverlayOffsetX, @DesktopHeight - $PingOverlayOffsetY - $GUI_cor_PingOverlayH)
	ElseIf $pingPos = 3 Then
		GUICtrlSetState($GUI_rb_BottomRight, $GUI_CHECKED)
		WinMove($PingOverlay, "", @DesktopWidth - $PingOverlayOffsetX - $GUI_cor_PingOverlayW, @DesktopHeight - $PingOverlayOffsetY - $GUI_cor_PingOverlayH)
	EndIf

	; OVERLAY
	If $OverlayActive >= 1 Then GUICtrlSetState($GUI_cb_Overlay, $GUI_CHECKED)
	If $OVerlayBgActive >= 1 Then GUICtrlSetState($GUI_cb_OverlayBG, $GUI_CHECKED)
	; PING
	If $SavePingtoFile >= 1 Then GUICtrlSetState($GUI_cb_SavePingToFile, $GUI_CHECKED)
	; DEBUG
	If $DebugState >= 1 Then GUICtrlSetState($GUI_smi_Debug, $GUI_CHECKED)
	; If $Debug_AutoScoll >= 1 Then GUICtrlSetState() ; NOGUI
EndFunc   ;==>setGUI

Func _IsInternetConnected()
	Local $aReturn = DllCall('connect.dll', 'long', 'IsInternetConnected')
	If @error Then
		Return SetError(1, 0, False)
	EndIf
	Return $aReturn[0] = 0
EndFunc   ;==>_IsInternetConnected

Func debug($a)
	If $DebugState = 1 Then
		;Console Debug
		ConsoleWrite(_NowTime() & @TAB & " " & $a & @CRLF)

		If $DebugGuiState = 1 Then
			;Write to GuiDebugWindow List
			_GUICtrlListBox_BeginUpdate($GUI_list_Debug)
			_GUICtrlListBox_InsertString($GUI_list_Debug, _NowTime() & @TAB & " - " & @TAB & $a)
			_GUICtrlListBox_EndUpdate($GUI_list_Debug)

			If $Debug_AutoScoll = 1 Then _GUICtrlListBox_SetCurSel($GUI_list_Debug, _GUICtrlListBox_GetListBoxInfo($GUI_list_Debug) - 1)
		EndIf
	EndIf
EndFunc   ;==>debug

				
			

More AutoIt

AutoIt – Tesseract

Table of Contents https://www.autoitscript.com/forum/topic/174483-tesseract-simple-example/ https://www.autoitscript.com/forum/topic/89542-tesseract-screen-ocr-udf/#comments https://saiashish90.medium.com/training-tesseract-ocr-with-custom-data-d3f4881575c0 Code TTT

Read More »
AutoIt
Torappo

AutoIt- Pinger

Table of Contents Description Little Ping Overlay Downloads When you Download the Pinger.exe – Windows will tell you the Program is a Trojan. Just compile

Read More »

AutoIt – Pixel_Pos

Table of Contents Code Click me #Region PixelGet ; —————————————————————————— ; ; AutoIt Version: 3.0 ; Language: English ; Description: Give Pixel Location on Desktop

Read More »

Python – OpenCV VSCode problems fix

Table of Contents

Intro

If your VSCode gives you Problems while import cv2 and can’t use autoComplete with it, here is you fix.

Instructions

Solution

    1. On VScode: CTRL + Shift + P
    2. Choose “Preferences: Open Settings (JSON)”
    3. Add this line into JSON file:
      "python.linting.pylintArgs": ["--generate-members"]
    4. Done, it works for me 👍

settings.json

				
					    "python.linting.pylintArgs": [
        "--generate-members"
    ]
				
			

Example Code

				
					import cv2
import numpy

img = numpy.zeros([320, 320], numpy.uint8)
cv2.imshow("test", img)
cv2.waitKey()
cv2.destroyAllWindows()
				
			

Python – TelegramAPI

Table of Contents

Intro

Short Intro in to Telegram API with pyTelegramBotAP

Instructions

Code

				
					import telebot

TOKEN = 'YOUR_BOT_TOKEN'
CHAT_ID = YOUR_CHAT_ID

bot = telebot.TeleBot(TOKEN)

bot.send_message(CHAT_ID, "I'm a big fat dick")

photo = open('img/wobi_512.png', 'rb')
bot.send_photo(CHAT_ID, photo)


@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
    bot.reply_to(message, "Howdy, how are you doing?")


@bot.message_handler(func=lambda message: True)
def echo_all(message):
    bot.reply_to(message, message.text)


bot.polling()

				
			

AutoIt – Pixel_Pos

Table of Contents

Code

				
					#Region PixelGet
; ------------------------------------------------------------------------------
;
; AutoIt Version: 3.0
; Language:       English
; Description:	Give Pixel Location on Desktop or active window
;
; ------------------------------------------------------------------------------
;					WORK IN PROGRESS
;===============================================================================
;
;	HotKeys:		End - Quits programm
;					Q - Save Values to Clipboard
;		 			R - Set Aspect ratio to active Window
;					E - Set CoordMode
;
;===============================================================================
#EndRegion PixelGet

#include-once
#include <MsgBoxConstants.au3>

DllCall("User32.dll", "bool", "SetProcessDPIAware")    ;ResultionScaleFix

AutoItSetOption("MouseCoordMode", "2")              ;MouseCoordsMode-Client 0=full active window, 1=fullscreen, 2=active window
AutoItSetOption("PixelCoordMode", "2")              ;PixelCoordsMode-Client

;===============================================================================

HotKeySet('{F1}', 'Clipboard')
HotKeySet('{F2}', 'GetResolution')
HotKeySet('{F3}', 'CordMode')
HotKeySet('{F5}', 'Quit')

;===============================================================================

Global $Mouse_X
Global $Mouse_Y
Global $Mouse_Color
Global $Window_Width
Global $Window_Height
Global $aTitle
Global $CordMode = 2

;===============================================================================

OnAutoItExitRegister(Quit)
CordMode()
GetResolution()

While 1
	Sleep(100)
	GetPos()
	GetColor()
	ToolTip("Active: " & $aTitle & " X: " & $Mouse_X & " Y: " & $Mouse_Y & " C: #" & $Mouse_Color, 0, 0)
WEnd

Func GetResolution()
	$aTitle = _WinGetClass(WinGetTitle("[ACTIVE]"))
	Local $aPos = WinGetPos("[ACTIVE]")
	$Window_Width = $aPos[2]
	$Window_Height = $aPos[3]
EndFunc   ;==>GetResolution

Func GetPos()
	Local $mpos = MouseGetPos()
	$Mouse_X = $mpos[0]
	$Mouse_Y = $mpos[1]
EndFunc   ;==>GetPos

Func GetColor()
	$Mouse_Color = Hex(PixelGetColor($Mouse_X, $Mouse_Y), 6)
EndFunc   ;==>GetColor

Func Clipboard()
	Local $r = _GCD($Window_Width, $Window_Height)
	Local $aSave = Naming()
	ClipPut("Name:       " & $aSave & @CRLF & _
			"X:          " & $Mouse_X & @CRLF & _
			"Y:          " & $Mouse_Y & @CRLF & _
			"C:          #" & $Mouse_Color & @CRLF & _
			"Dimensions: " & $Window_Width & "x" & $Window_Height & @CRLF & _
			"Gcd:        " & $r & @CRLF & _
			"Aspect:     " & $Window_Width / $r & ":" & $Window_Height / $r & @CRLF)
EndFunc   ;==>Clipboard

Func Naming()
	Local $sAnswer = InputBox("Save", "X:          " & $Mouse_X & @CRLF & _
			"Y:          " & $Mouse_Y & @CRLF & _
			"C:          #" & $Mouse_Color & @CRLF, "Name", "", -1, -1)
	Return $sAnswer
EndFunc   ;==>Naming

Func CordMode()
	AutoItSetOption("MouseCoordMode", $CordMode)
	AutoItSetOption("PixelCoordMode", $CordMode)
	ConsoleWrite("Mode: " & $CordMode & @CRLF)
	If $CordMode >= 2 Then
		$CordMode = 0
	Else
		$CordMode += 1
	EndIf
EndFunc   ;==>CordMode

Func Quit()
	ConsoleWrite("Exit Program" & @CRLF)
	Exit
EndFunc   ;==>Quit

Func _GCD($a, $b)
	If $b = 0 Then Return $a
	Return _GCD($b, Mod($a, $b))
EndFunc   ;==>_GCD

Func _WinGetClass($hWnd)
	If IsHWnd($hWnd) = 0 And WinExists($hWnd) Then $hWnd = WinGetHandle($hWnd)
	Local $aGCNDLL = DllCall('User32.dll', 'int', 'GetClassName', 'hwnd', $hWnd, 'str', '', 'int', 4095)
	If @error = 0 Then Return $aGCNDLL[2]
	Return SetError(1, 0, '')
EndFunc   ;==>_WinGetClass
				
			

Python – KivyMD Fonts

Table of Contents

Intro

How to get in KivyMD your Costum Font running with a easy example Code.

Basic Code

				
					from kivymd.font_definitions import theme_font_styles
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.text import LabelBase
KV = '''
Screen:

    MDLabel:
        text: "Rubik"
        halign: "center"
        font_style: "Rubik"

'''


class MainApp(MDApp):
    def build(self):
        LabelBase.register(
            name="Rubik",
            fn_regular="../assets/fonts/Rubik/Rubik-Regular.ttf")

        theme_font_styles.append('Rubik')
        self.theme_cls.font_styles["Rubik"] = [
            "Rubik",
            16,
            False,
            0.15,
        ]
        return Builder.load_string(KV)


MainApp().run()
				
			

Python – Threading

Table of Contents

Start

				
					import threading
import time

def Evennum():
    for i in range(2, 10, 2):
        time.sleep(1)
        print(i)

threading.Thread(target=Evennum).start()