Initial commit

This commit is contained in:
2026-03-20 00:21:32 +01:00 Verified
commit 9592d05744
9 changed files with 195 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
/target
Generated
+92
View File
@@ -0,0 +1,92 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "proc-macro2"
version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
dependencies = [
"unicode-ident",
]
[[package]]
name = "python-runner"
version = "1.0.0"
dependencies = [
"winres",
]
[[package]]
name = "quote"
version = "1.0.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
dependencies = [
"proc-macro2",
]
[[package]]
name = "serde"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
dependencies = [
"serde_core",
]
[[package]]
name = "serde_core"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "syn"
version = "2.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "unicode-ident"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]]
name = "winres"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
dependencies = [
"toml",
]
+7
View File
@@ -0,0 +1,7 @@
[package]
name = "python-runner"
version = "1.0.0"
edition = "2024"
[build-dependencies]
winres = "0.1"
BIN
View File
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
# Python Executor
Enables drophandler on `.py` files as well as edit with VS Code on normal file open action.
## Installation
Build the executable using `cargo` and place the resulting `python-runner.exe` at `C:\`. Execute the `.reg` file to add the drop-handler and open commands to `.py` files.
### Build command
```cmd
cargo build --release
+22
View File
@@ -0,0 +1,22 @@
#[cfg(windows)]
fn main() {
let mut res = winres::WindowsResource::new();
// Attach your icon (Make sure py.ico is in the same folder as Cargo.toml)
res.set_icon("py.ico");
// Map your versioninfo.txt data
res.set("CompanyName", "Soderberg Tech");
res.set("FileDescription", "Python Executor");
res.set("FileVersion", "1.0.0.0");
res.set("InternalName", "python_executor.exe");
res.set("LegalCopyright", "© Soderberg Tech. All rights reserved.");
res.set("OriginalFilename", "python_executor.exe");
res.set("ProductName", "Python Executor");
res.set("ProductVersion", "1.0.0.0");
res.compile().unwrap();
}
#[cfg(not(windows))]
fn main() {}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
View File
Binary file not shown.
+61
View File
@@ -0,0 +1,61 @@
#![windows_subsystem = "windows"]
use std::env;
use std::os::windows::process::CommandExt;
use std::path::Path;
use std::process::Command;
const CREATE_NO_WINDOW: u32 = 0x08000000;
fn main() {
let args: Vec<String> = env::args().skip(1).collect();
if args.is_empty() {
let _ = Command::new("cmd.exe")
.args([
"/k",
"TITLE",
"Python REPL",
"&",
"python",
"&",
"pause",
"&",
"exit",
])
.status();
} else if args.len() == 1 {
let _ = Command::new("cmd.exe")
.args(["/c", "code", &args[0]])
.creation_flags(CREATE_NO_WINDOW)
.spawn();
} else {
// Extract just the script name
let script_name = Path::new(&args[0])
.file_name()
.map(|s| s.to_string_lossy().into_owned())
.unwrap_or_else(|| String::from("Script"));
// Format the exact title you want
let tab_title = format!("Python > {}", script_name);
let mut cmd_args = vec![
String::from("/k"),
String::from("TITLE"),
tab_title, // Apply your custom title here
String::from("&"),
String::from("python"),
];
cmd_args.extend(args);
cmd_args.extend(vec![
String::from("&"),
String::from("pause"),
String::from("&"),
String::from("exit"),
]);
let _ = Command::new("cmd.exe").args(&cmd_args).status();
}
}