OVH Cloud OVH Cloud

lire cab

12 réponses
Avatar
scraper
bonjour à tous !

je cherche maintenant à lire un fichier cab , ou plus exacteemnt, à décompresser les fichiers qu'il contient vers un rep' donné,
puis à lancer un fichier inf qu'il contient ...

je ne sais même pas par où commencer ?!

--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

10 réponses

1 2
Avatar
marcel Bultez
sous msdos faire
extract/?

dans un .bat par exemple
for %%i in c:windowsoptionscabs*.cab do extract /d %%i *.inf
extrait tous les .inf des .cab
Avatar
ng
Salut,
Regarde du coté de : ExtractFileFromCab

'attention à diffuser vb6stkit.dll
Public Declare Function ExtractFileFromCab Lib "vb6stkit.dll" (ByVal Cab As
String, ByVal File As String, ByVal Dest As String, ByVal iCab As Long,
ByVal sSrc As String) As Long

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

marcel Bultez wrote:
sous msdos faire
extract/?

dans un .bat par exemple
for %%i in c:windowsoptionscabs*.cab do extract /d %%i *.inf
extrait tous les .inf des .cab


Avatar
François Picalausa
Bonjour/soir,

Je conseillerais plutôt les API Setup qui sont nettement plus documentées et
AMHA dont la présence est plus sûre:
http://msdn.microsoft.com/library/en-us/setupapi/setup/extracting_files_from_cabinets.asp

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"ng" a écrit dans le message de
news:%
Salut,
Regarde du coté de : ExtractFileFromCab

'attention à diffuser vb6stkit.dll
Public Declare Function ExtractFileFromCab Lib "vb6stkit.dll" (ByVal
Cab As String, ByVal File As String, ByVal Dest As String, ByVal iCab
As Long, ByVal sSrc As String) As Long


marcel Bultez wrote:
sous msdos faire
extract/?

dans un .bat par exemple
for %%i in c:windowsoptionscabs*.cab do extract /d %%i *.inf
extrait tous les .inf des .cab




Avatar
scraper
Dans son message %,

ng nous a écrit/ répondu :


Salut,
Regarde du coté de : ExtractFileFromCab

'attention à diffuser vb6stkit.dll
Public Declare Function ExtractFileFromCab Lib "vb6stkit.dll" (ByVal
Cab As String, ByVal File As String, ByVal Dest As String, ByVal iCab
As Long, ByVal sSrc As String) As Long



salut !

merci, j'essaie ... ;-)




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
scraper
Dans son message ,

François Picalausa nous a écrit/ répondu :


Bonjour/soir,

Je conseillerais plutôt les API Setup qui sont nettement plus
documentées et
AMHA dont la présence est plus sûre:
http://msdn.microsoft.com/library/en-us/setupapi/setup/extracting_files_from_cabinets.asp



bonjour !

merci du lien ...

ça semblerait correspondre à ce que je souhaite (en fait, installer un *.inf depuis un cab ! :-)

mais j'avoue que j'ai du mal à comprendre le langage utilisé pour ces fonctions ?

(bool ... etc ...)

comment faire pour transformer ça en fonctions utilisables dans VB6 ?

j'ai bien cherché sur API Guide ..mais j'ai rien trouvé ?


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
François Picalausa
Bonjour/Soir,

"scraper" a écrit dans le message de
news:
Dans son message ,
(bool ... etc ...)
comment faire pour transformer ça en fonctions utilisables dans VB6 ?



Souvent, les APIs ont été traduites pour VB et mises à disposition sur le
web.
Exemple:
http://www.google.com/search?q=%22Declare+function+SetupIterateCabinet%22

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
Avatar
scraper
Dans son message ,

François Picalausa nous a écrit/ répondu :


Bonjour/Soir,



re !

Souvent, les APIs ont été traduites pour VB et mises à disposition
sur le web.
Exemple:
http://www.google.com/search?q=%22Declare+function+SetupIterateCabinet%22



OK ....effectivement, pour la fonction qui m'intéresserait (et sur le même site, itens) j'ai trouvé ça :

Declare Function SetupInstallFromInfSection Lib "setupapi.dll" Alias "SetupInstallFromInfSectionA" _
(ByVal Owner As Long, ByReffHandle As Long, ByVal SectionName As String, _
ByVal Flags As Long, ByVal RelativeKeyRoot As Long, ByVal SourceRootPath As String, _
ByVal CopyFlags As Long, ByRef MsgHandler As PSP_FILE_CALLBACK_A, _
Context As Any, ByRef DeviceInfoSet As Long, ByRef DeviceInfoData As PSP_DEVINFO_DATA )
As Long

... mais je suis pas plus avancé !

je sais pas quoi faire, en l'absence d'exemple, ni de doc pour servir tous ces paramètres ?!

faut pas oublier queje suis newbie ... ;-)

--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper - qui se débat comme il peut ! lol
Avatar
scraper
Rebonjour à tous ...

Je me permets de reposter, ayant pas mal cherché sur le net, et n'ayant tjs rien trouvé, pour savoir si personne ne pourrait m'aider
pour mo souci de fichier cab ...

en gros, je cherche à installer un prog depuis un cab ....

donc, sur les conseils de François, j'ai bien trouvé la fonction, en VB, susceptible de m'aider :

----------

