lot-number-from-clipboard/pullLots.c
2026-02-16 16:22:29 -05:00

82 lines
No EOL
2.8 KiB
C

#include <windows.h>
#include <stdio.h>
#include <string.h>
int main(void) {
// Open the clipboard
char* pass;
if (OpenClipboard(NULL)) {
// Get the clipboard data
HANDLE hClipboardData = GetClipboardData(CF_TEXT);
if (hClipboardData != NULL) {
// Lock the data to access its contents
char *clipboardText = GlobalLock(hClipboardData);
if (clipboardText != NULL) {
char* ptr = clipboardText;
int i = 1;
char result[strlen(ptr)];//A bit big, but what are we gonna do?
int pos = 0;
char* L;
char* o;
char* t;
char* hex20;
while (*ptr != '\0') {
// We want to find Lot
L = o;
o = t;
t = hex20;
hex20 = ptr; //Who needs Regex?
char lot[5] = {*L, *o, *t, *hex20, '\0'};
//printf("%s\n", lot);
if (strcmp(lot, "Lot ") == 0){
i = 0;
ptr++;
}
switch (i) {
case 0:
//Get the lot, add to result
if (*ptr == '\n'){
result[pos] = *ptr;
pos++;
ptr++;
i++;
break;
}
else {
result[pos] = *ptr;
pos++;
ptr++;
break;
}
default:
ptr++;
break;
}
}
result[pos] = '\0'; // End the string
GlobalUnlock(hClipboardData);
const char *Newclip = result;
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, strlen(Newclip)+1);
if (hMem != NULL) {
char *memText = GlobalLock(hMem);
strcpy(memText, Newclip);
GlobalUnlock(hMem);
if (OpenClipboard(NULL)) {
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem);
CloseClipboard();
printf("%s", Newclip);
} else {
printf("Failed to open clipboard for writing.\n");
GlobalFree(hMem);
}
} else {
printf("Failed to allocate memory for clipboard text.\n");
}
}
}// close the clipboard
CloseClipboard();
}
return 0;
}