Low level disk access using win API libraries

Hello All,
One of my project requires "low level access to the drives (usually pen Drive)' for analysis. I think this is possible using WIN API functions, i tried to read using kernal32.dll but i am unable to complete the task effectively, since i dont have sufficient exposure to text oriented languages. Basically i need to read the memory as it is stored, just like stream of bytes. Could any one guide me how do i proceed inorder to get rid of this.
thank you.

Unfortunately no. You cannot mix both high and low level on the same screen. You'll probably have to draw it out yourself and capture user input, unless you're willing to use textboxes.
Or.. i suppose you can try using customItems for all your "coloring" instead?

Similar Messages

  • Remove Child Window from Parent using WIN API

    Hello all,
    I am using User32.dll to make a parent-child relationship between two VIs. I use SetParent function, and pass the handle of parent VI and child VI to this function. Now, after this relationship has been established, I want to remove the child window from the parent and use it as a independent VI using WIN API. Can anyone help me on this?
    Thanks in advance!
    Fragger Fox!
    -FraggerFox!
    Certified LabVIEW Architect, Certified TestStand Developer
    "What you think today is what you live tomorrow"
    Solved!
    Go to Solution.

    You should be able to set a NULL handle to undo the parent-child relationship and make the child window again a normal top level window. Setting the desktop as parent is probably not the same as being a top level window.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • High performance (low level) jdbc access routines

    Does anyone know of any low level jdbc access routines?
    My need is to be able to do high speed data access. I'm looking for something 2 orders of magnitude faster than what is available with the typical use of java.sql (connection, preparedstatement, resultset and so on).
    Several years ago while using visual basic and odbc, I had to use direct calls to the odbc32.dll functions for data access to get the performance I wanted rather than the ado and rdo stuff. I am wondering what is available with jdbc - perhaps the routines that are used when writing jdbc drivers themselves. I don't know if there is an equivalent "gateway" that all jdbc drivers use (like the odbc32.dll that is used with all odbc drivers in windows)
    Any comments would be appreciated. Even just hints as to where I might find this kind of information.

    Does anyone know of any low level jdbc access routines? What are you expecting besides what is provided in the java.sql interfaces?
    The JDBC spec spells out what the interfaces are. There isn't anything else to call.
    >
    My need is to be able to do high speed data access.
    I'm looking for something 2 orders of magnitude
    faster than what is available with the typical use
    of java.sql (connection, preparedstatement, resultset
    and so on).Faster than what driver talking to what database over what network?
    Several years ago while using visual basic and odbc,
    I had to use direct calls to the odbc32.dll functions
    for data access to get the performance I wanted
    rather than the ado and rdo stuff. I am wondering
    what is available with jdbc - perhaps the routines
    that are used when writing jdbc drivers themselves.You'll have to write your own driver.
    I don't know if there is an equivalent "gateway"
    " that all jdbc drivers use (like the odbc32.dll that
    is used with all odbc drivers in windows)Since Java's platform-independent, there's no easy out like taking advantage of OS calls.
    Any comments would be appreciated. Even just hints
    as to where I might find this kind of information.Sounds to me like you want to write your own driver, and when you're done it will only be good for one database and operating system.
    I'd have to ask what made you so certain that database calls were the bottleneck in your app. For the typical Web app, a reasonably well written persistence layer will be fast enough. There's other network latency in the system, and UI response can be slow enough to keep up. Are you worried about high throughput to the database for a Web app? If so, you might be guilty of premature optimization.
    Unless I was absolutely certain that the JDBC driver from my database vendor would not do the job, I'd write the app and then profile it to find out where the performance bottlenecks were. I wouldn't take this extreme step until I was certain that the driver was the problem and a custom version would fix it.
    %

  • Require assistance on low level disk IO through Java.

    Hi
    I am looking for some java Api manual or java code for low level disk IO.
    Precise problem is, I am having minix image and a pen drive. I want to boot my pc from minix.
    In order to make pen drive bootable I need to write the image to sector 0 for which I have no idea how to do.
    Any info will be a gr8 help.
    Thanks
    Vineet.

    VineetArora wrote:
    Hi
    I am looking for some java Api manual or java code for low level disk IO.
    Precise problem is, I am having minix image and a pen drive. I want to boot my pc from minix.
    In order to make pen drive bootable I need to write the image to sector 0 for which I have no idea how to do.
    Any info will be a gr8 help.
    You can't. Give up now and choose a more suitable language for this project.

  • Low-level USB control

    Hi all,
    I'm trying to do some very-low level USB control using Labview. Tasks are:
    -Write 1 to output
    -Write 0 to output
    -Write clock to output.
    Very simple tasks (no need to read, just write) , but i need to be able to do this with just a USB cable attached without any device. It will be used to characterize the cable.
    The other end of the cable will be terminated appropriately. 
    If anyone could give me some information for me to start this, that would be extremely helpful.

    If you want to do something like setting the pins of a RS-232 port without a device attached, this will not work.
    USB works fundamentally differently to RS-232.  It is a point-to-point connection.  It doesn't work open ended and you don't have direct access to the signal levels at all.
    Look for a cheap I/O device instead and use it for testing.
    Shane.
    Say hello to my little friend.
    RFC 2323 FHE-Compliant

  • Equivalent C API libraries of MQ Series in HP UX needed

    Hi,
    My C program uses MQ API libraries in Solaris. I need the HP UX equivalent for the same. i.e
    In Solaris, I am using the command :
    CC In_Proc.c -mt -l imqb23ss -l imqc23ss -lmqic -lmqmcs -lmqmzse -lsocket -lnsl -ldl -o SWIFT_INCOMING_LISTENER
    to compile my program "In_Proc.c".
    What would be the equivalent libraries (for libary files imqb23ss , imqc23ss , lmqic , lmqmcs , lmqmzse , lsocket , lnsl and ldl ) in HP UX? And how would the compilation command look like ?

    Are you really only asking about the first error? I listed three, and I thought the first two, being rather simple and obvious, were adequately described. I'll try again.
    0. $ cd db-4.5.20.NC/build_unix
    1. $ CC=/opt/ansic/bin/cc ../dist/configure enable-cxx enable-diagnostic \
    enable-java enable-posixmutexes enable-pthread_api enable-test \
    enable-tcl with-tcl=/usr/local/lib --prefix=/usr/local
    This results in numerous failures before the configure script decides one is fatal.
    Here's the first error showing in my config.log:
    cc: warning 422: Unknown option "m" ignored.
    cc: error 1400: Option t usage: -t c,name where c may be 1 or more of pc0al.
    configure:4925: $? = 0
    2. $ CC="/opt/aCC/bin/aCC -Ae" ../dist/configure ... # same flags as above
    This results in apparent success, but for these messages:
    ../dist/configure[22735]: test: Specify a parameter with this command.
    configure: WARNING: pread/pwrite interfaces ignored on hpux11.11-hp.
    3. $ make
    Then I run the self-test as per documentation.
    $ tclsh8.4
    % source ../test/test.tcl
    % run_std
    This runs for two days or so, and results in the error I mentioned previously,
    here's the excerpt from ALL.OUT:
    Rep039.h: Verify logs and databases
    Rep_verify: ./TESTDIR/MASTERDIR: Logs and databases match
    Rep_verify: ./TESTDIR/CLIENTDIR: Logs and databases match
    FAIL: rep_subset test: child killed: SIGABRT
    I also notice that the tclsh8.4 program dumped a core file about two hours before the end of the test run; shouldn't the testing have stopped there?

  • Can I use textfield in an application with low level api?

    Hello !
    I am developing a mobile application using the low level api.
    I have to use it, because I do a lot of coloring.
    But I want to use high level textfields as well. Is there any way
    to include them in my application without using forms?
    Does any one know, why J2ME designer's have limited the access
    to the TextField's paint()-method? That's why I cannot inherit
    from TextField and overwrite the paint() as I would like to do.
    Thanks.

    Unfortunately no. You cannot mix both high and low level on the same screen. You'll probably have to draw it out yourself and capture user input, unless you're willing to use textboxes.
    Or.. i suppose you can try using customItems for all your "coloring" instead?

  • How can I get low level access to netstream using OSMF?

    Hi
    I'm trying to gain access to the low level netstream underneath the hood of OSMF so that I can access its netstream.info property for reading metrics.
    I find that I am able to do this for MP4 videos but not for F4M dynamic streaming videos.
    For MP4, I was successfully able to create a VideoElement that used a CustomNetLoader class which overrided the createNetStream method to return a netstream object.
    However, for F4M, I have to use either the MediaFactory.createMediaElement(element) method or the F4MElement. The F4MElement does not allow a CustomNetLoader to be used and it seems to only accept a F4MLoader class.
    Any advice on how I can access either the netstream object or the metrics of F4M videos?
    Thanks

    ok, I finally got access to the direct netstream object - someone from Akamai gave me the answer.
    Seeing how I wasn't able to find this answer anywhere on Google, I'm going to post the solution here as there's no way I would have known this solution without someone who knew how to get direct access to the netsteam object in OSMF.
    There's a hidden class that won't show up in the code hint called org.osmf.net.NetStreamLoadTrait that you have to import.
    1) First, your media player playing controlling your MediaElement has to listen for a LoadEvent.LOAD_STATE_CHANGE event after you load the MediaElement into the media player
    mediaPlayer.addEventListener(LoadEvent.LOAD_STATE_CHANGE, onLoadStateChange);
    2) Upon LoadEvent.LOAD_STATE_CHANGE, check for a org.osmf.traits.LoadState.READY - you can only access the NetStream object when it is LoadState.READY or the netstream object will return as null.
    private function onLoadStateChange(e:LoadEvent)
                                  if(e.loadState == LoadState.READY)
    3) Once the LoadState.READY is true, you can create a datatype of NetStreamLoadTrait and type cast it from a Load trait:
    private function onLoadStateChange(e:LoadEvent)
      if(e.loadState == LoadState.READY)
         var nsLoadTrait:NetStreamLoadTrait = mediaPlayer.media.getTrait(MediaTraitType.LOAD) as NetStreamLoadTrait;
    4) Once you successfully type cast the Media Load Trait from your media into NetStreamLoadTrait, you can access the property netstream from the NetStreamLoadTrait object.
    private function onLoadStateChange(e:LoadEvent)
      if(e.loadState == LoadState.READY)
         var nsLoadTrait:NetStreamLoadTrait = mediaPlayer.media.getTrait(MediaTraitType.LOAD) as NetStreamLoadTrait;
         var ns:NetStream = nsLoadTrait.netStream;
    Hope this helps someone out there.

  • Example using low level API POI for generating Excel??

    Hi
    is anyone know good URL that teaches generating Excel using low level API using Apache POI?
    The reason is because i want to set the password for either workbook/sheet in high level API but it cant be done.
    the only thing can be done using High level API is protect sheet without password.
    Any idea?
    Thanks

    There is quite a good pack of documentation that ships with HSSF. To answer your question, I have just gone to the how to page and copied the example below, hope it helps.
    short rownum;
    // create a new file
    FileOutputStream out = new FileOutputStream("workbook.xls");
    // create a new workbook
    HSSFWorkbook wb = new HSSFWorkbook();
    // create a new sheet
    HSSFSheet s = wb.createSheet();
    // declare a row object reference
    HSSFRow r = null;
    // declare a cell object reference
    HSSFCell c = null;
    // create 3 cell styles
    HSSFCellStyle cs = wb.createCellStyle();
    HSSFCellStyle cs2 = wb.createCellStyle();
    HSSFCellStyle cs3 = wb.createCellStyle();
    HSSFDataFormat df = wb.createDataFormat();
    // create 2 fonts objects
    HSSFFont f = wb.createFont();
    HSSFFont f2 = wb.createFont();
    //set font 1 to 12 point type
    f.setFontHeightInPoints((short) 12);
    //make it blue
    f.setColor( (short)0xc );
    // make it bold
    //arial is the default font
    f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    //set font 2 to 10 point type
    f2.setFontHeightInPoints((short) 10);
    //make it red
    f2.setColor( (short)HSSFFont.COLOR_RED );
    //make it bold
    f2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    f2.setStrikeout( true );
    //set cell stlye
    cs.setFont(f);
    //set the cell format
    cs.setDataFormat(df.getFormat("#,##0.0"));
    //set a thin border
    cs2.setBorderBottom(cs2.BORDER_THIN);
    //fill w fg fill color
    cs2.setFillPattern((short) HSSFCellStyle.SOLID_FOREGROUND);
    //set the cell format to text see HSSFDataFormat for a full list
    cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
    // set the font
    cs2.setFont(f2);
    // set the sheet name in Unicode
    wb.setSheetName(0, "\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F " +
                       "\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043A\u0430",
                    HSSFWorkbook.ENCODING_UTF_16 );
    // in case of compressed Unicode
    // wb.setSheetName(0, "HSSF Test", HSSFWorkbook.ENCODING_COMPRESSED_UNICODE );
    // create a sheet with 30 rows (0-29)
    for (rownum = (short) 0; rownum < 30; rownum++)
        // create a row
        r = s.createRow(rownum);
        // on every other row
        if ((rownum % 2) == 0)
            // make the row height bigger  (in twips - 1/20 of a point)
            r.setHeight((short) 0x249);
        //r.setRowNum(( short ) rownum);
        // create 10 cells (0-9) (the += 2 becomes apparent later
        for (short cellnum = (short) 0; cellnum < 10; cellnum += 2)
            // create a numeric cell
            c = r.createCell(cellnum);
            // do some goofy math to demonstrate decimals
            c.setCellValue(rownum * 10000 + cellnum
                    + (((double) rownum / 1000)
                    + ((double) cellnum / 10000)));
            String cellValue;
            // create a string cell (see why += 2 in the
            c = r.createCell((short) (cellnum + 1));
            // on every other row
            if ((rownum % 2) == 0)
                // set this cell to the first cell style we defined
                c.setCellStyle(cs);
                // set the cell's string value to "Test"
                c.setEncoding( HSSFCell.ENCODING_COMPRESSED_UNICODE );
                c.setCellValue( "Test" );
            else
                c.setCellStyle(cs2);
                // set the cell's string value to "\u0422\u0435\u0441\u0442"
                c.setEncoding( HSSFCell.ENCODING_UTF_16 );
                c.setCellValue( "\u0422\u0435\u0441\u0442" );
            // make this column a bit wider
            s.setColumnWidth((short) (cellnum + 1), (short) ((50 * 8) / ((double) 1 / 20)));
    //draw a thick black border on the row at the bottom using BLANKS
    // advance 2 rows
    rownum++;
    rownum++;
    r = s.createRow(rownum);
    // define the third style to be the default
    // except with a thick black border at the bottom
    cs3.setBorderBottom(cs3.BORDER_THICK);
    //create 50 cells
    for (short cellnum = (short) 0; cellnum < 50; cellnum++)
        //create a blank type cell (no value)
        c = r.createCell(cellnum);
        // set it to the thick black border style
        c.setCellStyle(cs3);
    //end draw thick black border
    // demonstrate adding/naming and deleting a sheet
    // create a sheet, set its title then delete it
    s = wb.createSheet();
    wb.setSheetName(1, "DeletedSheet");
    wb.removeSheetAt(1);
    //end deleted sheet
    // write the workbook to the output stream
    // close our file (don't blow out our file handles
    wb.write(out);
    out.close();

  • Firefox is using large amounts of CPU time and disk access, and I need to know how to shut down most of this so I can actually use the browser.

    Firefox is a very busy piece of software. It's using large amounts of CPU time and disk access. It puts my usage at low priority, so I have to wait for some time to be able to use my pointer or keyboard. I don't know what it uses all that CPU and disk access time for, but it's of no use to me. It often takes off with massive use of resources when I'm not doing anything, and I may not have use of my pointer for several minutes. How can I shut down most of this so I can use the browser to get my work done. I just want to use the web site access part of the software, and drop all the extra. I don't want Firefox to be able to recover after a crash. I just want to browse with a minimum of interference from Firefox. I would think that this is the most commonly asked question.

    Firefox consumes a lot of CPU resources
    * https://support.mozilla.com/en-US/kb/Firefox%20consumes%20a%20lot%20of%20CPU%20resources
    High memory usage
    * https://support.mozilla.com/en-US/kb/High%20memory%20usage
    Check and tell if its working.

  • How to disable Wifi and Network access in low level setting for security ?

    Hi
    New to here
    One of our final customer bought imac last months. OS 10.9, SN is c02*******J4i
    Since they are security printing, all the necessary ports accessing to outisdes need to be disabled in low level setting(not the ons just like turn on and off ).
    The ports including USB storage, Network and WIFI.
    I googled and found the following
    Open the /System/Library/Extensions folder.
    To remove support for USB mass storage devices, drag the following file to the Trash: IOUSBMassStorageClass.kext
    Open Terminal and enter the following command: $ sudo touch /System/Library/Extensions The touch command changes the modified date of the /System/Library/Extensions folder. When the folder has a new modified date, the Extension cache files (located in /System/Library/) are deleted and rebuilt by Mac OS X.
    Choose Finder > Secure Empty Trash to delete the file.
    Restart the system.
    I want to confirm this before sending to final user. Since I didn't have mac on hand, just wonder whether there are similar kext files for network and wifi to remove.
    Just like step 2 described.
    I would like customer to backup these files before permanently removed.
    Many thanks
    Kevin
    <Edited By Host>

    chiqui wrote:
    Is it possible to disable Internet access point and WAP as when I use WiFi some connections to WAP server of my provider are still made and I get charged. I am looking for the option not to delete it entirely from the access point list, but rather disable it as I might need connection when WiFi is not available and I want to be able to enable it as once I delete the server name and setting I won't know it.
    Is it possible to do it and how?
    You could delete WAP accesspoint. Not all providers (carriers) allow this.
    ‡Thank you for hitting the Blue/Green Star button‡
    N8-00 RM 596 V:111.030.0609; E71-1(05) RM 346 V: 500.21.009

  • HIgh Level API's Vs Low Level API's

    Hi,
    Is it advisable to use High Level API's or Low Level API's for developing a Mobile Application?
    What will be the advantages/disadvantages of using High Level API's over Low Level API's or vice versa?
    Kindly advise.

    Is it advisable to use High Level API's or Low Level API's for developing a Mobile Application?What have you used so far?
    What will be the advantages/disadvantages of using High Level API's over Low Level API's or vice versa?What are your own thoughts on this?
    {color:#0000ff}http://catb.org/~esr/faqs/smart-questions.html{color}
    db

  • "Low-level" authorizations for accessing BW reports - add users to role

    Using the advice in Topic "Low-level" authorizations for accessing BW reports, I have been able to publish a query to a role that has 3 test users and each user gets the same query but with different data, as determined in the tables.
    Is there a way to look up the users and e-mail addresses from a table and associate them to the role? We have several hundred e-mail recipients that will not need BW access, but only need an e-mail with a static report that contains data on their own territories.

    Hi!
    i think programatically it might be complex. You got to maintain a seperate variant of report per user and use this variant to send mail. that means you need to maintain a variant and a Broadcast setting per user. once maintained you can use it any number of times the values will be recalculated everytime.
    with regards
    ashwin
    <i>PS n: Assigning point to the helpful answers is the way of saying thanks in SDN.  you can assign points by clicking on the appropriate radio button displayed next to the answers for your question. yellow for 2, green for 6 points(2)and blue for 10 points and to close the question and marked as problem solved. closing the threads which has a solution will help the members to deal with open issues with out wasting time on problems which has a solution and also to the people who encounter the same porblem in future. This is just to give you information as you are a new user.</i>

  • Why don't lower level classes recognize symbols used in the .fla file?

    I'm trying to reorganize my code. I have a Paradox.as file, which is linked to a Paradox.fla file.  When I referenced symbols placed on the timeline in my Paradox.as file, my animation code works.  Then I decided to move the code lower down into the hierarchy.  In my Paradox.as file, I create new instances of the Character class.  The following is the folder hierarchy for the related files.  * denotes a folder, and tab denotes its contents:
    *Paradox 1-3
         Paradox.fla
         *code
              Paradox.as
              * Player
                   Character.as
    The symbol "player" is a Character type symbol on the Paradox.fla timeline, as are several other symbols.  Everything works just fine if I'm referencing these symbols in Paradox.as.  However, when I moved the code to Character.as (changing former references to Character type symbols in Paradox.as to "this" in Character.as), none of the symbols on the timeline are recognized any longer.  This is true of both Character type symbols and other types of symbols placed on the timeline.  Why?  Does Paradox.as recognize the symbols only because it is linked to Paradox.fla as the Document Class?  I even exported the Character symbol to Character.as...

    Oh.  Yeah.  The .as file linked to the .fla file works just fine.  What I was saying in my original post was, even though that part worked fine, when I transferred to a lower level class that was not linked to the .fla file but was instantiated in the .as file that was linked to the .fla file, I couldn't access anything on the stage directly.  What I ended up doing was passing the references to the lower level class.
    I can't find the checkbox where it says "Automatically declare stage instances", but fortunately for me it's enabled.  When calling a MovieClip that's on the stage, I only have to use its name in the .as file that's linked to the .fla file.

  • Low level Hex disk edit & search util needed- suggestions please?

    low level Hex disk edit & search util needed- suggestions please?
    Maybe It's just late & I've had a bad day.... but I haven't needed a low level Hex disk edit & search utility suitable for an Intel 10.4.x Mac until now and can't seem to locate one.
    There should be plenty of free/shareware options (because they're handy and not particularly hard to write ... and every tech head needs one some time)...
    Any suggestions please?
    [I haven't bothered with the commercial stuff - like tech tool/Norton/*insert name here* Recover/repair, Something Genius etc. etc. because they are all without exception either unnecessary (just pretty shells for the underlying UNIX/X utils) useless AND greedy $-gougers, just useless, or just money gougers so I couldn't even say whether any still have a 'feature' like the old Norton Disk editor app had - but a quick look about suggest not...]
    grumble
    Any specific suggestions/links, please?
    TIA

    they are all without exception either unnecessary (just pretty shells for the underlying UNIX/X utils) useless AND greedy $-gougers, just
    useless, or just money gougers
    Such a high-esteem for fellow human beings - and
    programmers...
    You know, there are some good decent nice people
    behind those names?
    You'd be amazed at how much testing goes into a product.
    [SNIP]
    g'day Hatter...
    Yes, I know there are some good decent nice people behind those names..fellow human beings - and fellow programmers (so yes, I do know...) In previous incarnations I have 'thunk up' and developed, Marketed & supported considerably more complex Apps & systems myself - I even know some of the people you mention personally - and they are usually decent Blokes/women but normally, it isn't the programmers who make the decisions on pricing/features/support/performance/upgrade costs & cycles etc...
    My only error was, I agree, the phrase 'without exception' - but (mainly) only because I haven't bought/tested & used all of them very very recently. So I offer my apologies to those to whom my remarks should not apply (long, late night/early morning frustration...)
    However, I also offer a few simple pertinent examples:
    One 'top name' Utility company had a 'save your Mac HD' product on the market for some time that was almost guaranteed to TRASH it irretrievably but did NOT say so - nor did they help or compensate those they harmed.
    Several are selling what amount to simple, pretty, GUI shells for 'free' or OS-included command line tools - no more, no less but do NOT say so and are asking good money for the 'software'.
    Many are asking ridiculous prices for "regular upgrades" so you can keep their tool current with your Mac OS - one wants US$100/year for it, another, $15 per u/g, others, US$25 or $40 per u/g; one asks 'only' $10 - and these 'upgrades' are happening 3,4,5,6 times per year and are necessary for the Marketing company to keep their product Saleable to new purchasers and new Macs (as well as for important Bug Fixes - and only co-incidentally to keep it performing with your current Mac and OS - which is what you paid them for in the first place).
    I won't pay for a product 3, 6 or 9 times and I won't advise my clients to: It's not unreasonable for a person to expect a 'sensible lifetime/currency' of Product X for Computer Y - say 3 years (e.g. AppleCare). I wouldn't object to paying for an "upgrade" at that point - IF it's worth the money.
    Software is Waaay too expensive in many cases and is simply inviting 'piracy' - from people who have already PAID for the product: sadly, they are killing their own Gooses.
    Seriously, one product costs ca. US$100 to Buy in the first place
    To keep it actually working for you costs about the same again Per Year - a 3 year 'sensible lifetime' or 'currency' cost of US$300 or $400! [That'll buy a lot of 'bare drives' to put in a handy Firewire case for automatic backups in Background, differential backups etc. and other simple practices which render this product type largely unnecessary ].
    For what? A relatively simple set of utilities which would actually cost the company involved less than $5 total each - over 3 years - to make available to existing ( or 'current') owners. [Applecare 'complete' Hardware and Software warranty & support on a US$2000 iMac - which includes Tech Tools Pro Deluxe or somesuch costs about US$165 for 3 years. Total.]
    Having designed, developed, Marketed, supported & maintained more complex Applications to/for a sizeable user-base (in US terms) over multiple complete Series of Product 'life-cycles' - regular Updates and all, I think I know where the pirates are.
    These practices have been rampant in the MSWindows™ market for a longtime. It's a real shame to see it in the Mac world.
    I have all the esteem in the world for those fellow human beings who deserve such - and programmers who are 'good decent nice people'.
    I have none to spare for monopolists, 'exploitationists' or any of those who take unfair/unreasonable advantage of their fellow human beings - AND of programmers who are 'good decent nice people' (like, say, ME... .
    In any event, as I said: they are "killing their Gooses": I know of at least 6 software companies which went this route a while back. All are dead or dying.
    Thank you for your help - and the opportunity to apologise for 'mis-speaking'.
    all the best,
    orig g4 733, many others thru (the luvly) Macintels     New & old Macs, Wintels, MacIntels, other systems...

Maybe you are looking for