Gleichzeitig wird auch Thunderbird beenden und mein ThunderbirdIconizer
Das klappt ganz gut, nur wenn man Erweiterungen installiert scheint das programm beim nächsten start sich kurz zu beenden und sofort zu starten.
Das programm muß in ordner der "FireFox.exe" liegen!
Das programm ist für den 1&1-Profidialer ausgerichtet, für alle anderen muß eine modifikation durchführen:
Code: Alles auswählen
RunProgram("FireFox.exe","","", 1)
a=FindWindow_(0,"1&1 Profi-Dialer")
If a
If MessageRequester("Internet-Verbindung", "Soll die Internetverbindung getrennt werden?", #MB_YESNO|#MB_ICONQUESTION|#MB_SYSTEMMODAL)=#IdYes
SendMessage_(a,#WM_CLOSE,0,0)
b=0
Repeat
a=FindWindowEx_(0,b,"MozillaWindowClass",0)
a$=Space(2046)
GetWindowText_(a,@a$,Len(a$))
If a
If FindString(a$,"Thunderbird",0)=0
b=a
Else
SendMessage_(a,#WM_CLOSE,0,0)
b=0
Delay(100)
EndIf
Else
Break
EndIf
ForEver
a=FindWindow_(0,"ThunderBirdStarter")
If a
PostMessage_(a,#WM_CLOSE,0,0)
SendMessage_(a,#WM_CLOSE,0,0)
EndIf
EndIf
EndIf
statt
Code: Alles auswählen
a=FindWindow_(0,"1&1 Profi-Dialer")
If a
If MessageRequester("Internet-Verbindung", "Soll die Internetverbindung getrennt werden?", #MB_YESNO|#MB_ICONQUESTION|#MB_SYSTEMMODAL)=#IdYes
SendMessage_(a,#WM_CLOSE,0,0)Code: Alles auswählen
if InternetGetConnectedState_(0, 0)
If MessageRequester("Internet-Verbindung", "Soll die Internetverbindung getrennt werden?", #MB_YESNO|#MB_ICONQUESTION|#MB_SYSTEMMODAL)=#IdYes
RunProgram("rasdial","rasdial /disconnect","")
Zweites Program: Sobald das Programm gestartet wird, wird ein aktives Thunderbird-Fenster gesucht und versteckt.
Als ersatz kann man ein Icon in Systemtry aktiviert. Beim draufklicken mit links wird die sichtbarkeit des Thunderbirds getoggelt, bzw. wenn kein Thunderbird an ist, thunderbird gestartet. Mit rechtsklick bekommt man ein Menü.
Das Programm sollte in Ornder von Thunderbird gespeichert werden und man muß *ZWINGEND* ein Icon in Compiler angeben.
Code: Alles auswählen
Global quit,ManualThunderbirdStart
quit=#False
Procedure FindThunderbird()
Result=#False
b=0
Repeat
a=FindWindowEx_(0,b,"MozillaWindowClass",0)
a$=Space(2046)
GetWindowText_(a,@a$,Len(a$))
If a
b=a
If FindString(a$,"Thunderbird",0)
Result=a
Break
EndIf
Else
Break
EndIf
ForEver
ProcedureReturn Result
EndProcedure
Procedure IsThunderbirdVisible()
Result=#False
a=FindThunderbird()
If a
Result=IsWindowVisible_(a)
EndIf
ProcedureReturn Result
EndProcedure
Procedure ShowAllThunderbird(Type)
Result=#False
b=0
Repeat
a=FindWindowEx_(0,b,"MozillaWindowClass",0)
a$=Space(2046)
GetWindowText_(a,@a$,Len(a$))
If a
b=a
If FindString(a$,"Thunderbird",0)
If Type
ShowWindow_(a,#SW_Show)
;ShowWindow_(a,#SW_RESTORE)
SetForegroundWindow_(a)
Else
If IsIconic_(a)
ShowWindow_(a,#SW_RESTORE)
EndIf
ShowWindow_(a,#SW_HIDE)
EndIf
Result=#True
EndIf
Else
Break
EndIf
ForEver
ProcedureReturn Result
EndProcedure
Procedure ToggleThunderbird()
If IsThunderbirdVisible()
Result=ShowAllThunderbird(#False)
Else
Result=ShowAllThunderbird(#True)
EndIf
If Result=#False
RunProgram("thunderbird.exe"):ManualThunderbirdStart=#True
EndIf
ProcedureReturn Result
EndProcedure
Procedure WriteEmail()
Handle=FindThunderbird()
If Handle
thread1=GetWindowThreadProcessID_(GetForegroundWindow_(),0)
thread2=GetWindowThreadProcessID_(Handle,0)
If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#True) : EndIf
SetForegroundWindow_(Handle)
Delay(125)
keybd_event_(#vk_control,0,0,0)
vk=VkKeyScanEx_('n',GetKeyboardLayout_(0))
keybd_event_(vk,0,0,0)
keybd_event_(vk,0,#KEYEVENTF_KEYUP,0)
keybd_event_(#vk_control,0,#KEYEVENTF_KEYUP,0)
If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#False) : EndIf ; Finished typing to target window!
;
EndIf
EndProcedure
Procedure CheckEmail()
Handle=FindThunderbird()
If Handle
thread1=GetWindowThreadProcessID_(GetForegroundWindow_(),0)
thread2=GetWindowThreadProcessID_(Handle,0)
If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#True) : EndIf
SetForegroundWindow_(Handle)
Delay(125)
keybd_event_(#vk_control,0,0,0)
keybd_event_(#vk_shift,0,0,0)
vk=VkKeyScanEx_('t',GetKeyboardLayout_(0))
keybd_event_(vk,0,0,0)
keybd_event_(vk,0,#KEYEVENTF_KEYUP,0)
keybd_event_(#vk_shift,0,#KEYEVENTF_KEYUP,0)
keybd_event_(#vk_control,0,#KEYEVENTF_KEYUP,0)
If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#False) : EndIf ; Finished typing to target window!
;
EndIf
EndProcedure
Procedure DoEvent(event)
Select event
Case #PB_Event_Menu
Select EventMenuID()
Case 0:ToggleThunderbird()
Case 1:quit=#True
Case 2:WriteEmail()
Case 3:CheckEmail()
EndSelect
Case #PB_Event_SysTray
Select EventType()
Case #PB_EventType_LeftClick:ToggleThunderbird()
Case #PB_EventType_RightClick:DisplayPopupMenu(0,WindowID())
EndSelect
Case #PB_Event_CloseWindow:quit=#True
Case #WM_QUIT:quit=#True
EndSelect
EndProcedure
If FindWindow_(0,"ThunderBirdStarter")
End
EndIf
If OpenWindow(0,0,0,100,100,#PB_Window_Invisible,"ThunderBirdStarter")
IconId=LoadIcon_(GetModuleHandle_(0),1)
AddSysTrayIcon(0,WindowID(),IconId)
CreatePopupMenu(0)
MenuItem(0,"Zeige/Verstecke Thunderbird")
MenuBar()
MenuItem(2,"E-Mail schreiben")
MenuItem(3,"E-Mails abrufen")
MenuBar()
MenuItem(1,"SysIcon schließen")
Repeat
Delay(100)
If FindThunderbird() And IsThunderbirdVisible()
If ShowAllThunderbird(#False)
Break
EndIf
EndIf
DoEvent(WindowEvent())
Until quit Or ManualThunderbirdStart
Repeat
DoEvent(WaitWindowEvent())
Until quit
ShowAllThunderbird(#True)
EndIf