Write/Read file in my iPhone app Shared File - c#

I wrote an app on my iPhone. It's a more portable and smaller version of my pc software. I activated the File Sharing feature on my app so now I can transfer files through iTunes. But I want my pc software to be able to read or write files to that shared folder on my iPhone without having to do it manually through iTunes.
I have big constraints:
I can't use a Jailbroken iPhone/iPod/iPad
The vast majority of my customers don't have Internet access (It's a farm management software so even cellular are not available in some area)... :(
I heard there is a way using Manzana and MobileDevice.dll (itunesmobiledevice.dll). I don't really know how to use these dll. I tried to use Manzana a little but I can't access my folder since it's not a jailbroken iPhone.. Can someone help me with a little bit of code example?
Or is there other ways to make my iPhone app communicate with my C# application using the USB cable without internet access or Wifi?

mobiledevice.codeplex.com. This project should let you send and retrieve files from the phone

I'd suggest seeing if you can use the iTunes scripting interface. Add the COM reference iTunes 1.1 Type Library to a project and you can control many parts of itunes automatically. I can't find the documentation for it, but you can play around with the library and see if there is something to access the file sharing section.
Here's a decent introduction to using it:
http://www.codeproject.com/Articles/7723/Controlling-iTunes-through-COM

Related

How to communicate with device with GPIB?

I use "82357B USB/GPIB" in order to communicate with a device with "Agilent Communication Expert".
How can I communicate with the device in C# code? What should I need to install? Which references to add? etc.
And how to diploy the application to another computer? Does the computer need some installations?
Thanks
See "Keysight IO library suit Getting started with Visa.Net C# Instrument control program"
This document describe how to build visual studio solution with visa to communicate with device over GPIB
https://keysightsales.my.salesforce.com/sfc/p/#1a000000awb5/a/2L0000009JeU/UxdJUjDDylNahqCuK6OHVbjWCycgVq7mZhTdkMgNDDI
Another important document is "Keysight IO Library Suite VISA.NET / C# Quick Reference Guide" (google it)

Web application to manage CATIA files

A have a question for CATIA customization experts!
I'm intend to develop a web application able to perfoms the following tasks:
Modify some parameters into CATIA files. eg.: change the diameter or length of a part;
Convert theses CATIA files to STEP files.
So, I possible do these things using CATIA API and without have CATIA software instaled on my web server?
I did some research on the WEB and I found some APIs, like "CAD.ai" that I think solve these questions. But, these APIs look so sophisticated for my purpose and I looking for develop my own code.
Any suggestion?
Catvbs code can be incorporated in web pages and "talk' with CATIA, check Dassault Systems automation documentation which is in the installation folder of CATIA (be aware that there are differences between releases and versions of CATIA- v5, v6, 3DEx). You don't need to have CATIA but you need to check if CATIA is opened or not on client PC (and convince CATIA user to run your code from web).
By the way, from DS chm automation file you can run their codes directly in CATIA...

UWP share internal and SD-card storage

I want to know, if it is possible to have shared internal and external (SD-card) access in a mobile c# UWP App. I know, that one can decide, whether to install new Apps internally or on SD-card via Settings -> System -> Storage.
The problem: I have a SQLite database, that I would like to run on internal NAND storage at all costs (for obvious performance reasons) and then I have a lot of images, that don't necessarily need to be on the internal NAND, but can be "outsourced" to the SD-card (so they don't clutter up valuable space especially on budget phones).
The MS documentation here suggests, that one can use the external SD-card like a drive. That solution however is not suitable to me, because it can only open file-types specified in the app-declarations and also these files would be visible to everyone and are not in a hidden app-container, like apps are.
Is there a solution or workaround for my issue?

Opening file outside IsolatedStorage

I would like to know if there is a way to open files which are not located in an IsolatedStorage on a WP7 device ? Internals are not really well documented so...
As a developer using the official Windows Phone 7 developer framework, there is no way to access files that are stored outside of isolated storage. In the Mango framework there is an additional AppData location, but this is also sandboxed and is used for deploying SQL CE data to.
You can get images from either the media library or the camera using their respective Choosers: PhotoChooserTask (http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.photochoosertask(v=vs.92).aspx) and CameraCaptureTask (http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.cameracapturetask(v=VS.92).aspx).
These are the only files that are accessible that are not in your app's IsolatedStorage.
In Windows Phone 7.1 / Mango, system data (like Contacts) is shared using the PhoneDataSharingContext. However, there is no indication that third party developers will be able to expose there data using this class and certainly no documentation for it yet.
My guess that it is somehow registered in the application manifest. However, unless it's supported your application won't get approved, even if you do find out how to do it yourself.
with xna, you can access (read-only) the application folder using TitleStorage.OpenStream()

