Hey Ihr,
Ich hab mal ein Push2Talk für Skype gebastelt. Dabei hab ich die Scriptpassagen von einem anderen Thread genommen, dazu eine GUI gepackt.
Nur 1 kleines Problem:
AutoIt Script
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Skype Push2Talk", 242, 236, 192, 124)
$bgpic = GuiCtrlCreatePic (@SCRIPTDIR & "\skype-logo.jpg",-20,-10,262,250)
$pic = GUICtrlSetState(-1,$GUI_DISABLE)
$headline = GUICtrlCreateLabel("Skype Push2Talk", 8, 8, 204, 33)
GUICtrlSetFont(-1, 15, 800, 0, "Nightclub BTN")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
$copyright = GUICtrlCreateLabel("by Schrubber", 136, 40, 100, 21)
GUICtrlSetFont(-1, 8, 800, 0, "Nightclub BTN")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0x000000)
$status_lable = GUICtrlCreateLabel("Status", 8, 168, 50, 21)
GUICtrlSetFont(-1, 8, 800, 0, "Nightclub BTN")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
$status = GUICtrlCreateLabel("inactive", 64, 168, 56, 21)
GUICtrlSetFont(-1, 8, 800, 0, "Nightclub BTN")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0x000000)
$b_activate = GUICtrlCreateButton("Activate", 8, 192, 65, 33, $WS_GROUP)
GUICtrlSetFont(-1, 8, 800, 0, "Nightclub BTN")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$b_deactivate = GUICtrlCreateButton("Deactivate", 80, 192, 81, 33, $WS_GROUP)
GUICtrlSetFont(-1, 8, 800, 0, "Nightclub BTN")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$b_quit = GUICtrlCreateButton("Exit", 168, 192, 65, 33, $WS_GROUP)
GUICtrlSetFont(-1, 8, 800, 0, "Nightclub BTN")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xC0C0C0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$oSkype = ""
$key = ""
$sAttach = "No"
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
$oSkype.Mute = "False"
Exit
Case $b_quit
$oSkype.Mute = "False"
Exit
Case $b_activate
if(ProcessExists("Skype.exe")) then
$key = IniRead("key.ini", "keyconfig", "key", "")
if($key = "") Then
MSGBOX(0, "Error", "No Key is declared. Please edit your key.ini!")
Else
$oSkype = ObjCreate("Skype4COM.Skype")
$oSkype.Attach()
$sAttach = $oSkype.AttachmentStatus
EndIf
Else
MSGBOX(0, "Error", "Skype is not running!")
EndIf
Case $b_deactivate
GUICtrlSetData($status, "inactive")
GUICtrlSetColor($status, 0xFF0000)
$oSkype.Mute = "False"
$sAttach = "Deactivated"
EndSwitch
_push2talk()
WEnd
Func _push2talk()
If(ProcessExists("Skype.exe")) Then
If $sAttach = "Success" Or $sAttach = "Erfolg" Then
$oSkype.Mute = "True"
GUICtrlSetData($status, "active")
GUICtrlSetColor($status, 0x00FF00)
If _IsPressed($key) Then
$oSkype.Mute = "False"
While _IsPressed($key)
sleep(64)
WEnd
$oSkype.Mute = "True"
Else
Sleep(100)
EndIf
Else
Sleep(100)
EndIf
Else
Sleep(100)
EndIf
EndFunc
[/autoit]key.ini
[keyconfig]
key=20
Wenn ich das starte, sagt er mir beim schließen wieder, dass $oSkype kein Object sei.
Wie behebe ich dies? Das Programm funzt, wenn ich es mit activate usw. benutze, jedoch nicht, wenn ichs nur schließe.
Will ja keinen Error kriegen
Danke im vorraus,
Schrubber