Seite 2 von 2
Verfasst: 11.07.2006 15:51
von Tafkadasom2k5
Hoho!
Zwar ist es ein Umweg, aber die Programmier- (OK- Script-)Sprache "AutoIt" kann ohne Weiteres Programme fernsteuern. Das wäre unter Umständen eine Aternative, ohne dabei SDKs anzusteuern. Man kann nur lediglich damit den Nutzer emulieren (Maus, Tasten) aber es sind auch andere Befehle und API Nutzung möglich.
Es ist unter Umständen ein wenig unelegant, aber es funktioniert. Ich habe damit eine Rundfax und Rundmailfunktion programmiert, die Fritz!Fax und Outlook fernsteuert, damit man Rundfaxe/Rundmails aus einem anderen Programm verschicken konnte...
Vielleicht ja eine bauchbare Alternative..?
Gr33tz
Tafkadasom2k5
Verfasst: 11.07.2006 15:52
von Kaeru Gaman
> Vielleicht ja eine bauchbare Alternative..?
klasse tippfehler...
diese Alternative soll sich mal was überziehen...
Verfasst: 15.07.2006 17:21
von Alves
@ Zaphod
Also wenn ich es mit dTaOneClick laden will, bekommen ich eine sorry.html runtergeladen.
Jetzt erst gemerkt, dass es geht.
Danke, werde mich damit beschäftigen.
Verfasst: 25.08.2006 11:12
von ts-soft
Mit dem OLE/COM Interface Generator von Stefan Möbius geht es "recht einfach". Beispiel für MediaPlayer ist bei!
http://www.purebasic.fr/english/viewtopic.php?t=23370
Einfach die Methoden:
Play()
Stop()
Pause()
im IMediaPlayer Interface aufrufen, dieses wird auch im Beispiel genutzt
Verfasst: 25.08.2006 11:37
von Alves
Funzt das auch mit iTunes?
Ansonsten, werde ich mir mal angucken!

Verfasst: 25.08.2006 11:40
von Tafkadasom2k5
Also wenn du dich mit COM-Objekten auseinandersetzen willst, dann kann ich dir eine Include geben (leider nur für PowerBasic, aber es sind nur ein paar Kleinigkeit an Unterschieden...)
Da sind so ziemlich alle Bfehele drin, die man braucht (habe gerade den PowerBasic COMBrowser aufgefordert mal nach Media-Player Interfaces zu suchen...
Man hat echt viele Möglichkeiten...
Gr33tz
Tafkadasom2k5
Edit:
Ich seh gerade, dass das Ding von Stefan Möbius dasselbe in PureBasic macht... Spitze
PS:Unglaublich, wie viele Funktionen von Programmen da abgelegt sind...

SInd das alles COM-Objekte? Dabei heißt es doch immer, dass diese veraltet wären? Warum werden nicht DLLS anstatt COM-Objekte genutzt? Wo liegt da der Unterschied?
Verfasst: 25.08.2006 11:44
von ts-soft
Wenn der als Active registriert ist, sollte es ein entsprechendes Interface geben, kann ich so nicht beantworten.
Als Beispiel: Einfach Interface für MediaPlayer erstellen und als wmp.pbi speichern, dann folgenden Code:
Code: Alles auswählen
XIncludeFile "wmp.pbi"
Import "atl.lib"
AtlAxWinInit()
AtlAxCreateControl(lpszName.p-bstr,hWnd.l,*pStream.IStream,*ppUnkContainer.IUnknown)
AtlAxGetControl(hWnd.l,*pp.IUnknown)
EndImport
Import "shell32.lib"
CompilerIf #PB_Compiler_Unicode
SHGetSpecialFolderPath_(hwndOwner.l, lpszPath.s, nFolder.l, fCreate.l) As "_SHGetSpecialFolderPathW@16"
CompilerElse
SHGetSpecialFolderPath_(hwndOwner.l, lpszPath.s, nFolder.l, fCreate.l) As "_SHGetSpecialFolderPathA@16"
CompilerEndIf
EndImport
Procedure.s GetSpecialFolder(Folder.l)
Protected Path.s = Space(#MAX_PATH)
If SHGetSpecialFolderPath_(#NUL, Path, Folder, #NUL)
If Right(Path, 1) <> "\" : Path + "\" : EndIf
ProcedureReturn Path
EndIf
EndProcedure
File.s = ProgramParameter()
If FileSize(File) <= 0 Or File = ""
File = OpenFileRequester("Small MediaPlayer", GetSpecialFolder(#CSIDL_MYVIDEO) + "*.wmv", "*.*", 0)
If Not File : End : EndIf
EndIf
CoInitialize_(0)
AtlAxWinInit()
#Flags=#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered
OpenWindow(0,0,0,400,300,"Simple MediaPlayer, written in PB", #Flags)
AtlAxCreateControl("MediaPlayer.MediaPlayer.1", WindowID(0), 0, 0)
AtlAxGetControl(WindowID(0),@*mp.IMediaPlayer)
*mp\put_FileName(File)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
*mp\Release()
CloseWindow(0)
Ist schon ein fast vollwertiger Player

Verfasst: 25.08.2006 11:56
von Alves
Also wenn ich mir den Code so angucke, dann schreibe ich meinen Media Player doch lieber selber.
Ne aber hier gehts ja um steuern, danke nochmal, hab grad aber keine zeit um mitr das anzugucken.

Verfasst: 25.08.2006 12:03
von ts-soft
Aber wenn Du so wie im Beispiel, den WMPlayer einfach in Deine Anwendung
integrierst, kannste denn auch bequem durch dieselbe, bzw. eine 2te steuern,
ohne Gefahr zu laufen, was falsches zu steuern
Wenn man die Bedienelemente vom WMPlayer ausblendet, merkt es evtl.
garkeiner, das es nur eine Oberfläche für den orign. Player ist
