Sign in to follow this  
Followers 0
zelles

File MIME types

5 posts in this topic

I was looking to find the MIME type of a file using AutoIt and found a function to do it but it only detects the 26 hardcoded, test, MIME types and returns 0 if the file is not one of the few hardcoded MIME's... So I decided to throw a function together... It detects 249 MIME types via the files extention. The thing is it dedects only by the extention; and not by actually checking the file.

True MIME Finder: Supports 26 MIME Types

; sample usage

$file = "c:\file path\file.txt"
$mime_type = __GetMIMEByCode($file)
MsgBox(0, "MIME Type:", $mime_type)

; the function

Func __GetMIMEByCode($f_file)
    $f_call = DllCall("urlmon.dll", "long", "FindMimeFromData", _
                "ptr", 0, _
                "wstr", $f_file, _
                "ptr", 0, _
                "DWORD", 0, _
                "ptr", 0, _
                "DWORD", 1, _
                "ptr*", 0, _
                "DWORD", 0)
    If @error Then Return 0
    $f_mime = DllStructGetData(DllStructCreate("wchar[" & _WinAPI_StringLenW($f_call[7]) & "]", $f_call[7]), 1)
    Return $f_mime
EndFunc

Determine MIME By Extension: Supports 249 MIME Types

;sample usage

$file = "c:\file path\filename.txt"
$mime_type = __GetMIMEByExtention($file)
MsgBox(0, "MIME Type:", $mime_type)

; the function

