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... :lol:

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!

:allright:

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 :allright:

PS:Unglaublich, wie viele Funktionen von Programmen da abgelegt sind... :o 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 :wink:

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.
:allright:

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 :mrgreen:

Wenn man die Bedienelemente vom WMPlayer ausblendet, merkt es evtl.
garkeiner, das es nur eine Oberfläche für den orign. Player ist :wink: