I have an outlook plugin and a desktop application.I have implemented the same synchronization process in both the applications.But, I don't want to allow the user to run the synchronization process from both application simultaneously.So, when a sync is running and user tries to start the sync from another application. He/She is shown a message that sync is already running and the sync request is aborted.To implement this,I was thinking of creating a file and whenever an application starts a sync.It creates an entry in that file.So that if a user then tries to start sync from the second application, then first the file is checked for the entry and if entry exists, then the request is aborted.Is there any other way to do this?
How to pass message from one desktop application to another running on the same machine?
1.5k Views Asked by V K AtThere are 2 best solutions below
Aron
On
You don't want IPC. IPC reduces the problem to the two generals problem, as even with IPC, you would have a race condition.
What makes more sense is to create a third process, a service that is responsible for storing and syncing the data. I shall call this service the database.
Then the outlook plugin and the desktop application can merely connect and grab data from this database as they want.
They can also request a synchronization whenever they want, in the knowledge that the database service will only run one synchronization at any one time.
Finally, there are many free products that are out there that will give you this functionality, without you writing it explicitely, for example, you could have used a CouchDB service for data sync/storage.
Related Questions in C#
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in WINFORMS
- Musical chairs: How can an asynchronous task cancel a synchronous one in c#?
- TCP Client Losing Connection When Writing Data
- how check if printing content on new page
- Find what is writing to the Output window
- WinForms, event unable to subscribe from a custom class
- A cleaner way to approach the given output
- Working with panel and moving from the second form to the the panel
- Accurately placing multiple controls in a row programmatically with dynamic table layout panel
- How to find winform application in visual studio 2022?
- How to stop comments being included in C# release build .exe
- Why is the Blazor value not immediately being rendered after changing it?
- .NET 6 Winforms separate forms control pop up freezing when unfocused and using native Windows file transfer pop up
- How to Fix C# WinForms Application Not Loading correctly on Windows 11?
- Visual Studio edit view corrupt for xaml and Winforms design views
- How to solve the problem that dragged column in datagridview too slow or miss when AllowUserToOrderColumns = true
Related Questions in IPC
- Communicate/transfer data between two different programs. JAVA & VERILOG
- Update a reactive value in a function
- How many senders and receivers of a notification are possible in a POSIX message queue
- gRPC for communications between three separete processes
- Python multiprocessing Queue: performing get() is a bottleneck
- How can Java write commands to the GHCi?
- Electron ipcRenderer import causing error with in webpack project
- FreeRTOS Callback vs. Queue
- Python question - Communicating Between Multiple Instances of the Same Application? IN WINDOWS OS
- How can I handle multiple (compound) commands in a command server program?
- How to create an unordered_map in shared memory without boost?
- IPC between Android app and native user space process
- Filemapping between python and c++: File not found
- Parent-child IPC on Windows using Python and custom file descriptors
- Difficulty formatting xml file in Perl
Related Questions in DESKTOP-APPLICATION
- How To Convert Nextjs Typescript Golang Postgresql Web App Into Desktop App
- UI Interface Crashes and Hanging Issues in MFC Application
- WindowsAppSDK resource file modification requires rebuild
- Unable to Publish my ElectronJS app to Microsoft Store
- How to avoid chrome from doing auto Handlers
- Change dark mode using main.js electron
- Is there a way to configure so that pgadmin 4 via browser can continue to work after pgadmin 4 via desktop version is closed?
- Not able to open prompt using .WithPrompt(Prompt.SelectAccount)
- App with sidebar routes in React and Electron
- Finding challenging to call function from Rust to NextJS ( Tauri + NextJS )
- How to configure to open application if click Notifications of my Electron js Applications In Windows Action Center (Notification Panel)
- Auto Logout from Epic Games Launcher
- FlaskUI Desktop App Error: "127.0.0.1 refused to connect" when run as administrator
- How to execute a .py file with a class using .robot file or integrating it to robot framework?
- How to create trustworthy desktop applications that do not conflict with antivirus software
Related Questions in VISUAL-STUDIO-2008-SP1
- Why mfc dialogs are changed suddenly when I clicked any lines in grid
- How to use charting libraries in windows form application for compact windows?
- (Clarification) Object Pooling and Base Class Assignment( is this an Undefined Behavior?)
- Semicolon(;) After Class Constructors or Destructors
- VS2008 C++ project - Step into 3rd party code in release mode
- Problem using boost::object_pool boost version 1.56 with visual studio 2019
- error C2259: 'CSceneObjMediator' : cannot instantiate abstract class
- Make WPF TextBlock text to be vertical within a expander
- Connecting to a SQL Server 2012 database in Visual Studio 2008
- how can I order the elements of a listview without the sort function (visual basic 2008 & compact net framework 2.0)
- OnRead event from scanner (Motorla EMDK) fires continuously
- Function skips steps and reruns itself
- How do you set environmental variables for visual studio 2008 sp1?
- friend class across namespaces & different .H files
- Cannot compare two same type enums in MSVC2008
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
if you have control over both of these application then you can use Named pipes in order to start communication between them. Named Pipe is the best for interprocess communication in windows which works with server client architecture.and there is .net Wrapper around named pipe it will greatly simplify the whole process.
a code from there.
Server Code
and Client Code
hopefully it will help you.