Func __GetMIMEByExtention($f_file)
    Local $f_extension = StringSplit($f_file, ".")
    Switch '.' & $f_extension[$f_extension[0]]
        Case '.x3d'
            Return 'application/vnd.hzn-3d-crossword'
        Case '.3gp'
            Return 'video/3gpp'
        Case '.3g2'
            Return 'video/3gpp2'
        Case '.mseq'
            Return 'application/vnd.mseq'
        Case '.pwn'
            Return 'application/vnd.3m.post-it-notes'
        Case '.plb'
            Return 'application/vnd.3gpp.pic-bw-large'
        Case '.psb'
            Return 'application/vnd.3gpp.pic-bw-small'
        Case '.pvb'
            Return 'application/vnd.3gpp.pic-bw-var'
        Case '.tcap'
            Return 'application/vnd.3gpp2.tcap'
        Case '.7z'
            Return 'application/x-7z-compressed'
        Case '.abw'
            Return 'application/x-abiword'
        Case '.ace'
            Return 'application/x-ace-compressed'
        Case '.acc'
            Return 'application/vnd.americandynamics.acc'
        Case '.acu'
            Return 'application/vnd.acucobol'
        Case '.atc'
            Return 'application/vnd.acucorp'
        Case '.adp'
            Return 'audio/adpcm'
        Case '.aab'
            Return 'application/x-authorware-bin'
        Case '.aam'
            Return 'application/x-authorware-map'
        Case '.aas'
            Return 'application/x-authorware-seg'
        Case '.air'
            Return 'application/vnd.adobe.air-application-installer-package+zip'
        Case '.swf'
            Return 'application/x-shockwave-flash'
        Case '.fxp'
            Return 'application/vnd.adobe.fxp'
        Case '.pdf'
            Return 'application/pdf'
        Case '.ppd'
            Return 'application/vnd.cups-ppd'
        Case '.dir'
            Return 'application/x-director'
        Case '.xdp'
            Return 'application/vnd.adobe.xdp+xml'
        Case '.xfdf'
            Return 'application/vnd.adobe.xfdf'
        Case '.aac'
            Return 'audio/x-aac'
        Case '.ahead'
            Return 'application/vnd.ahead.space'
        Case '.azf'
            Return 'application/vnd.airzip.filesecure.azf'
        Case '.azs'
            Return 'application/vnd.airzip.filesecure.azs'
        Case '.azw'
            Return 'application/vnd.amazon.ebook'
        Case '.ami'
            Return 'application/vnd.amiga.ami'
        Case 'N/A'
            Return 'application/andrew-inset'
        Case '.apk'
            Return 'application/vnd.android.package-archive'
        Case '.cii'
            Return 'application/vnd.anser-web-certificate-issue-initiation'
        Case '.fti'
            Return 'application/vnd.anser-web-funds-transfer-initiation'
        Case '.atx'
            Return 'application/vnd.antix.game-component'
        Case '.mpkg'
            Return 'application/vnd.apple.installer+xml'
        Case '.aw'
            Return 'application/applixware'
        Case '.les'
            Return 'application/vnd.hhe.lesson-player'
        Case '.swi'
            Return 'application/vnd.aristanetworks.swi'
        Case '.s'
            Return 'text/x-asm'
        Case '.atomcat'
            Return 'application/atomcat+xml'
        Case '.atomsvc'
            Return 'application/atomsvc+xml'
        Case '.atom, .xml'
            Return 'application/atom+xml'
        Case '.ac'
            Return 'application/pkix-attr-cert'
        Case '.aif'
            Return 'audio/x-aiff'
        Case '.avi'
            Return 'video/x-msvideo'
        Case '.aep'
            Return 'application/vnd.audiograph'
        Case '.dxf'
            Return 'image/vnd.dxf'
        Case '.dwf'
            Return 'model/vnd.dwf'
        Case '.par'
            Return 'text/plain-bas'
        Case '.bcpio'
            Return 'application/x-bcpio'
        Case '.bin'
            Return 'application/octet-stream'
        Case '.bmp'
            Return 'image/bmp'
        Case '.torrent'
            Return 'application/x-bittorrent'
        Case '.cod'
            Return 'application/vnd.rim.cod'
        Case '.mpm'
            Return 'application/vnd.blueice.multipass'
        Case '.bmi'
            Return 'application/vnd.bmi'
        Case '.sh'
            Return 'application/x-sh'
        Case '.btif'
            Return 'image/prs.btif'
        Case '.rep'
            Return 'application/vnd.businessobjects'
        Case '.bz'
            Return 'application/x-bzip'
        Case '.bz2'
            Return 'application/x-bzip2'
        Case '.csh'
            Return 'application/x-csh'
        Case '.c'
            Return 'text/x-c'
        Case '.cdxml'
            Return 'application/vnd.chemdraw+xml'
        Case '.css'
            Return 'text/css'
        Case '.cdx'
            Return 'chemical/x-cdx'
        Case '.cml'
            Return 'chemical/x-cml'
        Case '.csml'
            Return 'chemical/x-csml'
        Case '.cdbcmsg'
            Return 'application/vnd.contact.cmsg'
        Case '.cla'
            Return 'application/vnd.claymore'
        Case '.c4g'
            Return 'application/vnd.clonk.c4group'
        Case '.sub'
            Return 'image/vnd.dvb.subtitle'
        Case '.cdmia'
            Return 'application/cdmi-capability'
        Case '.cdmic'
            Return 'application/cdmi-container'
        Case '.cdmid'
            Return 'application/cdmi-domain'
        Case '.cdmio'
            Return 'application/cdmi-object'
        Case '.cdmiq'
            Return 'application/cdmi-queue'
        Case '.c11amc'
            Return 'application/vnd.cluetrust.cartomobile-config'
        Case '.c11amz'
            Return 'application/vnd.cluetrust.cartomobile-config-pkg'
        Case '.ras'
            Return 'image/x-cmu-raster'
        Case '.dae'
            Return 'model/vnd.collada+xml'
        Case '.csv'
            Return 'text/csv'
        Case '.cpt'
            Return 'application/mac-compactpro'
        Case '.wmlc'
            Return 'application/vnd.wap.wmlc'
        Case '.cgm'
            Return 'image/cgm'
        Case '.ice'
            Return 'x-conference/x-cooltalk'
        Case '.cmx'
            Return 'image/x-cmx'
        Case '.xar'
            Return 'application/vnd.xara'
        Case '.cmc'
            Return 'application/vnd.cosmocaller'
        Case '.cpio'
            Return 'application/x-cpio'
        Case '.clkx'
            Return 'application/vnd.crick.clicker'
        Case '.clkk'
            Return 'application/vnd.crick.clicker.keyboard'
        Case '.clkp'
            Return 'application/vnd.crick.clicker.palette'
        Case '.clkt'
            Return 'application/vnd.crick.clicker.template'
        Case '.clkw'
            Return 'application/vnd.crick.clicker.wordbank'
        Case '.wbs'
            Return 'application/vnd.criticaltools.wbs+xml'
        Case '.cryptonote'
            Return 'application/vnd.rig.cryptonote'
        Case '.cif'
            Return 'chemical/x-cif'
        Case '.cmdf'
            Return 'chemical/x-cmdf'
        Case '.cu'
            Return 'application/cu-seeme'
        Case '.cww'
            Return 'application/prs.cww'
        Case '.curl'
            Return 'text/vnd.curl'
        Case '.dcurl'
            Return 'text/vnd.curl.dcurl'
        Case '.mcurl'
            Return 'text/vnd.curl.mcurl'
        Case '.scurl'
            Return 'text/vnd.curl.scurl'
        Case '.car'
            Return 'application/vnd.curl.car'
        Case '.pcurl'
            Return 'application/vnd.curl.pcurl'
        Case '.cmp'
            Return 'application/vnd.yellowriver-custom-menu'
        Case '.dssc'
            Return 'application/dssc+der'
        Case '.xdssc'
            Return 'application/dssc+xml'
        Case '.deb'
            Return 'application/x-debian-package'
        Case '.uva'
            Return 'audio/vnd.dece.audio'
        Case '.uvi'
            Return 'image/vnd.dece.graphic'
        Case '.uvh'
            Return 'video/vnd.dece.hd'
        Case '.uvm'
            Return 'video/vnd.dece.mobile'
        Case '.uvu'
            Return 'video/vnd.uvvu.mp4'
        Case '.uvp'
            Return 'video/vnd.dece.pd'
        Case '.uvs'
            Return 'video/vnd.dece.sd'
        Case '.uvv'
            Return 'video/vnd.dece.video'
        Case '.dvi'
            Return 'application/x-dvi'
        Case '.seed'
            Return 'application/vnd.fdsn.seed'
        Case '.dtb'
            Return 'application/x-dtbook+xml'
        Case '.res'
            Return 'application/x-dtbresource+xml'
        Case '.ait'
            Return 'application/vnd.dvb.ait'
        Case '.svc'
            Return 'application/vnd.dvb.service'
        Case '.eol'
            Return 'audio/vnd.digital-winds'
        Case '.djvu'
            Return 'image/vnd.djvu'
        Case '.dtd'
            Return 'application/xml-dtd'
        Case '.mlp'
            Return 'application/vnd.dolby.mlp'
        Case '.wad'
            Return 'application/x-doom'
        Case '.dpg'
            Return 'application/vnd.dpgraph'
        Case '.dra'
            Return 'audio/vnd.dra'
        Case '.dfac'
            Return 'application/vnd.dreamfactory'
        Case '.dts'
            Return 'audio/vnd.dts'
        Case '.dtshd'
            Return 'audio/vnd.dts.hd'
        Case '.dwg'
            Return 'image/vnd.dwg'
        Case '.geo'
            Return 'application/vnd.dynageo'
        Case '.es'
            Return 'application/ecmascript'
        Case '.mag'
            Return 'application/vnd.ecowin.chart'
        Case '.mmr'
            Return 'image/vnd.fujixerox.edmics-mmr'
        Case '.rlc'
            Return 'image/vnd.fujixerox.edmics-rlc'
        Case '.exi'
            Return 'application/exi'
        Case '.mgz'
            Return 'application/vnd.proteus.magazine'
        Case '.epub'
            Return 'application/epub+zip'
        Case '.eml'
            Return 'message/rfc822'
        Case '.nml'
            Return 'application/vnd.enliven'
        Case '.xpr'
            Return 'application/vnd.is-xpr'
        Case '.xif'
            Return 'image/vnd.xiff'
        Case '.xfdl'
            Return 'application/vnd.xfdl'
        Case '.emma'
            Return 'application/emma+xml'
        Case '.ez2'
            Return 'application/vnd.ezpix-album'
        Case '.ez3'
            Return 'application/vnd.ezpix-package'
        Case '.fst'
            Return 'image/vnd.fst'
        Case '.fvt'
            Return 'video/vnd.fvt'
        Case '.fbs'
            Return 'image/vnd.fastbidsheet'
        Case '.fe_launch'
            Return 'application/vnd.denovo.fcselayout-link'
        Case '.f4v'
            Return 'video/x-f4v'
        Case '.flv'
            Return 'video/x-flv'
        Case '.fpx'
            Return 'image/vnd.fpx'
        Case '.npx'
            Return 'image/vnd.net-fpx'
        Case '.flx'
            Return 'text/vnd.fmi.flexstor'
        Case '.fli'
            Return 'video/x-fli'
        Case '.ftc'
            Return 'application/vnd.fluxtime.clip'
        Case '.fdf'
            Return 'application/vnd.fdf'
        Case '.f'
            Return 'text/x-fortran'
        Case '.mif'
            Return 'application/vnd.mif'
        Case '.fm'
            Return 'application/vnd.framemaker'
        Case '.fh'
            Return 'image/x-freehand'
        Case '.fsc'
            Return 'application/vnd.fsc.weblaunch'
        Case '.fnc'
            Return 'application/vnd.frogans.fnc'
        Case '.ltf'
            Return 'application/vnd.frogans.ltf'
        Case '.ddd'
            Return 'application/vnd.fujixerox.ddd'
        Case '.xdw'
            Return 'application/vnd.fujixerox.docuworks'
        Case '.xbd'
            Return 'application/vnd.fujixerox.docuworks.binder'
        Case '.oas'
            Return 'application/vnd.fujitsu.oasys'
        Case '.oa2'
            Return 'application/vnd.fujitsu.oasys2'
        Case '.oa3'
            Return 'application/vnd.fujitsu.oasys3'
        Case '.fg5'
            Return 'application/vnd.fujitsu.oasysgp'
        Case '.bh2'
            Return 'application/vnd.fujitsu.oasysprs'
        Case '.spl'
            Return 'application/x-futuresplash'
        Case '.fzs'
            Return 'application/vnd.fuzzysheet'
        Case '.g3'
            Return 'image/g3fax'
        Case '.gmx'
            Return 'application/vnd.gmx'
        Case '.gtw'
            Return 'model/vnd.gtw'
        Case '.txd'
            Return 'application/vnd.genomatix.tuxedo'
        Case '.ggb'
            Return 'application/vnd.geogebra.file'
        Case '.ggt'
            Return 'application/vnd.geogebra.tool'
        Case '.gdl'
            Return 'model/vnd.gdl'
        Case '.gex'
            Return 'application/vnd.geometry-explorer'
        Case '.gxt'
            Return 'application/vnd.geonext'
        Case '.g2w'
            Return 'application/vnd.geoplan'
        Case '.g3w'
            Return 'application/vnd.geospace'
        Case '.gsf'
            Return 'application/x-font-ghostscript'
        Case '.bdf'
            Return 'application/x-font-bdf'
        Case '.gtar'
            Return 'application/x-gtar'
        Case '.texinfo'
            Return 'application/x-texinfo'
        Case '.gnumeric'
            Return 'application/x-gnumeric'
        Case '.kml'
            Return 'application/vnd.google-earth.kml+xml'
        Case '.kmz'
            Return 'application/vnd.google-earth.kmz'
        Case '.gqf'
            Return 'application/vnd.grafeq'
        Case '.gif'
            Return 'image/gif'
        Case '.gv'
            Return 'text/vnd.graphviz'
        Case '.gac'
            Return 'application/vnd.groove-account'
        Case '.ghf'
            Return 'application/vnd.groove-help'
        Case '.gim'
            Return 'application/vnd.groove-identity-message'
        Case '.grv'
            Return 'application/vnd.groove-injector'
        Case '.gtm'
            Return 'application/vnd.groove-tool-message'
        Case '.tpl'
            Return 'application/vnd.groove-tool-template'
        Case '.vcg'
            Return 'application/vnd.groove-vcard'
        Case '.h261'
            Return 'video/h261'
        Case '.h263'
            Return 'video/h263'
        Case '.h264'
            Return 'video/h264'
        Case '.hpid'
            Return 'application/vnd.hp-hpid'
        Case '.hps'
            Return 'application/vnd.hp-hps'
        Case '.hdf'
            Return 'application/x-hdf'
        Case '.rip'
            Return 'audio/vnd.rip'
        Case '.hbci'
            Return 'application/vnd.hbci'
        Case '.jlt'
            Return 'application/vnd.hp-jlyt'
        Case '.pcl'
            Return 'application/vnd.hp-pcl'
        Case '.hpgl'
            Return 'application/vnd.hp-hpgl'
        Case '.hvs'
            Return 'application/vnd.yamaha.hv-script'
        Case '.hvd'
            Return 'application/vnd.yamaha.hv-dic'
        Case '.hvp'
            Return 'application/vnd.yamaha.hv-voice'
        Case '.sfd-hdstx'
            Return 'application/vnd.hydrostatix.sof-data'
        Case '.stk'
            Return 'application/hyperstudio'
        Case '.hal'
            Return 'application/vnd.hal+xml'
        Case '.html'
            Return 'text/html'
        Case '.irm'
            Return 'application/vnd.ibm.rights-management'
        Case '.sc'
            Return 'application/vnd.ibm.secure-container'
        Case '.ics'
            Return 'text/calendar'
        Case '.icc'
            Return 'application/vnd.iccprofile'
        Case '.ico'
            Return 'image/x-icon'
        Case '.igl'
            Return 'application/vnd.igloader'
        Case '.ief'
            Return 'image/ief'
        Case '.ivp'
            Return 'application/vnd.immervision-ivp'
        Case '.ivu'
            Return 'application/vnd.immervision-ivu'
        Case '.rif'
            Return 'application/reginfo+xml'
        Case '.3dml'
            Return 'text/vnd.in3d.3dml'
        Case '.spot'
            Return 'text/vnd.in3d.spot'
        Case '.igs'
            Return 'model/iges'
        Case '.i2g'
            Return 'application/vnd.intergeo'
        Case '.cdy'
            Return 'application/vnd.cinderella'
        Case '.xpw'
            Return 'application/vnd.intercon.formnet'
        Case '.fcs'
            Return 'application/vnd.isac.fcs'
        Case '.ipfix'
            Return 'application/ipfix'
        Case Else
            Return 0
    EndSwitch