Working way to make video from images in C#

Does anybody have a known reliable way to create a video from a series of image files? Before you mod me down for not searching for the answer before posting the question, and before you fire off a simple message like "use FFMPEG," read the rest of this message.
I'm trying to create a video, it doesn't matter too much what format as long as it's widely supported, from a series of images (.jpg, .bmp, etc.). My platform is Windows Server 2008, 64-bit. If I can make the video from within my C# program, that's great, but I'm not averse to writing a series of image files to a directory and then firing off an external program to make a video from those images.
The only constraints are: it must work on my Windows Server 2008 system, and be scriptable. That is, no GUI programs that require operator intervention.
I found a number of similar questions on StackOverflow, and have tried several of the solutions, all with varying degrees of frustration and none with anything like success.
FFMPEG looks like a great program. Maybe it is, on Linux. The two Windows builds I downloaded are broken. Given this command line:
ffmpeg -r 1 -f image2 -i jpeg\*.jpg video.avi
One of the builds reads the images and then crashes due to data execution prevention. The other reads the first file and then spits out an error message that says "cannot find suitable codec for file jpeg/image2.jpg". Helpful, that. In any case, FFMPEG looks like a non-starter under Windows.
One answer to a previous posting recommended Splicer . It looks like pretty good code. I compiled the samples and tried to run, but got some cryptic error message about a file not found. It looks like a COM class isn't registered. I suppose I need to install something (DirectShow, maybe, although I thought that was already installed?). Depending on what's required, I might have a difficult time justifying its installation on a server. ("What? Why do you need that on a server?")
Another answer suggested the AviFile library from Code Project. That looks simple enough: a wrapper around the Windows AviFile subsystem. Except that the AVI files the package creates appear to have all of the frames, but only the first frame shows when I play the AVI in Windows Media Player. Well, that and if you try to create a compressed video, the program throws an exception.
So, I'm left wondering if there is a good, reliable way to do what I want: on a Windows system, create an AVI or other common video file format from a series of images, either through a .NET API or using an external program. Any help?
After working with it a while and taking a look at x264 and VideoLan, I went back to Splicer. It turns out that the cryptic error message was due to an error in my code.
It looks like Splicer will do what I want: programmatically create videos from a series of images.
Thanks to all who responded.
You can use VideoLan and I'd recommend it.
I've had direct experience in a C# application with VideoLan doing these two things:
Embedding a VLC viewer in my C# application (there are 3-4 C# "wrappers" for the VLC veiwer).
Using vlc.exe in a separate Process by sending it command-line arguments.
The fact that VideoLan has a command-line interface is a great thing. And VLC supports a command-line option that disables any visual element; so the VLC GUI doesn't pop up and neither does a command-line window. Thus, in a C# application you can farm out the video-related work to the VLC client. C# has the Process class which can manage your vlc.exe instances for you. It ends up being a pretty neat solution.
The handling of video on Windows (encoding and playback) is a real quagmire. And .NET isn't going to help you at all - you're always going to be either PInvoking/COM-interoping native APIs or using a .NET wrapper that someone else has built to do the same.
Anyway, I can't say I've used it, but a good bet seems to be the x264 library that is part of the videolan project. That gives you a self-contained C library that you can PInvoke and you don't have to worry about installing and DirectShow garbage on your server. It'll generate H.264 format video which is playable in Flash as I understand it.
I've used mplayer's mencoder to create AVI (with codecs msmpeg4/mp3, readable by default with Windows Media Player) from TGA files on linux like this:
mencoder mf://*.tga -mf fps=25:type=tga \
-audiofile /tmp/test.mp3 -oac copy \
-of lavf -ovc lavc \
-lavcopts vcodec=msmpeg4v2:mbd=2:mv0:trell:cbp:last_pred=3:vbitrate=3000 \
-o /tmp/test.avi
I know mplayer does have a Windows version.
Instead of just going through all the hassle, you could coppy all the images that you want to be included in your video to the clipboard and have it imported into Windows Live Movie Maker (dynamically, of course!) and have it compile for you!
All of this CAN be done through code, but this way, you don't have to create it yourself. As you said that the platform was Windows, and ALL Windows comps have Windows Live Movie Maker installed, so it shouldn't be a problem for anyone using your application unless
a) They uninstalled Windows Live Movie Maker
b) They are using a computer running on a Windows Version more than 8 or 9 years old...

Categories

Resources