Declare Function SetupInstallFromInfSection Lib "setupapi.dll" _
Alias "SetupInstallFromInfSectionA" (ByVal Owner As Long, _
ByReffHandle As Long, ByVal SectionName As String, _
ByVal Flags As Long, ByVal RelativeKeyRoot As Long, _
ByVal SourceRootPath As String, ByVal CopyFlags As Long, _
ByRef MsgHandler As PSP_FILE_CALLBACK_A, _
Context As Any, ByRef DeviceInfoSet As Long, ByRef _
DeviceInfoData As PSP_DEVINFO_DATA ) As Long
---------
mais je suis pas plus avancé !

est ce que quelqu'un pourrait me donner des infos sur les parmètres à passer ??

parce que pour moi, c'est du chinois ... :-)

notamment, les types ....

ou si vous avez un bout de code qui traîne ... ;-)

merci d'avance à tous !


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
François Picalausa
Bonjour/soir,

Je ne sais pas s'il y a des experts en la matière dans la salle mais faute
d'experts, voici comment je comprends comme utiliser les API setup pour
extraire un fichier:
Tout commence par un SetupOpenInfFile. Celui-ci renvoie un hInf (comprendre
un Long contenant un handle vers l'inf ouvert) qui peut être utilisé en
premier paramètre des autres API setup.
Pour installer un fichier spécifique, on devrait pouvoir faire appel à
SetupInstallFile
En premier paramètre, le hInf qu'on vient de récupérer.
InfContext semble pouvoir être oublier (le déclarer - dans le declare
function bla bla bla - As Any et lui passer -dans la procédure
d'extraction- Byval 0&)
SourceFile désigne le nom du fichier source, sans chemin (Toto.dat, pas
exemple)
Destination, la destination. Comme le second paramètre a été passé Byval 0&,
il faut indiquer un path absolu.
CopyStyle définit comment copier le fichier. Pour retrouver les constantes,
voir la faq: http://faq.vb.free.fr/index.php?questionh
CopyMessageHandler peut renvoyer à une procédure traitant la copie du
fichier à l'aide d'un addressof (mais pour commencer, un simple 0 pourrait
sufire... faire plus compliquer après :-) )
Context ne sert que si CopyMessageHandler est définit => 0 pour faire
simple.
Pour terminer, un appel à SetupCloseInfFile devrait suffire à libérer les
ressources.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"scraper" a écrit dans le message de
news:O3jJUT$
Rebonjour à tous ...

Je me permets de reposter, ayant pas mal cherché sur le net, et
n'ayant tjs rien trouvé, pour savoir si personne ne pourrait m'aider
pour mo souci de fichier cab ...

en gros, je cherche à installer un prog depuis un cab ....

donc, sur les conseils de François, j'ai bien trouvé la fonction, en
VB, susceptible de m'aider :

----------

Declare Function SetupInstallFromInfSection Lib "setupapi.dll" _
Alias "SetupInstallFromInfSectionA" (ByVal Owner As Long, _
ByReffHandle As Long, ByVal SectionName As String, _
ByVal Flags As Long, ByVal RelativeKeyRoot As Long, _
ByVal SourceRootPath As String, ByVal CopyFlags As Long, _
ByRef MsgHandler As PSP_FILE_CALLBACK_A, _
Context As Any, ByRef DeviceInfoSet As Long, ByRef _
DeviceInfoData As PSP_DEVINFO_DATA ) As Long
---------
mais je suis pas plus avancé !

est ce que quelqu'un pourrait me donner des infos sur les parmètres à
passer ??

parce que pour moi, c'est du chinois ... :-)

notamment, les types ....

ou si vous avez un bout de code qui traîne ... ;-)

merci d'avance à tous !


Avatar
François Picalausa
Bonjour/soir,

Je me dis que tu n'as peut-être pas d'inf pour installer le cab.
Mais voici un exemple utilisant SetupIterateCabinet qui ne nécessite pas
d'inf:
http://www.thescarms.com/vbasic/CabExplorer.asp

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"scraper" a écrit dans le message de
news:O3jJUT$
Rebonjour à tous ...

Je me permets de reposter, ayant pas mal cherché sur le net, et
n'ayant tjs rien trouvé, pour savoir si personne ne pourrait m'aider
pour mo souci de fichier cab ...

en gros, je cherche à installer un prog depuis un cab ....

donc, sur les conseils de François, j'ai bien trouvé la fonction, en
VB, susceptible de m'aider :

----------

Declare Function SetupInstallFromInfSection Lib "setupapi.dll" _
Alias "SetupInstallFromInfSectionA" (ByVal Owner As Long, _
ByReffHandle As Long, ByVal SectionName As String, _
ByVal Flags As Long, ByVal RelativeKeyRoot As Long, _
ByVal SourceRootPath As String, ByVal CopyFlags As Long, _
ByRef MsgHandler As PSP_FILE_CALLBACK_A, _
Context As Any, ByRef DeviceInfoSet As Long, ByRef _
DeviceInfoData As PSP_DEVINFO_DATA ) As Long
---------
mais je suis pas plus avancé !

est ce que quelqu'un pourrait me donner des infos sur les parmètres à
passer ??

parce que pour moi, c'est du chinois ... :-)

notamment, les types ....

ou si vous avez un bout de code qui traîne ... ;-)

merci d'avance à tous !


1 2