EndFunc

Share this post


Link to post
Share on other sites



You'd be better off creating a script that reads the file the way FindMimeFromData does and use that information to determine the mime type. FindMimeFromData reads the first (approximately) 256 bytes of a file and looks for a file signature in there to determine what the mime type is. You can find a list of mime type signatures to look for here. You can do a FileRead of the first 256 bytes by opening the file in binary mode and specifying the bytes to read. You can read how FindMimeFromData works here if you're not familiar with it.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

@BrewManNH Thank you very much for the information. I'll see if I can put something together using that method. Thanks a bunch!

Share this post


Link to post
Share on other sites

There's also a command line app to do file type identification called TrID.
http://mark0.net/soft-trid-e.html
To use it, download the win32 app and the definitions.

Bonus: This can help you find the type of a file that has been renamed. If you have a file with an incorrect or missing extension, you can use TrID to find out what extension to give it so you can view/edit it.


Who else would I be?

Share this post


Link to post
Share on other sites

Bonus: This can help you find the type of a file that has been renamed. If you have a file with an incorrect or missing extension, you can use TrID to find out what extension to give it so you can view/edit it.

 

Thanks for the information bud. I want it to find the true MIME type, not just suggested MIME from the extension like I have now... I'll look into that tool. Thanks again.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • KimberlyJillPereira
      By KimberlyJillPereira
      Using the alarm received parameter how to search for the picture that matches the year month day hour min and sec and by the name of the .jpg file the jpg file naming format is first letter is always m followed by last two digits of year then two digit month two digit day two digit hour two digit minute and two digit second then get that picture and paste it in Microsoft Excel.How to do it? Please help me. Thank you.



    • PINTO1927
      By PINTO1927
      Hello guys, I'm working on this script:
      $search = GUICtrlCreateButton("Search", 10, 10, 90, 30) $find = GUICtrlCreateInput("", 710, 10, 200, 25) GUICtrlSetState($find, $GUI_DISABLE) $ok_find = GUICtrlCreateButton("Find", 925, 10, 65, 25) GUICtrlSetState($ok_find, $GUI_DISABLE)  
      Case $search GUICtrlSetState($ok_trova, $GUI_ENABLE) GUICtrlSetState($trova, $GUI_ENABLE) _GUICtrlListView_SimpleSort($list, $g_bSortSense, 0, False) _GUICtrlListView_DeleteAllItems($list) $File_txt = _FileListToArray("\\PATH\", "*.ini", $FLTA_FILES, True) Local $aLines, $File_txt For $i = 1 To $File_txt[0] _FileReadtoArray($File_txt[$i], $aLines) For $j = 1 To $aLines[0] GUICtrlCreateListViewItem($aLines[$j], $list) Next Next For $i2 = 0 To _GUICtrlListView_GetColumnCount($list) _GUICtrlListView_SetColumnWidth($list, $i2, $LVSCW_AUTOSIZE_USEHEADER) Next Case $ok_find $iI = _GUICtrlListView_FindInText($list, GUICtrlRead($input_find)) MsgBox($MB_SYSTEMMODAL, "Information", "Target Item Index: " & $iI) _GUICtrlListView_EnsureVisible($list, $iI) through a inputbox I would search for the desired word and highlight it in the GuiCtrlListView.
      Can you help me?
    • mLipok
      By mLipok
      I played around a little with http://www.chilkatsoft.com/ ActiveX components. Here is an example based on examples from this page.   #include <FileConstants.au3> #include <MsgBoxConstants.au3> ;~ http://www.chilkatsoft.com/downloads_ActiveX.asp ;~ http://www.chilkatsoft.com/support.asp ;~ http://www.chilkatsoft.com/refdoc/activex.asp ;~ http://www.chilkatsoft.com/refdoc/xChilkatCertStoreRef.html ;~ http://www.chilkatsoft.com/refdoc/xChilkatCertChainRef.html ;~ Email ActiveX Reference Documentation ;~ http://www.chilkatsoft.com/refdoc/xChilkatEmailRef.html ;~ http://www.example-code.com/vbscript/emailObj.asp ;~ http://www.example-code.com/vbscript/pop3.asp Global $_sPOP3_Server = 'xxxxxx' Global $_sPOP3_UserName = 'xxxxxx' Global $_sPOP3_Password = 'xxxxxx' _Example_1_Version() _Example_2_Get_number_of_mesages() _Example_3_Retrieve_UIDLs_from_POP3_Server() _Example_4_Save_Email_Attachments_to_Filesystem() Func _Example_1_Version() Local $oCrypt = ObjCreate("Chilkat_9_5_0.Crypt2") MsgBox(0, '', $oCrypt.Version) EndFunc ;==>_Example_1_Version Func _Example_2_Get_number_of_mesages() ; http://www.example-code.com/vbscript/pop3_mailboxCount.asp ; The mailman object is used for receiving (POP3) ; and sending (SMTP) email. ; This ObjCreate statement uses the new single-DLL ActiveX for v9.5.0 Local $oMailman = ObjCreate("Chilkat_9_5_0.MailMan") ; Any string argument automatically begins the 30-day trial. $success = $oMailman.UnlockComponent("30-day trial") If ($success <> 1) Then MsgBox(0, 'UnlockComponent', $oMailman.LastErrorText) Return EndIf ; Set the POP3 server's hostname $oMailman.MailHost = $_sPOP3_Server ; Set the POP3 login/password. $oMailman.PopUsername = $_sPOP3_UserName $oMailman.PopPassword = $_sPOP3_Password ; Get the number of messages in the mailbox. Local $iNumMessages = $oMailman.GetMailboxCount() MsgBox(0, '', $iNumMessages) EndFunc ;==>_Example_2_Get_number_of_mesages Func _Example_3_Retrieve_UIDLs_from_POP3_Server() ; Retrieve UIDL's from POP3 Server ; http://www.example-code.com/vbscript/pop3_getUidls.asp ; The mailman object is used for receiving (POP3) ; and sending (SMTP) email. ; This ObjCreate statement uses the new single-DLL ActiveX for v9.5.0 Local $oMailman = ObjCreate("Chilkat_9_5_0.MailMan") ; Any string argument automatically begins the 30-day trial. $success = $oMailman.UnlockComponent("30-day trial") If ($success <> 1) Then MsgBox(0, 'UnlockComponent', $oMailman.LastErrorText) Return EndIf ; Set the POP3 server's hostname $oMailman.MailHost = $_sPOP3_Server ; Set the POP3 login/password. $oMailman.PopUsername = $_sPOP3_UserName $oMailman.PopPassword = $_sPOP3_Password ; sa is a Chilkat_9_5_0.StringArray Local $oSA = $oMailman.GetUidls() Local $iCount = $oSA.Count For $i = 0 To $iCount - 1 ConsoleWrite($oSA.GetString($i) & @CRLF) Next EndFunc ;==>_Example_3_Retrieve_UIDLs_from_POP3_Server Func _Example_4_Save_Email_Attachments_to_Filesystem() ; Save Email Attachments to Filesystem ; http://www.example-code.com/vbscript/emailObject_saveAttachments.asp Local $oEmail = ObjCreate("Chilkat_9_5_0.Email") ; Load an email object containing attachments. ; This .eml can be downloaded from: ; http://www.example-code.com/testData/HtmlEmail.eml Local $sEML_FileFullPath = FileOpenDialog('Choose EML File', @ScriptDir, 'EML file (*.eml)', $FD_FILEMUSTEXIST) If @error Then ; Display the error message. MsgBox($MB_SYSTEMMODAL, "", "No file(s) were selected.") Return 0 EndIf Local $iSuccess = $oEmail.LoadEml($sEML_FileFullPath) If ($iSuccess <> 1) Then ConsoleWrite($oEmail.LastErrorText & @CRLF) Return 0 EndIf ; If OverwriteExisting is turned on, files with the same ; name are overwritten. If turned off, new/unique filenames ; are automatically generated. The filenames actually saved ; are accessible via the GetAttachmentFilename method. $oEmail.OverwriteExisting = 1 ; Save all attachments to the "myAttachments" subdirectory ; found under the calling process;s current working directory. ; This directory is automatically created if it does not already ; exist. $iSuccess = $oEmail.SaveAllAttachments("myAttachments") If ($iSuccess <> 1) Then ConsoleWrite($oEmail.LastErrorText & @CRLF) Return 0 EndIf ; List the attachment filenames: For $i = 0 To $oEmail.NumAttachments - 1 ConsoleWrite($oEmail.GetAttachmentFilename($i) & @CRLF) Next EndFunc ;==>_Example_4_Save_Email_Attachments_to_Filesystem Best regards
      mLipok
       
    • Jfish
      By Jfish
      I searched around for the best way to this and am still a bit lost.  I am trying to find the last non-empty cell in a column in Excel.  In the past, there was a function _ExcelSheetUsedRangeGet($oExcel, $vSheet) in >this thread.  However, much has changed since then and when I downloaded it I could not find that function to see how it worked.
      Google found this site for me which offered a couple of promising looking approaches:
      They are in VBA.  I usually can convert VBA but I am not 100% on these.  The first approach looks a lot like it should convert easily to _Excel_RangeFind but I am not familiar enough with all the parameters.  I understand the operators referenced in the help file but I did not see a lot of info on XLFindLookIn and not sure what to do with .Row.
      I am also not sure if these are the best approaches?  Any guidance on the best way to do this would be much appreciated.  If this is already part of _Excel_RangeFind I could use an example.  Any help would be greatly appreciated.
      JFish
       
    • Servant
      By Servant
      How can I programatically find the styles of all the sentences on a Microsoft Word document?
      I tried this code but it didn't work:
      #include <Word.au3> Global $oWord, $oDoc $oWord = _Word_Create() $oDoc = _Word_DocGet($oWord, 1) Local $sCount = $oDoc.Sentences.Count For $i = 0 To $sCount - 1 Local $oRange = _Word_DocRangeSet($oDoc, -1, $wdSentence, $i, $wdSentence, 1) ConsoleWrite("The style of this sentence is: " & $oRange.Style & @LF) Next