Accueil > > > ~~ PETIT LECTEUR VIDEO [ WXWIDGETS ----> WXMEDIACTRL ] ~~
~~ PETIT LECTEUR VIDEO [ WXWIDGETS ----> WXMEDIACTRL ] ~~
Information sur la source
Description
En fait, le but de ce dev était, au départ, de lire des fichiers vidéos en n' utilisant que la librairie wxWIDGETS.Au bout du compte, le wxMediaCtrl lit les fichiers audios et vidéos donc, ce player peut lire aussi de la musique, mais comme vous pourrez le constater, il a été pensé pour la lectue de vidéos; -Slider (gestion du temps); -Boutons Play, Stop, Pause; -le dialog de visualisation prends la taille du média a l' ouverture, ce dialog est sizable; -utilisation d'un sizer; Voila, c' est juste un p' tit exemple d' utilisation de wxMediaCtrl à améliorer bien entendu; Il vous faudra probablement des codecs pour pouvoir regarder tous types de medias; perso, j' use klite codec packs Enfin, pour compiler les sources vous aurez besoin de wxDevCpp 6.8 beta (pour la gestion du volume) téléchargez le .exe sur http://satellitesound.free.fr/aSatAviPlayer.rar Allé, Salut, god prog :-)
Source
- //---------------------------------------------------------------------------
- //
- // Name: SatAviPlayerFrm.cpp
- // Author: Nicolas Robert --> satellitesound@free.fr
- // Created: 01/08/2005 12:12:35
- //
- //---------------------------------------------------------------------------
-
- #include "SatAviPlayerFrm.h"
-
-
-
- //----------------------------------------------------------------------------
- // SatAviPlayerFrm
- //----------------------------------------------------------------------------
-
- BEGIN_EVENT_TABLE(SatAviPlayerFrm,wxFrame)
- EVT_TIMER(ID_TIMER, SatAviPlayerFrm::OnTimer)
- EVT_CLOSE( SatAviPlayerFrm::SatAviPlayerFrmClose)
- EVT_MENU(ID_MNU_OUVRIR , SatAviPlayerFrm::MnuouvrirClick)
- EVT_MENU(ID_MNU_QUITTER , SatAviPlayerFrm::MnuquitterClick)
- EVT_BUTTON(ID_BUTTON1, SatAviPlayerFrm::Boutton1Click)
- EVT_BUTTON(ID_BUTTON2, SatAviPlayerFrm::Boutton2Click)
- EVT_BUTTON(ID_BUTTON3, SatAviPlayerFrm::Boutton3Click)
- EVT_COMMAND_SCROLL_THUMBTRACK(ID_SLIDER, SatAviPlayerFrm::SliderThumbtrack)
- EVT_COMMAND_SCROLL(ID_SLIDER, SatAviPlayerFrm::SliderScroll)
- EVT_COMMAND_SCROLL_THUMBTRACK(ID_SLIDERVOL, SatAviPlayerFrm::SlidervolThumbtrack)
- EVT_COMMAND_SCROLL(ID_SLIDERVOL, SatAviPlayerFrm::SliderScrollVol)
- END_EVENT_TABLE()
-
-
-
- SatAviPlayerFrm::SatAviPlayerFrm( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style )
- : wxFrame( parent, id, title, position, size, style),
- m_timer(this, ID_TIMER)
- {
- CreateGUIControls();
- m_timer.Start(24);
- }
-
- SatAviPlayerFrm::~SatAviPlayerFrm() {}
-
- IMPLEMENT_APP(SatAviPlayerFrmApp)
-
- bool SatAviPlayerFrmApp::OnInit()
- {
- SatAviPlayerFrm *Frame = new SatAviPlayerFrm(NULL);
- SetTopWindow(Frame);
- Frame->Show(TRUE);
- return TRUE;
- }
-
- int SatAviPlayerFrmApp::OnExit()
- {
- return 0;
- }
-
-
- void SatAviPlayerFrm::CreateGUIControls()
- {
- Slider = new wxSlider(this, ID_SLIDER,0,0,10,wxPoint(10,20),wxSize(200,15) , wxSL_HORIZONTAL|wxSL_AUTOTICKS);
- Slider->SetRange(0,10);
- Slider->SetValue(0);
-
- SliderVol = new wxSlider(this, ID_SLIDERVOL,0,0,10,wxPoint(320,2),wxSize(15,70) , wxSL_VERTICAL|wxSL_AUTOTICKS|wxSL_INVERSE);
- SliderVol->SetRange(0, 10);
- SliderVol->SetValue(8);
-
- StatusBar = new wxStatusBar(this, ID_STATUSBAR );
- StatusBar->SetFieldsCount(1);
- int StatusBar_Widths[1];
- StatusBar_Widths[0] = -1;
- StatusBar->SetStatusWidths(1,StatusBar_Widths);
-
- MenuBar = new wxMenuBar( );
- wxMenu *ID_MNU_FICHIER_Mnu_Obj = new wxMenu(0);
- MenuBar->Append(ID_MNU_FICHIER_Mnu_Obj,_("Fichier"));
-
- ID_MNU_FICHIER_Mnu_Obj->Append(ID_MNU_OUVRIR,_("Ouvrir"),_(""), wxITEM_NORMAL);
-
- ID_MNU_FICHIER_Mnu_Obj->Append(ID_MNU_QUITTER,_("Quitter"),_(""), wxITEM_NORMAL);
-
-
- this->SetMenuBar(MenuBar);
-
- Button1 = new wxButton(this, ID_BUTTON1, _(">"), wxPoint(280,20),wxSize(25,25));
-
- Button2 = new wxButton(this, ID_BUTTON2, _("II"), wxPoint(250,20),wxSize(25,25));
-
- Button3 = new wxButton(this, ID_BUTTON3, _("X"), wxPoint(220,20),wxSize(25,25));
-
- OpenFileDialog = new wxFileDialog(this, "Ouvrir un fichier..." , "" , "" , "", wxOPEN | wxHIDE_READONLY | wxCHANGE_DIR );
- wxFileDialog fd(OpenFileDialog);
-
- m_mediactrl = new wxMediaCtrl();
- m_dialog = new wxDialog(this, -1, "vidéo", wxPoint(0,0), wxSize(-1,-1), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxTHICK_FRAME ,"dialogBox");
- m_dialog->SetBackgroundColour(wxColour(0, 0, 0));
-
- m_mediactrl->Create(m_dialog, ID_MEDIA, fd.GetPath(), wxPoint(0, 0), wxSize(1024,768));
-
- m_sizerv = new wxBoxSizer(wxVERTICAL);
- m_sizerv->Add(m_mediactrl, 1, wxALIGN_CENTER|wxGROW, 0);
-
- m_sizerh = new wxBoxSizer(wxHORIZONTAL);
- m_sizerh->Add(m_sizerv, 1, wxALIGN_CENTER|wxGROW, 0);
-
- m_dialog->SetSizer(m_sizerh);
- m_dialog->SetAutoLayout(true);
-
- this->SetStatusBar(StatusBar);
- this->SetSize(8,8,370,150);
- this->SetTitle(_("SatAviPlayer"));
- this->Center();
- this->SetIcon(wxNullIcon);
- this->SetBackgroundColour(wxColour(80, 100, 75));
- ////GUI Items Creation End
- }
-
- void SatAviPlayerFrm::SatAviPlayerFrmClose(wxCloseEvent& event)
- {
- m_timer.Stop();
- m_mediactrl->Destroy();
- Destroy();
- }
-
- /*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- * MnuquitterClick
- *//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- void SatAviPlayerFrm::MnuquitterClick(wxCommandEvent& event)
- {
- m_timer.Stop();
- m_mediactrl->Destroy();
- Destroy();
- }
-
- /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- * MnuouvrirClick
- *////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- void SatAviPlayerFrm::MnuouvrirClick(wxCommandEvent& event)
- {
- wxFileDialog fd(OpenFileDialog);
- fd.SetMessage(_("Ouvrir un fichier vidéo"));
- if (fd.ShowModal()==wxID_OK)
- {
- if(!m_mediactrl->Load(fd.GetPath()))
- wxMessageBox(wxT("Load n' a pas marché"));
-
- if(!m_mediactrl->Play())
- wxMessageBox(wxT("Play n' a pas marché"));
-
- resetmedia();
- }
- }
-
- /*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- *reset
- /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////8
-
- void SatAviPlayerFrm::resetmedia()
- {
- m_basestatus = wxString::Format(_T("Taille(x,y):%i,%i ")_T("Longueur(Secondes):%u Vitesse:%1.1fx"),m_mediactrl->GetBestSize().x,m_mediactrl->GetBestSize().y,(unsigned)((m_mediactrl->Length()/1000)),m_mediactrl->GetPlaybackRate());
- StatusBar->SetStatusText(m_basestatus);
-
- m_dialog->SetSize(wxSize(m_mediactrl->GetBestSize().x, m_mediactrl->GetBestSize().y));
- m_dialog->Show(true);
- }
-
- /*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- *Mon timer
- *///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- void SatAviPlayerFrm::OnTimer(wxTimerEvent& event)
- {
- Slider->SetRange(0, m_mediactrl->Length()/1000);
- Slider->SetValue(m_mediactrl->Tell()/1000);
- }
-
- /*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- *gestion du temps par le slider
- *///////////////////////////////////////////////////////////////////////////5///////////////////////////////////////8
-
- void SatAviPlayerFrm::SliderThumbtrack(wxScrollEvent& event)
- {
- if(!m_timer.IsRunning())return;
- int time=Slider->GetValue()*1000;
- m_mediactrl->Seek(time);
- }
-
- void SatAviPlayerFrm::SliderScroll(wxScrollEvent& event)
- {
- SliderThumbtrack(event);
- }
- /*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- *gestion du volume par le slider
- *//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- void SatAviPlayerFrm::SlidervolThumbtrack(wxScrollEvent& event)
- {
- double volume = SliderVol->GetValue();
- m_mediactrl->SetVolume(volume*0.1);
- }
-
- void SatAviPlayerFrm::SliderScrollVol(wxScrollEvent& event)
- {
- SlidervolThumbtrack(event);
- }
//---------------------------------------------------------------------------
//
// Name: SatAviPlayerFrm.cpp
// Author: Nicolas Robert --> satellitesound@free.fr
// Created: 01/08/2005 12:12:35
//
//---------------------------------------------------------------------------
#include "SatAviPlayerFrm.h"
//----------------------------------------------------------------------------
// SatAviPlayerFrm
//----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(SatAviPlayerFrm,wxFrame)
EVT_TIMER(ID_TIMER, SatAviPlayerFrm::OnTimer)
EVT_CLOSE( SatAviPlayerFrm::SatAviPlayerFrmClose)
EVT_MENU(ID_MNU_OUVRIR , SatAviPlayerFrm::MnuouvrirClick)
EVT_MENU(ID_MNU_QUITTER , SatAviPlayerFrm::MnuquitterClick)
EVT_BUTTON(ID_BUTTON1, SatAviPlayerFrm::Boutton1Click)
EVT_BUTTON(ID_BUTTON2, SatAviPlayerFrm::Boutton2Click)
EVT_BUTTON(ID_BUTTON3, SatAviPlayerFrm::Boutton3Click)
EVT_COMMAND_SCROLL_THUMBTRACK(ID_SLIDER, SatAviPlayerFrm::SliderThumbtrack)
EVT_COMMAND_SCROLL(ID_SLIDER, SatAviPlayerFrm::SliderScroll)
EVT_COMMAND_SCROLL_THUMBTRACK(ID_SLIDERVOL, SatAviPlayerFrm::SlidervolThumbtrack)
EVT_COMMAND_SCROLL(ID_SLIDERVOL, SatAviPlayerFrm::SliderScrollVol)
END_EVENT_TABLE()
SatAviPlayerFrm::SatAviPlayerFrm( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style )
: wxFrame( parent, id, title, position, size, style),
m_timer(this, ID_TIMER)
{
CreateGUIControls();
m_timer.Start(24);
}
SatAviPlayerFrm::~SatAviPlayerFrm() {}
IMPLEMENT_APP(SatAviPlayerFrmApp)
bool SatAviPlayerFrmApp::OnInit()
{
SatAviPlayerFrm *Frame = new SatAviPlayerFrm(NULL);
SetTopWindow(Frame);
Frame->Show(TRUE);
return TRUE;
}
int SatAviPlayerFrmApp::OnExit()
{
return 0;
}
void SatAviPlayerFrm::CreateGUIControls()
{
Slider = new wxSlider(this, ID_SLIDER,0,0,10,wxPoint(10,20),wxSize(200,15) , wxSL_HORIZONTAL|wxSL_AUTOTICKS);
Slider->SetRange(0,10);
Slider->SetValue(0);
SliderVol = new wxSlider(this, ID_SLIDERVOL,0,0,10,wxPoint(320,2),wxSize(15,70) , wxSL_VERTICAL|wxSL_AUTOTICKS|wxSL_INVERSE);
SliderVol->SetRange(0, 10);
SliderVol->SetValue(8);
StatusBar = new wxStatusBar(this, ID_STATUSBAR );
StatusBar->SetFieldsCount(1);
int StatusBar_Widths[1];
StatusBar_Widths[0] = -1;
StatusBar->SetStatusWidths(1,StatusBar_Widths);
MenuBar = new wxMenuBar( );
wxMenu *ID_MNU_FICHIER_Mnu_Obj = new wxMenu(0);
MenuBar->Append(ID_MNU_FICHIER_Mnu_Obj,_("Fichier"));
ID_MNU_FICHIER_Mnu_Obj->Append(ID_MNU_OUVRIR,_("Ouvrir"),_(""), wxITEM_NORMAL);
ID_MNU_FICHIER_Mnu_Obj->Append(ID_MNU_QUITTER,_("Quitter"),_(""), wxITEM_NORMAL);
this->SetMenuBar(MenuBar);
Button1 = new wxButton(this, ID_BUTTON1, _(">"), wxPoint(280,20),wxSize(25,25));
Button2 = new wxButton(this, ID_BUTTON2, _("II"), wxPoint(250,20),wxSize(25,25));
Button3 = new wxButton(this, ID_BUTTON3, _("X"), wxPoint(220,20),wxSize(25,25));
OpenFileDialog = new wxFileDialog(this, "Ouvrir un fichier..." , "" , "" , "", wxOPEN | wxHIDE_READONLY | wxCHANGE_DIR );
wxFileDialog fd(OpenFileDialog);
m_mediactrl = new wxMediaCtrl();
m_dialog = new wxDialog(this, -1, "vidéo", wxPoint(0,0), wxSize(-1,-1), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxTHICK_FRAME ,"dialogBox");
m_dialog->SetBackgroundColour(wxColour(0, 0, 0));
m_mediactrl->Create(m_dialog, ID_MEDIA, fd.GetPath(), wxPoint(0, 0), wxSize(1024,768));
m_sizerv = new wxBoxSizer(wxVERTICAL);
m_sizerv->Add(m_mediactrl, 1, wxALIGN_CENTER|wxGROW, 0);
m_sizerh = new wxBoxSizer(wxHORIZONTAL);
m_sizerh->Add(m_sizerv, 1, wxALIGN_CENTER|wxGROW, 0);
m_dialog->SetSizer(m_sizerh);
m_dialog->SetAutoLayout(true);
this->SetStatusBar(StatusBar);
this->SetSize(8,8,370,150);
this->SetTitle(_("SatAviPlayer"));
this->Center();
this->SetIcon(wxNullIcon);
this->SetBackgroundColour(wxColour(80, 100, 75));
////GUI Items Creation End
}
void SatAviPlayerFrm::SatAviPlayerFrmClose(wxCloseEvent& event)
{
m_timer.Stop();
m_mediactrl->Destroy();
Destroy();
}
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
* MnuquitterClick
*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SatAviPlayerFrm::MnuquitterClick(wxCommandEvent& event)
{
m_timer.Stop();
m_mediactrl->Destroy();
Destroy();
}
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
* MnuouvrirClick
*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SatAviPlayerFrm::MnuouvrirClick(wxCommandEvent& event)
{
wxFileDialog fd(OpenFileDialog);
fd.SetMessage(_("Ouvrir un fichier vidéo"));
if (fd.ShowModal()==wxID_OK)
{
if(!m_mediactrl->Load(fd.GetPath()))
wxMessageBox(wxT("Load n' a pas marché"));
if(!m_mediactrl->Play())
wxMessageBox(wxT("Play n' a pas marché"));
resetmedia();
}
}
/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*reset
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////8
void SatAviPlayerFrm::resetmedia()
{
m_basestatus = wxString::Format(_T("Taille(x,y):%i,%i ")_T("Longueur(Secondes):%u Vitesse:%1.1fx"),m_mediactrl->GetBestSize().x,m_mediactrl->GetBestSize().y,(unsigned)((m_mediactrl->Length()/1000)),m_mediactrl->GetPlaybackRate());
StatusBar->SetStatusText(m_basestatus);
m_dialog->SetSize(wxSize(m_mediactrl->GetBestSize().x, m_mediactrl->GetBestSize().y));
m_dialog->Show(true);
}
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*Mon timer
*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SatAviPlayerFrm::OnTimer(wxTimerEvent& event)
{
Slider->SetRange(0, m_mediactrl->Length()/1000);
Slider->SetValue(m_mediactrl->Tell()/1000);
}
/*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*gestion du temps par le slider
*///////////////////////////////////////////////////////////////////////////5///////////////////////////////////////8
void SatAviPlayerFrm::SliderThumbtrack(wxScrollEvent& event)
{
if(!m_timer.IsRunning())return;
int time=Slider->GetValue()*1000;
m_mediactrl->Seek(time);
}
void SatAviPlayerFrm::SliderScroll(wxScrollEvent& event)
{
SliderThumbtrack(event);
}
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*gestion du volume par le slider
*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SatAviPlayerFrm::SlidervolThumbtrack(wxScrollEvent& event)
{
double volume = SliderVol->GetValue();
m_mediactrl->SetVolume(volume*0.1);
}
void SatAviPlayerFrm::SliderScrollVol(wxScrollEvent& event)
{
SlidervolThumbtrack(event);
}
Conclusion
#include <wx/zip>
Historique
- 07 août 2005 22:59:55 :
- 1 apparence 1 peu plus simpa
- 08 août 2005 00:20:47 :
- +screenshot
- 12 août 2005 03:04:30 :
- Modif du titer
- 26 août 2005 02:15:57 :
- -+ gestion du volume (hum, ca marche pas terrible mais bon, ca marche)
- support des themes xp ( que j' avait zappé)
- 28 août 2005 06:01:23 :
- modif adresse de l'exe
- 03 septembre 2005 16:28:47 :
- - meilleure gestion des sizers, on peut maintenant maximizer le dialogue de visualisation; bientôt un full screen;
- 03 septembre 2005 19:23:13 :
- -Gestion du volume avec la roulette de la souris, que j' avais zappé;
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Mot de passe fichier audio/video [ par goutbouyo ]
Salut,Est -il possible de faire un programme en C (win32 ou non) qui demande un mot de passe à l'ouverture d'un fichier audio ou vidéo qui existe déjà
lecteur enregistreur video [ par blanccc ]
Bonjour tout le monde,Je suis novice en C++ et je cherche le moyen de prendre un flux video en entrée provenant d'une camera numerique, de l'affi
[wxWIDGETS] wxMediaCtrl + avi [ par satellite34 ]
salut!petite question a 10 piastres:je veux lire un avis avec la librairie wxWIDGETS et sa fonction wxMediaCtrl.Quelqu' un pourrai - t-il me donner la
jouer data depuis Buffer Audio ? [ par cybermax62 ]
bjr, je veux jouer de l'audio issu d'une video .avi. en fait c pour jouer une video sur une surface DDraw, mais bon c pas important ca.j'utilise vfw32
Lecteur video basique [ par adess00 ]
BonjourJ ai fait un algo de compression video et donc je voudrais maintenant coder un lecteur pour pouvoir faire des tests.Je voudrais donc savoir com
lecteur video [ par kain31 ]
Bonjour tout le monde, Actuellement ,je developpe un lecteur video en C++. Ce lecteur devra etre capable de lire a la suite deux fichiers videos.Un pe
developper un lecteur audio en ligne [ par flofloo ]
bonjour tout voila je me suis leve ce bon matin et je me suis dit flo et si tu developper un serveur ki partagerais de la musik en ligne a tes clients
recherche d'un code source d'un lecteur video [ par ingenioura ]
Salut, je cherche un programme en utilisant la bibliothèque Qt pour afficher une séquence vidéo et merci
inserer lecteur video sous builder c++ [ par fcolh ]
FcolHbonsoir , j'aimerais savoir si c'est possible d'inclure un lecteure video sous builder c++.et si oui quelle est la meilleure solution et surtout
Lecteur MPEG streaming [ par matge ]
Bonjour,Je realise un player qui enregistre un flux multicast RTP.Je stocke la video au format MPEG dans un fichier a l aide d un Thread.J aimerais re
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|